Managed Service Solr
Apache Solr ist ein Open-Source-Suchserver auf Basis von Java.
Wir bieten dir 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 du selbst Solr Cores anlegen, diese mit Daten befüllen und innerhalb deiner Applikationen verwenden kannst. Die offizielle Dokumentation zu Solr findest du 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 deinem 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 dir von uns ein Useraccount zur Verfügung gestellt. Die Authentifizierungsdaten findest du in diesem Fall in deinem 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, kannst du das von Solr mitgelieferte Script zur Erstellung von Cores aufgrund der Rechte auf dem Server nicht verwenden. Stattdessen stellen wir dir 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 deinem 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 dir per sudo aufgerufen werden. Mit der Option --help kannst du dir 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 erstellst du mit 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 wirst du daher eine eigene Konfiguration verwenden wollen, welche du in deinen home-Ordner kopieren und dem Script mit dem --configdir-Parameter übergeben kannst:
sudo nine-manage-solr core create <corename> --configdir ./configdirectory
Wie ein Configset aufgebaut ist, entnimmst du 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 kannst du mit dem delete-Kommando entfernen:
sudo nine-manage-solr core delete <corename>
Backups erstellen und wiederherstellen
Mit dem backup-Kommando kannst du 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 mit --backupdir eine Sicherung an ein spezifisches Verzeichnis durchgeführt werden.
Mit dem backup status-Kommando kannst du 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 kannst du 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.