Elasticsearch
Grupa
Szukaj…
Uwagi
Cluster Health zapewnia wiele informacji o klastrze, takich jak liczba odłamków, które są przydzielane („aktywne”), a także liczba nieprzypisanych i przenoszących się obiektów. Ponadto zapewnia bieżącą liczbę węzłów i węzłów danych w klastrze, co może umożliwić sondowanie w poszukiwaniu brakujących węzłów (np. Jeśli spodziewasz się, że to 15 , ale pokazuje tylko 14 , to brakuje węzła) .
Dla kogoś, kto wie o Elasticsearch, odłamki „przypisane” i „nieprzypisane” mogą pomóc w wyśledzeniu problemów.
Najczęstszym polem sprawdzanym z Cluster Health jest status , który może być w jednym z trzech stanów:
- czerwony
- żółty
- Zielony
Każdy z kolorów oznacza jedną - i tylko jedną - bardzo prostą rzecz:
- Kolor czerwony oznacza, że brakuje Ci przynajmniej jednego podstawowego odłamka.
- Brak podstawowego fragmentu oznacza, że w większości przypadków nie można użyć indeksu do zapisu (indeksowania) nowych danych.
- Technicznie nadal możesz indeksować do dowolnych podstawowych odłamków, które są dostępne w tym indeksie, ale praktycznie oznacza to, że nie możesz, ponieważ ogólnie nie kontrolujesz, jaki odłamek odbiera dany dokument.
- Wyszukiwanie jest nadal możliwe na czerwonym klastrze, ale oznacza to, że otrzymasz częściowe wyniki, jeśli w wyszukiwanym indeksie brakuje odłamków.
- W normalnych okolicznościach oznacza to po prostu, że podstawowy odłamek jest przydzielany (
initializing_shards). - Jeśli węzeł właśnie opuścił klaster (np. Ponieważ uruchomiona przez niego maszyna straciła moc), wówczas sensowne jest, że chwilowo zabraknie niektórych odłamków podstawowych.
- W tym scenariuszu każdy odłamek repliki dla tego odłamka podstawowego zostanie awansowany jako odłamek podstawowy.
- Brak podstawowego fragmentu oznacza, że w większości przypadków nie można użyć indeksu do zapisu (indeksowania) nowych danych.
- Kolor żółty wskazuje, że wszystkie odłamki podstawowe są aktywne, ale brakuje co najmniej jednego odłamka repliki.
- Brakująca replika ma wpływ na indeksowanie tylko wtedy, gdy ustawienia spójności wymagają jej do indeksowania.
- Domyślnie dla każdej podstawowej jest tylko jedna replika, a indeksowanie może nastąpić z jedną brakującą repliką.
- W normalnych okolicznościach oznacza to po prostu, że fragment repliki jest przydzielany (
initializing_shards). - Klaster z jednym węzłem z włączonymi replikami zawsze będzie w najlepszym wypadku żółty. Może być czerwony, jeśli podstawowy odłamek nie jest jeszcze przypisany.
- Jeśli masz tylko jeden węzeł, sensowne jest wyłączenie replik, ponieważ nie oczekujesz żadnego. Wtedy może być zielony.
- Brakująca replika ma wpływ na indeksowanie tylko wtedy, gdy ustawienia spójności wymagają jej do indeksowania.
- Kolor zielony wskazuje, że wszystkie odłamki są aktywne.
- Jedynym dozwolonym działaniem niezależnego fragmentu dla zielonego klastra jest
relocating_shards. - Nowe wskaźniki, a tym samym nowe odłamki, spowodują, że klaster zmieni kolor z czerwonego na żółty na zielony, ponieważ każdy fragment jest przydzielany (najpierw pierwotny, zmieniając go na żółty, a następnie repliki, jeśli to możliwe, zmieniając na zielony).
- W Elasticsearch 5.xi późniejszych nowe indeksy nie spowodują, że klaster będzie czerwony, chyba że przydzielenie go zajmie im zbyt dużo czasu.
- Jedynym dozwolonym działaniem niezależnego fragmentu dla zielonego klastra jest
Czytelne dla człowieka, tabelaryczne zdrowie klastrów z nagłówkami
Przykład wykorzystuje podstawową składnię HTTP. Wszelkie <#> w tym przykładzie należy usunąć podczas kopiowania.
Można użyć interfejsów API _cat aby uzyskać czytelne dla ludzi, tabelaryczne dane wyjściowe z różnych powodów.
GET /_cat/health?v <1>
-
?vjest opcjonalne, ale sugeruje, że chcesz uzyskać wynik „pełny”.
_cat/health istnieje od Elasticsearch 1.x, ale oto przykład jego wyników z Elasticsearch 5.x:
Z pełnym wyjściem:
epoch timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1469302011 15:26:51 elasticsearch yellow 1 1 45 45 0 0 44 0 - 50.6%
Czytelny dla człowieka, tabelaryczny klaster Zdrowie bez nagłówków
Przykład wykorzystuje podstawową składnię HTTP. Wszelkie <#> w tym przykładzie należy usunąć podczas kopiowania.
Można użyć interfejsów API _cat aby uzyskać czytelne dla ludzi, tabelaryczne dane wyjściowe z różnych powodów.
GET /_cat/health <1>
_cat/health istnieje od Elasticsearch 1.x, ale oto przykład jego wyników z Elasticsearch 5.x:
Bez pełnego wyjścia:
1469302245 15:30:45 elasticsearch yellow 1 1 45 45 0 0 44 0 - 50.6%
Czytelne dla ludzi, tabelaryczne zdrowie klastrów z wybranymi nagłówkami
Przykład wykorzystuje podstawową składnię HTTP. Wszelkie <#> w tym przykładzie należy usunąć podczas kopiowania.
Podobnie jak większość interfejsów API _cat w Elasticsearch, interfejs API selektywnie odpowiada domyślnym zestawem pól. Istnieją jednak inne pola interfejsu API, jeśli chcesz:
GET /_cat/health?help <1>
-
?helppowoduje, że interfejs API zwraca pola (i krótkie nazwy), a także krótki opis.
_cat/health istnieje od Elasticsearch 1.x, ale oto przykład jego wyników z Elasticsearch 5.x:
Pola dostępne od daty utworzenia tego przykładu:
epoch | t,time | seconds since 1970-01-01 00:00:00
timestamp | ts,hms,hhmmss | time in HH:MM:SS
cluster | cl | cluster name
status | st | health status
node.total | nt,nodeTotal | total number of nodes
node.data | nd,nodeData | number of nodes that can store data
shards | t,sh,shards.total,shardsTotal | total number of shards
pri | p,shards.primary,shardsPrimary | number of primary shards
relo | r,shards.relocating,shardsRelocating | number of relocating nodes
init | i,shards.initializing,shardsInitializing | number of initializing nodes
unassign | u,shards.unassigned,shardsUnassigned | number of unassigned shards
pending_tasks | pt,pendingTasks | number of pending tasks
max_task_wait_time | mtwt,maxTaskWaitTime | wait time of longest task pending
active_shards_percent | asp,activeShardsPercent | active number of shards in percent
Następnie możesz użyć tego do wydrukowania tylko tych pól:
GET /_cat/health?h=timestamp,cl,status&v <1>
-
h=...definiuje listę pól, które chcesz zwrócić. -
v(pełne) określa, że chcesz drukować nagłówki.
Dane wyjściowe z wystąpienia Elasticsearch 5.x:
timestamp cl status
15:38:00 elasticsearch yellow
Zdrowie klastrów oparte na JSON
Przykład wykorzystuje podstawową składnię HTTP. Wszelkie <#> w tym przykładzie należy usunąć podczas kopiowania.
_cat API _cat są często wygodne dla ludzi w celu uzyskania szczegółowych informacji o klastrze. Ale często chcesz konsekwentnie analizować dane wyjściowe do użycia z oprogramowaniem. Ogólnie interfejsy API JSON są przeznaczone do tego celu.
GET /_cluster/health
_cluster/health istnieje od Elasticsearch 1.x, ale oto przykład jego wyników z Elasticsearch 5.x:
{
"cluster_name": "elasticsearch",
"status": "yellow",
"timed_out": false,
"number_of_nodes": 1,
"number_of_data_nodes": 1,
"active_primary_shards": 45,
"active_shards": 45,
"relocating_shards": 0,
"initializing_shards": 0,
"unassigned_shards": 44,
"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": 50.56179775280899
}