Elasticsearch und OpenVZ

Ich hatte gestern einige Probleme damit, Elasticsearch in einem OpenVZ-Container zum Laufen zu bringen.

Der OpenVZ-Container läuft klassisch mit dem Debian 7 x64 minimal-Template und hat, natürlich, genügend Ressourcen, um Elasticsearch zu betreiben.

Es kann vorkommen, dass Elasticsearch beim Start via init-Script eine Fehlermeldung ausgibt und nicht startet

permission denied on key 'vm.max_map_count'

Das liegt an der Struktur von OpenVZ – ein Container darf keine sysctl-Konfigurationen des Hosts ändern. Man kann einfach das init-Script bearbeiten

vim /etc/init.d/elasticsearch

und Zeile 160, 161 und 162 (je nach Version, bitte vergleichen!) auskommentieren.

#       if [ -n "$MAX_MAP_COUNT" ]; then
#               sysctl -q -w vm.max_map_count=$MAX_MAP_COUNT
#       fi

Laut einigen Kommentaren im Internet kann es durch diese Änderung lediglich zu Performance-Problemen mit Elasticsearch kommen – ob dies zutrifft, muss man individuell prüfen; bei mir ist alles ausreichend performant.


Sollte nun Elasticsearch noch immer nicht starten, gibt es ziemlich sicher ein Problem mit der Container-Konfiguration – auch dieses Problem lässt sich schnell beheben!

Man öffnet einfach die Konfigurationsdatei des OpenVZ-Containers (z.B. /etc/vz/conf/CTID.conf), kommentiert (falls vorhanden) die „CPUS“-Zeile aus und fügt folgendes ein:

CPULIMIT="100"

Das Limit sollte natürlich jeder für sich anpassen. Der Parameter ist hier näher erläutert.

Nun einfach den Container neustarten

vzctl restart CTID

und freuen, dass Elasticsearch nun läuft…

Schreibe einen Kommentar