Denne guiden vil illustrere hvordan du kan sjekke og overvåke Elasticsearch Cluster Health ved hjelp av Health API.
Bruk
For å få informasjonen om klyngens helse, kan du sende en forespørsel til helse -API som vist i forespørselen nedenfor:
"cluster_name": "55fe667810a347cebf1db500b702f968",
"Status": "Gul",
"TIMED_OUT": FALSE,
"Number_of_nodes": 3,
"Number_of_data_nodes": 2,
"Active_primary_shards": 109,
"Active_shards": 218,
"flytting_shards": 0,
"Initializing_shards": 0,
"Unassigned_shards": 6,
"Delayed_unassigned_shards": 0,
"number_of_pending_tasker": 0,
"Number_of_in_Flight_fetch": 0,
"Task_max_waiting_in_queue_millis": 0,
"Active_shards_percent_as_number": 97.32142857142857
En oppføring fra resultatet av spørringen ovenfor er statusen. I vårt eksempel over er klyngenes status gul.
Elasticsearch har tre hovedklyngerhelsestatuser:
Grønn - Grønt betyr at alle skjærene i klyngen er tildelt.
Gul - En gul status indikerer at klyngens primære skjær er tildelt, men kopiene er ikke tildelt.
rød - Rød status betyr at det spesifiserte skjæret ikke er tildelt i klyngen.
Basert på resultatet fra helse -API, kan du bestemme hvilke handlinger du skal ta for å fikse klyngenes helse.
Helse API -spørringsparametere
Det er forskjellige parametere du kan passere helse -API -endepunktet. Slike parametere inkluderer:
Nivå - Bestemmer nivået på detaljer om helseinformasjonen får fra forespørselen. Som standard er denne verdien satt til klynge, men kan også inkludere: indekser og skjær.
Pause - Angir maksimal tid til å vente på svar. Satt til 30 -tallet som standard. Hvis den spesifiserte tiden utløper før Elasticsearch sender tilbake et svar, mislykkes forespørselen.
wait_for_nodes - Forteller forespørselen om å vente på at et bestemt antall noder skal være tilgjengelig.
wait_for_status - Forespørselen vil vente til statusen til klyngen avviker til den som er spesifisert. For eksempel, hvis den er satt til grønn, vil forespørselen vente på at statusen skal endre seg fra gult eller rødt til grønn. Dette kan være nyttig for å avgjøre om løsningen du søker på klyngearbeidene.
Forstå responskroppen
I forrige eksempel fikk vi et svar fra klyngens helse i JSON -format. La oss diskutere hva hver av oppføringene i svaret innebærer.
Cluster_name - Viser navnet på den spesifiserte Elasticsearch -klyngen.
Status - Helsetilstanden til klyngen. Enten: grønn, gul eller rød.
Tidsavbrudd - En boolsk sann eller falsk som beskriver mottak av responsen innen maksimal tidsavbruddsverdi.
NUMMER_OF_NODES - Det totale antallet noder i den spesifiserte klyngen.
NUMMER_OF_DATA_NODES - Det totale antallet noder dedikert til data.
Aktiv_primary_shards - det totale antallet aktive primære skjær i klyngen.
Aktive_shards - det totale antallet skjær i klyngen. Både primær- og replika -skjær.
flytting_shards - antall skjær som er gjennomgått flytting.
Initializing_shards - Skår som gjennomgår initialisering.
Unassigned_shards - Totalt antall ikke tildelte skjær.
Ovennevnte er noe av den essensielle informasjonen fra svaret. Du kan lære mer ved hjelp av dokumentasjonen.
For å spørre informasjonen til en klynge av en indeks, bruk spørringen som vist nedenfor:
Få/_cluster/helse/kibana_sample_data_ecommerce?nivå = skjær
Ovennevnte forespørsel skal returnere en prøveutgang som ligner på den som er vist nedenfor:
Å oppsummere
Denne artikkelen diskuterte hvordan du bruker Elasticsearch Health API for å få informasjon om helsen til en klynge. Du kan bruke konseptene som er undervist i denne guiden for å lage et automatisk Python -skript som sjekker helsen i noen timer og sender en e -post hvis det er rødt eller gult.
Takk for at du leser!