Zum Hauptinhalt springen

Managed Service Solr

Apache Solr is ein Open-Source-Suchserver auf Basis von Java.

Wir bieten Ihnen die Möglichkeit, Apache Solr als Managed Service von uns betreiben zu lassen. Dabei ist Nine für Konfiguration, Patching und Monitoring des Dienstes verantwortlich, während Sie selbst Solr Cores anlegen, diese mit Daten befüllen und innerhalb ihrer Applikationen verwenden können. Die offizielle Dokumentation zu Solr finden Sie hier: https://solr.apache.org/guide/solr/latest/

IP/Port

Solr ist standardmässig auf Port 8983 erreichbar. Der Dienst ist dabei standardmässig auf den localhost gebunden, kann also nicht von extern aufgerufen werden. Bei Verwendung eines separaten Server für Solr können wir die Konfiguration entsprechend anpassen, damit der Dienst beispielsweise von Ihrem Webserver aus erreicht werden kann.

Ist ein weitergehender externer Zugriff erforderlich (bspw. auf das Solr Web UI), lässt sich dies durch Konfiguration eines Proxy-vHosts realisieren. In jedem Fall sollte dann aber aus Sicherheitsgründen eine Authentifizierung auf Ebene des Dienstes und/oder per HTTP-Authentifizierung am Proxy konfiguriert werden.

Authentifizierung

Um die Sicherheit des Services zu erhöhen, kann Solr mit Benutzerauthentifizierung betrieben werden. In diesem Fall muss bei jedem API-Request eine Authentifizierung mit Usernamen und Passwort erfolgen. Dies gilt auch für andere Applikationen, die sich mit Solr verbinden wollen.

Beim Betrieb mit Benutzerauthentifizierung wird Ihnen von uns ein Useraccount zur Verfügung gestellt. Die Authentifizierungsdaten finden Sie in diesem Fall in Ihrem Userverzeichnis (in der Regel /home/www-data) in der Datei .solr_client_credentials:

www-data@host:~ $ cat .solr_client_credentials
httpBasicAuthUser=client
httpBasicAuthPassword=LRaXifKBn3LNfT3g

Verwaltung von Cores

Standardmässig konfigurieren wir bei Auslieferung einen default-Core, der auf dem mit Solr mitgelieferten default Configset basiert. Dieser ist jedoch nur für den Testbetrieb gedacht. Für den Produktivbetrieb sollte ein eigener Core erstellt werden.

Da Solr unter einem separaten Systemuser solr läuft und die Cores im Verzeichnis /var/lib/solr/$VERSION angelegt werden müssen, können Sie das von Solr mitgelieferte Script zur Erstellung von Cores aufgrund der Rechte auf dem Server nicht verwenden. Stattdessen stellen wir Ihnen das Tool nine-manage-solr zur Verwaltung von Solr Cores zur Verfügung.

nine-manage-solr

Solr stellt ein ein Script bereit, um Cores zu erstellen und zu löschen. Andere Aktionen wie eine Sicherung oder das Wiederherstellen eines Cores können per API ausgelöst werden. Die direkte Nutzung des Solr-eigenen Scripts ist aufgrund der Systemberechtigungen mit Ihrem User nicht möglich.

Stattdessen stellt Nine mit nine-manage-solr alle benötigten Funktionen zur Verwaltung von Solr Cores in einfach nutzbarer Form zur Verfügung.

Das Script muss von Ihnen per sudo aufgerufen werden. Mit der Option --help können Sie sich die verfügbaren Kommandos anzeigen lassen:

Usage:
-------
nine-manage-solr core list - List cores
nine-manage-solr core details <corename> - Show details of a given core
nine-manage-solr core create <corename> [--configdir=<dir>] - Create a new core
nine-manage-solr core delete <corename> - Delete a core
nine-manage-solr backup list - List all core backups
nine-manage-solr backup create <corename> [--backupdir=<dir>] - Backup a core
nine-manage-solr backup status <corename> - Status of last backup
nine-manage-solr backup restore <corename> <backup> - Restore a core
nine-manage-solr backup restore status <corename> - Show restore status
nine-manage-solr backup delete <corename> <backup> - Delete a core
nine-manage-solr -h | --help - Show this help


Parameters:
-----------
-d / --configdir Specify core config directory. Only available for create option.
(default: $SOLR_INSTALL_DIR/server/solr/configsets/_default)
-d / --backupdir Specify custom backup directory to create and restore core backups from.
(default: /var/lib/solr/9.0.0/<corname>/data/)

Core erstellen

Einen Solr Core erstellen Sie mittels dem create-Kommando:

sudo nine-manage-solr core create <corename>

Der Core wird im $SOLR_HOME, bei Solr 9 beispielsweise unter /var/lib/solr/9.0.0, erstellt. Dabei wird eine Standardkonfiguration (Default Configset) verwendet, die nicht für den Produktivbetrieb empfohlen wird.

In der Regel werden Sie daher eine eigene Konfiguration verwenden wollen, welche Sie in Ihren home-Ordner kopieren und dem Script mit dem --configdir-Parameter übergeben können:

sudo nine-manage-solr core create <corename> --configdir ./configdirectory

Wie ein Configset aufgebaut ist entnehmen Sie der Solr-Dokumentation.

Erstellte Cores anzeigen

Mit dem list-Kommando wird eine Übersicht aller vorhandenen Cores ausgegeben:

sudo nine-manage-solr core list

Core löschen

Einen existierenden Solr Core können Sie mit dem delete-Kommando entfernen:

sudo nine-manage-solr core delete <corename>

Backups erstellen und wiederherstellen

Mit dem backup-Kommando können Sie eine konsistente Sicherung eines laufenden Cores erstellen:

sudo nine-manage-solr backup create <corename>

Die Sicherung wird im /data-Ordner des entsprechenden Cores erstellt.

Wahlweise kann kann mit --backupdir eine Sicherung an ein spezifisches Verzeichnis durchgeführt werden.

Mit dem backup status-Kommando können Sie für einen Core den Erstellungszeitpunkt, sowie den Status eines Backups anzeigen lassen:

sudo nine-manage-solr backup status <corename>

Mit dem backup restore-Kommando können Sie einen Core aus einer Sicherung wiederherstellen:

sudo nine-manage-solr backup restore <corename> <backup>

Dabei wird immer die zuletzt angelegte Sicherung des Cores wiederhergestellt. Optional kann ein spezifisches Backup angegeben werden.