ElasticSearch: Cluster-Zustand (cluster health) mit curl anzeigen

This post is also available in: enEnglish (Englisch)

Um den aktuellen Zustand (cluster health) eines ElasticSearch-Clusters anzuzeigen, benutze

curl -X GET "http://localhost:9200/_cluster/health?pretty=true"

Falls der ElasticSearch-Cluster nicht auf localhost läuft, ersetzt localhost mit dem Hostnamen oder der IP-Adresse eines der ElasticSearch-Konten.

Beispielausgabe:
{
  "cluster_name" : "docker-cluster",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 1,
  "number_of_data_nodes" : 1,
  "active_primary_shards" : 0,
  "active_shards" : 0,
  "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
}

Die wichtigsten Informationen sind:

  • "cluster_name" : "docker-cluster" Der Name, den du deinem Cluster zugewiesen hast. Alle ElasticSearch-Knoten im Cluster müssen denselben Cluster-Namen haben, sonst verbinden sie sich nicht zu einem Cluster.
  • "number_of_nodes" : 1 Die Anzahl der Cluster-Knoten, die aktuell im Cluster aktiv sind. Manchmal benötigen einige Knoten etwas länger, um hochzufahren, wenn sie gerade erst gestartet worden sind. Daher: Sollten nicht genug Knoten aufgelistet werden, warte eine Minute und versuche es nochmal.
  • "status" : "green" Der Cluster-Zustand (engl. cluster health) deines Clusters

Der Cluster-Zustand kann drei Werte annehmen:

  • green: Mit deinem Cluster ist alles OK (wie in unserem Beispiel)
  • yellow: Dein Cluster ist grundsätzlich OK, aber einige Shards konnten nicht repliziert werden. Dies ist oft der Fall, wenn du einen Cluster mit nur einem Knoten betreibst (dann gibt es keinen zweiten Knoten, auf den die Shards repliziert werden können – fällt der eine Knoten aus, können die Daten nicht wiederhergestellt werden)
  • red: Etwas stimmt nicht mit dem Cluster. Du musst im Log nachsehen

Du möchtest möglichst einfach einen ElasticSearch-Cluster mit Docker aufsetzen? TechOverflow bietet für diesen Zweck einen einfachen Konfigurations-Generator an: ElasticSearch docker-compose.yml and systemd service generator (engl).

Siehe auch die offizielle Reference zu Cluster Health (engl.)