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:

  1. 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.
  2. 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.
  3. 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.

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>
  1. ?v jest 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>
  1. ?help powoduje, ż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>
  1. h=... definiuje listę pól, które chcesz zwrócić.
  2. 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
}


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow