2015-11-25 9 views
7

Gibt es einen generischen Weg in ES zu wissen "oops, Cluster ist abgespritzt, muss Index neu aufgebaut werden"?Wissen, wann Datenverlust auf einem ElasticSearch-Cluster auftritt

Alternativ, ein Muster oder Ansatz, der diese Frage beantwortet?

Bisher wir den folgenden Ansatz verwendet haben:

1) Wenn Cluster roten Status geht, Daten verloren wurden, muss Index neu erstellt werden.

2) Wenn der Cluster zwischen grün und gelb wechselt, ist kein Datenverlust aufgetreten.

3) Ähnlich wie bei # 2, bei einem Index mit 5 Shards, solange der "active_shards" -Wert gleich oder größer als 5 ist, ist alles in Ordnung.

Ist # 3 fair? Grundsätzlich ist die folgende richtige:

DataLossHasOccurred == ("active_shards" < "active_primary_shards")

Antwort

0

Nein, es ist nicht.

3 ist eine äquivalente Prüfung zu den anderen.

Wenn der Cluster "rot" ist, bedeutet dies, dass einige Daten nicht verfügbar sind. Es darf nicht verloren gehen. Wenn einige Server offline gehen, aber wieder hochgefahren werden können, können die Daten wiederhergestellt werden. Wenn das passiert, kehrt der Cluster in einen grünen Zustand zurück.

Wenn der Cluster "gelb" ist, bedeutet dies, dass der Cluster mit einem reduzierten Wert arbeitet. Abhängig von der Anzahl der Replikate, die für die betroffenen Indizes konfiguriert wurden, kann dies ein Problem darstellen oder nicht. Die Metriken, die ich für die Überwachung verwende, sind der Gesamtzustand und die Anzahl der nicht zugeordneten Shards. Wenn der Cluster in einem gelben Zustand ist und die Anzahl der nicht zugewiesenen Shards nicht sinkt, ist etwas falsch konfiguriert.

+0

Danke, aber das beantwortet nicht direkt die Frage: Ist Datenverlust aufgetreten und Index muss neu erstellt werden. Dies ist der Schwerpunkt dieses Threads. – Jonesome

Verwandte Themen