Comment surveiller la santé du cluster elasticsearch

Comment surveiller la santé du cluster elasticsearch
Il est nécessaire de garder la santé de votre cluster Elasticsearch. La vérification et la surveillance constante de la santé de votre cluster, à la fois en développement et en production, vous permet d'attraper et de corriger rapidement les erreurs.

Ce guide illustrera comment vérifier et surveiller Elasticsearch Cluster Health à l'aide de l'API Health.

Usage

Pour obtenir les informations sur la santé de votre cluster, faites une demande de remise à l'API de santé comme indiqué dans la demande ci-dessous:


"Cluster_name": "55FE667810A347CEBF1DB500B702F968",
"statut": "jaune",
"timed_out": faux,
"numéro_of_nodes": 3,
"numéro_of_data_nodes": 2,
"active_primary_shards": 109,
"Active_shards": 218,
"Relocating_shards": 0,
"Initializing_shards": 0,
"non assisté_shards": 6,
"Delayed_unassigned_shards": 0,
"Number_Of_Pending_Tasks": 0,
"numéro_of_in_flight_fetch": 0,
"tâche_max_waiting_in_queue_millis": 0,
"active_shards_percent_as_number": 97.32142857142857

Une entrée du résultat de la requête ci-dessus est le statut. Dans notre exemple ci-dessus, l'état du cluster est jaune.

Elasticsearch a trois principaux statuts de santé des cluster:

Vert - Le vert signifie que tous les éclats du cluster sont alloués.

Jaune - Un statut jaune indique que le fragment principal du cluster est alloué, mais les répliques ne sont pas allouées.

Rouge - Le statut rouge signifie que le fragment spécifié n'est pas alloué dans le cluster.

Sur la base de la sortie de l'API de santé, vous pouvez déterminer les actions à prendre pour réparer la santé de votre cluster.

Paramètres de requête de l'API de santé

Il existe différents paramètres, vous pouvez passer le point de terminaison de l'API de santé. Ces paramètres incluent:

Niveau - Détermine le niveau de détails des informations sur la santé tire de la demande. Par défaut, cette valeur est définie sur le cluster mais peut également inclure: les indices et les éclats.

Temps libre - Définit le temps maximum pour attendre une réponse. Réglé sur 30s par défaut. Si le temps spécifié expire avant qu'Elasticsearch renvoie une réponse, la demande échoue.

wait_for_nodes - Indique à la demande d'attendre qu'un nombre spécifique de nœuds soit disponible.

wait_for_status - La demande attendra que l'état du cluster s'étend sur celui spécifié. Par exemple, si elle est définie sur Green, la demande attendra que le statut passe du jaune ou du rouge au vert. Cela peut être utile pour déterminer si le correctif que vous appliquez au cluster fonctionne.

Comprendre l'organisme de réponse

Dans l'exemple précédent, nous avons reçu une réponse de la santé du cluster au format JSON. Discutons de ce que chacune des entrées de la réponse implique.

cluster_name - Affiche le nom du cluster Elasticsearch spécifié.

Statut - L'état de santé du cluster. Soit: vert, jaune ou rouge.

Fin du temps - Un booléen vrai ou faux qui décrit la réception de la réponse dans la valeur de délai maximum.

numéro_of_nodes - Le nombre total de nœuds dans le cluster spécifié.

numéro_of_data_nodes - Le nombre total de nœuds dédiés aux données.

active_primary_shards - le nombre total d'éclats primaires actifs dans le cluster.

active_shards - Le nombre total d'éclats dans le cluster. À la fois des éclats primaires et répliques.

relocalisation_shards - Nombre d'éclats en relocalisation.

Initializing_shards - Des éclats qui subissent une initialisation.

non-assisté_shards - Nombre total d'éclats non alloués.

Ce qui précède est quelques-unes des informations essentielles de la réponse. Vous pouvez en savoir plus en utilisant la documentation.

Pour interroger les informations d'un cluster d'un index, utilisez la requête comme indiqué ci-dessous:

Get / _cluster / health / kibana_sample_data_ecommerce?niveau = éclats

La demande ci-dessus doit renvoyer un exemple de sortie similaire à celui ci-dessous:

Résumer

Cet article a expliqué comment utiliser l'API Elasticsearch Health pour obtenir des informations sur la santé d'un cluster. Vous pouvez utiliser les concepts enseignés dans ce guide pour créer un script Python automatique qui vérifie la santé pendant quelques heures et envoie un e-mail en cas de rouge ou de jaune.

Merci pour la lecture!