Hinweise zur Installation und Konfiguration
- Manche Elasticsearch Versionen stehen als MSI-Installer und als ZIP zur Verfügung. Die MSI hat in den Tests immer mal wieder Probleme mitgebracht, die ZIP war dabei zuverlässiger.
- Elasticsearch ist eine Java Anwendung und benötigt ein konfiguriertes JAVA_HOME in den Systemumgebungsvariablen. Bis Version 7.10.x muss dafür die JAVA_HOME Variable verwendet werden, danach die ES_JAVA_HOME.
- Wenn JAVA Probleme macht, dann das mitgelieferte JDK aus dem Elasticsearch-Installationsordner verwenden.
- Der Datenpfad für ElasticSearch, kann mit „path.data: d:\daten“ in der „config/elasticsearch.yml” angepasst werden.
- Sobald ElasticSearch sauber startet, sollte anstelle der exe-Datei der Dienst verwendet werden. Das geht im bin-Verzeichnis mit „elasticsearch-service install“. Danach über die Dienste in Windows den Dienst starten und auf Autostart stellen.
- Wenn der Elasticsearch-Server ein anderer ist, als der Webserver muss Intranetzugriff aktiviert werden. Dies geht in der „elasticsearch.yml” mit „network.host: [local, site]”. Bei Windows-Systemen mit eingerichteter Firewall muss zusätzlich noch der 9200er Port freigegeben werden.
- Wenn Authentifizierung gewünscht ist (Achtung: Nicht bei OSS-Versionen!), nach dieser Anleitung vorgehen: https://www.elastic.co/guide/en/elasticsearch/reference/7.10/security-getting-started.html
- Es kann sinnvoll sein, Kibana zu installieren: eine Oberfläche zum Ansehen der gespeicherten Daten oder für weitere Administrationsaufgaben. Diese ist hier beispielsweise für Elasticsearch 7.0.2 unter der selben Lizenz erhältlich: https://www.elastic.co/de/downloads/past-releases/kibana-oss-7-10-2 Achtung: die Lizenzierung von Kibana und Elasticsearch muss übereinstimmen.
*Authentifizierung
Die Möglichkeit zur Authentifizierung gegen den Suchdienst steht nicht in allen Lizenzvarianten zur Verfügung. Alternativ zur Einrichtung einer Authentifizierung kann aber der Zugriff nur ausgehend vom lokalen Server erlaubt werden. Befindet sich die Anwendungsinstanz und der Suchdienst auf dem selben Server, kann dies gegebenenfalls für eine ausreichende Sicherheit sorgen.
! Achtung
ElasticSearch 7.10.2 nutzt Log4J in der Version 2.11.1. Aufgrund der Sicherheitslücke CVE-2021-549032-1332 in Log4j sowie einiger späterer muss dieses mindestens auf die Version 2.17.0 aktualisiert werden. Log4j kann hier heruntergeladen werden. ElasticSearch benötigt diese beiden Dateien aus der Zip: log4j-api-2.17.0.jar
und log4j-core.2.17.0.jar
. Zum Austausch müssen sowohl der AppPool als auch der ElasticSearch-Dienst beendet werden. Die beiden Dateien müssen je nach Installationspfad von ElasticSearch die Dateien log4j-apa-2.11.1.jar
und log4j-core.2.11.1.jar
ersetzen. Der Pfad könnte lauten: „C:\Program Files\Elastic\Elasticsearch\7.10.2\lib”.
Troubleshooting
- Die Limits, wieviel freier Plattenspeicher notwendig ist, können wie hier beschrieben geändert werden: https://www.elastic.co/guide/en/elasticsearch/reference/7.10/modules-cluster.html#disk-based-shard-allocation
- Arbeitet man mit großen Dateien kann es sein, dass Kibana eine Fehlermeldung ausgibt, dass die Grenze für Highlighting zu niedrig ist. Das kann man über die Devtools ändern, z.b. so:
PUT /bacrm_indexname/_settings { "index" : { "highlight.max_analyzed_offset" : 2000000 } }
. Das sollte aber nur getan werden, wenn es wirklich Probleme gibt. Wenn man gar nicht mit Kibana arbeitet, braucht man das auf keinen Fall.