Lors de l'ajout ou du retrait de nœuds dans un cluster Elasticsearch, la redistribution des shards (shard rebalancing) est automatiquement déclenchée. Pour évaluer l'état de ce processus, plusieurs points de terminaison d'API et outils de supervision peuvent être exploités.
Inspection de l'état d'allocation des shards
L'API _cat/shards fournit une vue d'ensemble instantanée. En forçant le format JSON et en triant les résultats, on peut isoler programmatiquement les shards en cours de déplacement.
// Extraction des shards avec tri par état et formatage JSON
GET _cat/shards?format=json&s=state
// Filtrage côté client pour isoler les shards en état RELOCATING
// (Adapté pour une intégration dans un script de supervision)
Les états à surveiller spécifiquement sont :
RELOCATING: Le shard est activement transféré d'un nœud source vers un nœud cible.INITIALIZING: Le shard est en cours d'initialisation sur le nœud de destination.STARTED: Le shard est pleinement opérationnel et assigné.
Analyse des décisions d'allocation
L'API d'explication détaille les raisons des déplacements, les contraintes respectées et l'état d'avancement des shards non assignés ou en transit.
// Analyse automatique de la première allocation en attente
GET _cluster/allocation/explain
// Investigation ciblée sur une réplica spécifique
GET _cluster/allocation/explain
{
"index": "logs-production-2023",
"shard": 2,
"primary": false
}
Suivi des tâches actives du cluster
L'API _tasks permet d'isérer les opérations internes liées aux déplacements et de suivre leur progression globale.
// Liste détaillée des tâches de reroutage en cours
GET _tasks?actions=cluster:admin/reroute&detailed=true
// Surveillance spécifique des opérations de déplacement de shards
GET _tasks?actions=*shard*&detailed=true
Le champ progress dans la réponse indique le pourcentage d'avancement de la tâche concernée.
Évaluation des métriques au niveau des nœuds
Les statistiques de récupération (recovery) incluent les déplacements de shards et permettent de mesurer précisément le volume de données transférées au niveau de chaque instance.
// Récupération des statistiques de recovery pour tous les nœuds
GET _nodes/stats/indices/recovery
// Ciblage d'un nœud spécifique via son nom
GET _nodes/data-node-01/stats/indices/recovery
Exploitation de l'interface graphique de Kibana
Le module Stack Monitoring offre une visualisation temps réel sans nécessiter de requêtes manuelles.
- Accéder au menu Stack Monitoring.
- Sélectionner le cluster Elasticsearch cible.
- Naviguer vers l'onglet Shards.
- Consulter les graphiques de mouvement pour observer le débit et le volume des shards en transit.
Indicateurs clés à surveiller
- Volume de shards en transit : Correspond au compteur de shards dans l'état
RELOCATING. - Bande pasasnte et progression : Calculable via le ratio entre
bytes_recoveredet le total des bytes dans les statistiques de recovery. - Temps restant estimé : Nécessite une extrapolation manuelle basée sur la vélocité actuelle des transferts, aucune API native ne fournissant cette valeur directement.