Ten przewodnik zilustruje, jak sprawdzić i monitorować zdrowie klastra elasticsearch za pomocą API zdrowia.
Stosowanie
Aby uzyskać informacje o zdrowiu twojego klastra, zrób żądanie GET do interfejsu API zdrowia, jak pokazano na poniższym żądaniu:
„Cluster_name”: „55FE667810A347CEBF1DB500B702F968”,
„Status”: „żółty”,
„timed_out”: false,
„Number_of_nodes”: 3,
„Number_of_data_nodes”: 2,
„Active_primary_shards”: 109,
„Active_shards”: 218,
„Relokating_shards”: 0,
„Initinizing_shards”: 0,
„Unespirented_shards”: 6,
„opóźnione_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”: 97.32142857142857
Jeden wpis z wyniku powyższego zapytania jest status. W naszym powyższym przykładzie status klastra jest żółty.
ElasticSearch ma trzy główne statusy zdrowia klastra:
Zielony - Zielony oznacza, że wszystkie odłamki w klastrze są przydzielane.
Żółty - Status żółty wskazuje, że pierwotne odłamki klastra są przydzielane, ale repliki nie są przydzielane.
Czerwony - Status czerwony oznacza, że określony odłamek nie jest przydzielany w klastrze.
Na podstawie wyników interfejsu API zdrowia możesz ustalić, które działania należy podjąć, aby naprawić zdrowie klastra.
Parametry zapytania API zdrowia
Istnieją różne parametry, które możesz przekazać punkt końcowy API zdrowia. Takie parametry obejmują:
Poziom - Określa poziom szczegółów informacji zdrowotnych, które otrzymują od żądania. Domyślnie ta wartość jest ustawiona na klaster, ale może również obejmować: wskaźniki i odłamki.
Koniec czasu - Ustawia maksymalny czas na czekanie na odpowiedź. Domyślnie ustawione na 30. Jeśli określony czas upłynie, zanim ElasticSearch odesła odpowiedź, żądanie się nie powiedzie.
Wait_for_nodes - Informuje prośbę o czekanie na dostępną liczbę węzłów.
Wait_for_status - Żądanie będzie poczekać, aż status klastra odbiega na określony. Na przykład, jeśli zostanie ustawione na zielone, żądanie będzie oczekiwać, że status się zmieni z żółtego lub czerwonego na zielony. Może to być pomocne w ustaleniu, czy poprawka, którą stosujesz do klastra, działa.
Zrozumienie ciała odpowiedzi
W poprzednim przykładzie otrzymaliśmy odpowiedź na zdrowie klastra w formacie JSON. Omówmy, co pociąga za sobą każdy z wpisów w odpowiedzi.
klaster_name - Pokazuje nazwę określonego klastra ElasticSearch.
Status - Stan zdrowia klastra. Albo: zielony, żółty lub czerwony.
Przekroczono limit czasu - Boolean true lub fałsz, który opisuje odbiór odpowiedzi według maksymalnej wartości limitu czasu.
numer_of_nodes - Całkowita liczba węzłów w określonym klastrze.
numer_of_data_nodes - Całkowita liczba węzłów poświęconych danych.
Active_primary_shards - Całkowita liczba aktywnych odłamków pierwotnych w klastrze.
Active_shards - Całkowita liczba odłamków w klastrze. Zarówno odłamki pierwotne, jak i repliki.
przeniesienie_shardów - Liczba odłamków poddawanych relokacji.
inicjalizacja_shardów - odłamki, które są poddawane inicjalizacji.
Unespigned_shards - Całkowita liczba niezrównanych odłamków.
Powyższe są niektóre z podstawowych informacji z odpowiedzi. Możesz dowiedzieć się więcej za pomocą dokumentacji.
Aby zapytać o informacje o klastrze indeksu, użyj zapytania, jak pokazano poniżej:
Get/_cluster/health/kibana_sample_data_ecommerce?Poziom = odłamki
Powyższe żądanie powinno zwrócić przykładowe wyjście podobne do tego pokazanego poniżej:
Podsumować
W tym artykule omówiono, jak korzystać z interfejsu API zdrowia Elasticsearch, aby uzyskać informacje o zdrowiu klastra. Możesz użyć koncepcji nauczanych w tym przewodniku, aby stworzyć automatyczny skrypt Python, który sprawdza zdrowie przez kilka godzin i wysyła wiadomość e -mail, jeśli czerwona lub żółta.
Dziękuję za przeczytanie!