Elasticsearch + Kibana¶
Unsere Managed Server können zusammen mit Elasticsearch und Kibana bestellt werden. Konfigurationsempfehlungen für Ihren Managed Server finden Sie hier: https://www.providerdienste.de/de/managed-server/elasticsearch/
Beide Dienste werden mit der Standardkonfiguration ausgeliefert. Links zur Dokumentation finden Sie unter dem Abschnitt Dokumentation.
Elasticsearch¶
Der Elasticsearch Dienst wird lokal betrieben und ist über Port 9200 erreichbar. Von außen ist Elasticsearch nicht erreichbar. Ein Zugriff auf Elasticsearch kann zum Beispiel per SSH und dem tool cURL erfolgen:
curl -X GET "localhost:9200/_cluster/health?wait_for_status=yellow&timeout=50s&pretty"
{
"cluster_name" : "elasticsearch",
"status" : "green",
"timed_out" : false,
"number_of_nodes" : 1,
"number_of_data_nodes" : 1,
"active_primary_shards" : 4,
"active_shards" : 4,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 0,
"delayed_unassigned_shards" : 0,
"number_of_pending_tasks" : 0,
"number_of_in_flight_fetch" : 0,
"task_max_waiting_in_queue_millis" : 0,
"active_shards_percent_as_number" : 100.0
}
Fehlermeldunge „index read-only“¶
Bei Elasticsearch kann es dazu kommen, dass Indizes nur noch „read-only“ gesetzt sind. Dies äußert sich durch Meldungen wie
ClusterBlockException[blocked by: [FORBIDDEN/1/index read-only (api)];]
Ursache dafür ist in der Regel zu geringer freier Speicherplatz auf dem Server. Elasticsearch schaltet ab einer Speicherplatzbelegung von 85% in den „read-only“ Modus.
Ein Upgrade des Speicherplatzes Ihres Managed Servers können Sie jeder Zeit per Mail bestellen.
Die Limits bei Elasticsearch lassen sich anpasse. Entscheidend dafür sind die Parameter cluster.routing.allocation.disk.watermark.low, cluster.routing.allocation.disk.watermark.high und cluster.routing.allocation.disk.watermark.flood_stage:
curl -XPUT 'localhost:9200/_cluster/settings' -H 'Content-Type:
application/json' -d'
{
"transient": {
"cluster.routing.allocation.disk.watermark.low": "10gb",
"cluster.routing.allocation.disk.watermark.high": "5gb",
"cluster.routing.allocation.disk.watermark.flood_stage": "3gb",
"cluster.info.update.interval": "1m"
}
}'
Diese Werte sind beispielhaft und sollten an den Managed Server angepasst werden. Die Einstellungen sind nicht persistent. Bei einem Neustart von Elasticsearch würden diese zurückgesetzt. Für eine persistente Änderung auf Ihrem Managed Server senden Sie uns bitte eine Mail an info@providerdienste.de.
Den „read-only“ Modus kann mit
curl -XPUT '127.0.0.1:9200/_settings?pretty' -H 'Content-Type:
application/json' -d'
{
"index.blocks.read_only_allow_delete": null
}'
zurückgesetzt werden.
Die offizielle Dokumentation dazu finden Sie hier: https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-cluster.html#disk-based-shard-allocation
Kibana¶
Kibana wird nur lokal betrieben und ist über den Port 5601 erreichbar. Um Kibana von außen erreichbar zu machen wird ein Apache Proxy benötigt. Dazu müssen Sie in der Verwaltungsoberfläche Ihres Managed Servers bei einer Subdomain einen Proxy zu Kibana einrichten.
Gehen Sie zuerst in das Kundenmenü des Endkunden, bei dem die Subdomain eingerichtet werden soll. Legen Sie dort zuerst eine .htuser Datei an. Diese enthält Benutzername und Passwort für die Authentifizierung bei Aufruf von Kibana. Die Generierung gelingt am Einfachsten per SSH und Aufruf der htpasswd Binärdatei:
/usr/local/pd-admin2/httpd-2.4/bin/htpasswd -c ~/.htuser user
Anstelle von user können Sie einen beliebigen Benuternamen wählen.
Gehen Sie nun nach Subdomains => Übersicht. Sofern die gewünschte Subdomain noch nicht vorhanden ist legen Sie diese bitte neu an. Klicken Sie zum Einrichten des Proxys nun auf Ziel. Als Ziel geben Sie
http://127.0.0.1:5601
an. Wichtig ist, dass kein Slash am Ende angefügt wird. Sonst kommt es zu Fehlern beim Aufruf von Kibana. Setzen Sie nun den Haken sowohl bei Proxy-Eintrag für URL-Ziel anstatt Redirect anlegen, als auch bei Proxyzugriff nur mit Passwort. Bei .htuser-Datei geben Sie den Pfad zu der angelegten Datei an. Auch hier ist es wichtig die vollständigen absoluten Pfad anzugeben und nicht etwa $HOME oder ~ anzugeben.
Dokumentation¶
Die offizielle Dokumentation zu Elasticsearch und Kibana finden Sie hier:
https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html