Elasticsearch: Unterschied zwischen den Versionen
Tim00 (Diskussion | Beiträge) (→Monitoring: lösche monit pid bei reboot) |
K (Version 7.17.7) |
||
Zeile 14: | Zeile 14: | ||
Die neueste Version kann auf https://www.elastic.co/de/downloads/elasticsearch in Erfahrung gebracht werden. | Die neueste Version kann auf https://www.elastic.co/de/downloads/elasticsearch in Erfahrung gebracht werden. | ||
wget "https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7. | wget "https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.7-linux-x86_64.tar.gz" | ||
tar xzf elasticsearch-7. | tar xzf elasticsearch-7.17.7-linux-x86_64.tar.gz | ||
rm elasticsearch-7. | rm elasticsearch-7.17.7-linux-x86_64.tar.gz | ||
Für zukünftige Updates ist zu empfehlen, die Verzeichnisse config, data und logs separat anzulegen: | Für zukünftige Updates ist zu empfehlen, die Verzeichnisse config, data und logs separat anzulegen: | ||
mkdir ~/elastic/ | mkdir ~/elastic/ | ||
mv elasticsearch-7. | mv elasticsearch-7.17.7/config elastic | ||
mkdir ~/elastic/logs | mkdir ~/elastic/logs | ||
mkdir ~/elastic/data | mkdir ~/elastic/data | ||
Zeile 36: | Zeile 36: | ||
Dann wird der Dienst provisorisch gestartet. | Dann wird der Dienst provisorisch gestartet. | ||
cd elasticsearch-7. | cd elasticsearch-7.17.7/ | ||
export ES_PATH_CONF=$HOME/elastic/config | export ES_PATH_CONF=$HOME/elastic/config | ||
ES_JAVA_OPTS="-Xms1g -Xmx1g" ./bin/elasticsearch | ES_JAVA_OPTS="-Xms1g -Xmx1g" ./bin/elasticsearch | ||
Zeile 42: | Zeile 42: | ||
In einer zweiten Shell erzeuge ich mit dem Kommando ''elasticsearch-setup-passwords'' zufällige Passworte für die vordefinierten Account in Elasticsearch: | In einer zweiten Shell erzeuge ich mit dem Kommando ''elasticsearch-setup-passwords'' zufällige Passworte für die vordefinierten Account in Elasticsearch: | ||
cd elasticsearch-7. | cd elasticsearch-7.17.7/ | ||
export ES_PATH_CONF=$HOME/elastic/config | export ES_PATH_CONF=$HOME/elastic/config | ||
./bin/elasticsearch-setup-passwords auto | ./bin/elasticsearch-setup-passwords auto | ||
Zeile 51: | Zeile 51: | ||
export ES_PATH_CONF=$HOME/elastic/config | export ES_PATH_CONF=$HOME/elastic/config | ||
cd elasticsearch-7. | cd elasticsearch-7.17.7/ | ||
./bin/elasticsearch-plugin install ingest-attachment | ./bin/elasticsearch-plugin install ingest-attachment | ||
-> Installing ingest-attachment | -> Installing ingest-attachment |
Version vom 31. Oktober 2022, 14:05 Uhr
Elasticsearch
Elasticsearch ist ein weit verbreiteter Suchserver für die Indizierung von Volltext oder von Log-Dateien. Nach einer Lizenzänderung ist Elasticsearch leider keine freie Software im Sinne der Opensource Initiative (OSI) mehr.
Dieses Dokument leitet zur Installation eines Elasticsearch-Server an, der am Localhost-Interface erreichbar ist und für Anwendungen auf dem Server (zum Beispiel Nextcloud mit Volltextsuche) genutzt werden kann. Durch eine Proxy-Konfiguration in einer .htaccess-Datei kann der Server über das Internet erreichbar gemacht werden.
Installation
Für den Dienst wird in HSAdmin ein eigener Shell-User xyz00-elastic mit der Shell /bin/bash angelegt.
Im ersten Schritt wird die Software (als tar.gz-Archiv) heruntergeladen und entpackt.
Die neueste Version kann auf https://www.elastic.co/de/downloads/elasticsearch in Erfahrung gebracht werden.
wget "https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.7-linux-x86_64.tar.gz" tar xzf elasticsearch-7.17.7-linux-x86_64.tar.gz rm elasticsearch-7.17.7-linux-x86_64.tar.gz
Für zukünftige Updates ist zu empfehlen, die Verzeichnisse config, data und logs separat anzulegen:
mkdir ~/elastic/ mv elasticsearch-7.17.7/config elastic mkdir ~/elastic/logs mkdir ~/elastic/data
In der Konfigurationdatei ~/elastic/config/elasticsearch.yml werden folgende Optionen gesetzt: Die beiden Ports, auf denen das System erreichbar ist und die security-Option für das Passwort-Login. Außerdem die Pfade für logs und data.
http.port: 39200 transport.tcp.port: 39202 xpack.security.enabled: true discovery.type: single-node path.data: /home/pacs/xyz00/users/elastic/elastic/data path.logs: /home/pacs/xyz00/users/elastic/elastic/logs
Dann wird der Dienst provisorisch gestartet.
cd elasticsearch-7.17.7/ export ES_PATH_CONF=$HOME/elastic/config ES_JAVA_OPTS="-Xms1g -Xmx1g" ./bin/elasticsearch
In einer zweiten Shell erzeuge ich mit dem Kommando elasticsearch-setup-passwords zufällige Passworte für die vordefinierten Account in Elasticsearch:
cd elasticsearch-7.17.7/ export ES_PATH_CONF=$HOME/elastic/config ./bin/elasticsearch-setup-passwords auto
Die Ausgabe mit den generierten Passwörtern sichern!
Für Nextcloud ist noch das Plugin ingest-attachment Plugin erforderlich:
export ES_PATH_CONF=$HOME/elastic/config cd elasticsearch-7.17.7/ ./bin/elasticsearch-plugin install ingest-attachment -> Installing ingest-attachment -> Downloading ingest-attachment from elastic [=================================================] 100% @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: plugin requires additional permissions @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ * java.lang.RuntimePermission accessClassInPackage.sun.java2d.cmm.kcms * java.lang.RuntimePermission accessDeclaredMembers * java.lang.RuntimePermission getClassLoader * java.lang.reflect.ReflectPermission suppressAccessChecks * java.security.SecurityPermission createAccessControlContext See http://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html for descriptions of what these permissions allow and the associated risks. Continue with installation? [y/N]y -> Installed ingest-attachment -> Please restart Elasticsearch to activate any plugins installed
Danach sollte Elasticsearch neugestartet werden.
Monitoring
Ein Start- und ein Stop-Skript und eine Monit-Konfiguration sorgen für den automatischen Start des Dienstes nach einem Reboot.
~/bin/start-elastic
#!/bin/bash export HOME=/home/pacs/xyz00/users/elastic export ES_PATH_CONF=$HOME/elastic/config export ES_JAVA_OPTS="-Xms1g -Xmx1g" cd $HOME mkdir -p $HOME/var cd $HOME/elasticsearch-7.16.1 exec ./bin/elasticsearch & echo $! >$HOME/var/elasticsearch.pid
~/bin/stop-elastic
#!/bin/bash export HOME=/home/pacs/xyz00/users/elastic kill $( cat $HOME/var/elasticsearch.pid )
~/.monitrc
set daemon 60 with start delay 10 set logfile /home/pacs/xyz00/users/elastic/var/monit.log set idfile /home/pacs/xyz00/users/elastic/var/monit.id set statefile /home/pacs/xyz00/users/elastic/var/monit.state set mailserver localhost set mail-format { from: monit@xyz00.hostsharing.net } set httpd port 39008 address localhost allow elasticadmin:ein-monit-passwort check process elasticsearch with pidfile /home/pacs/xyz00/users/elastic/var/elasticsearch.pid start program "/home/pacs/xyz00/users/elastic/bin/start-elastic" stop program "/home/pacs/xyz00/users/elastic/bin/stop-elastic"
crontab -l
# m h dom mon dow command HOME=/home/pacs/xyz00/users/elastic @reboot rm -f $HOME/.monit.pid && /usr/bin/monit -c $HOME/.monitrc
Update durchführen
Siehe auch die Anleitungen:
- https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-upgrade.html
- https://www.elastic.co/guide/en/elasticsearch/reference/current/rolling-upgrades.html
Dieses Vorgehensweise hat bei mir für das Upgrade von 7.14.1 auf 7.16.1 funktioniert. Bitte am besten erst auf einer Testinstallation testen!
als Benutzer xyz00-elastic:
# TODO: neue tar.gz Datei herunterladen und entpacken, siehe oben. # Es gibt ein neues Verzeichnis $HOME/elasticsearch-7.16.1 killall monit # Stoppe monit ~/bin/stop-elastic # TODO: Falls nicht mit separaten Verzeichnissen gearbeitet wird, # muss jetzt config und data und logs vom alten elasticsearch # in das neue elasticsearch Verzeichnis verschoben werden. # TODO: Bearbeite ~/bin/start-elastic und ändere den Pfad auf die # neue Version von elasticsearch /usr/bin/monit -c $HOME/.monitrc # starte monit neu, und das # startet dann auch elasticsearch # TODO: Falls Plugins verwendet werden, müssen diese wieder # installiert werden. Siehe oben. # Elasticsearch nachher neustarten