RousselTMLEARNING

Observabilité

Monitoring et troubleshooting Elasticsearch : santé, shards non assignés, JVM, hot threads et slow logs

Diagnostiquer un cluster Elasticsearch : cluster health et CAT APIs, shards non assignés et allocation explain, statistiques des nœuds, JVM et circuit breakers, thread pools, hot threads, slow logs et Stack Monitoring.

1. La méthode #

Toujours dans le même ordre.

Étapes #

Méthode de diagnostic Elasticsearch
GET _cluster/health?filter_path=status,number_of_nodes,unassigned_shards
GET _cat/nodes?v&h=name,node.role,heap.percent,ram.percent,cpu,load_1m,disk.used_percent
GET _cat/shards?v&s=state&h=index,shard,prirep,state,unassigned.reason
GET _cluster/allocation/explain
GET _cat/thread_pool/search,write?v&h=node_name,name,active,queue,rejected
GET _nodes/hot_threads

2. Causes fréquentes #

Les classiques.

Tableau #

SymptômeCauseCorrection
Yellow après redémarrageRépliques en cours de reconstruction ou impossibles (un seul nœud)Attendre, ajouter un nœud, ou réduire number_of_replicas
Red, shards non assignésNœud perdu sans réplique, disque pleinallocation/explain, restaurer depuis snapshot
Index en lecture seuleDisque au-dessus du seuil flood-stage (95 %)Libérer de l'espace ; le blocage se lève automatiquement
Rejets d'écriture (429)File du thread pool write saturéeRéduire la concurrence des clients, plus de nœuds, bulk plus gros
Circuit breakerRequête ou agrégation trop gourmande en mémoireLimiter la taille des agrégations, revoir les champs text agrégés
Longues pauses GCHeap trop petite ou trop grandeHeap ≤ 50 % de la RAM et sous ~31 Go

3. Slow logs et supervision #

Garder la trace.

Configuration #

PUT logs-nginx-*/_settings
{ "index.search.slowlog.threshold.query.warn": "2s",
  "index.search.slowlog.threshold.query.info": "500ms",
  "index.indexing.slowlog.threshold.index.warn": "5s" }
  • Stack Monitoring (via Elastic Agent ou Metricbeat) envoie les métriques du cluster vers un cluster de supervision séparé.
  • L'outil support diagnostics d'Elastic collecte toutes les API utiles en une archive pour une analyse ou un ticket de support.
Bonne Pratique : Supervisez le cluster depuis un autre cluster : un cluster en panne ne peut pas montrer ses propres métriques.

Articles liés

Transforms et enrich : résumer et enrichir les données dans Elasticsearch

Créer des index centrés sur les entités avec les transforms pivot et latest, et enrichir les documents à l'in…

OpenTelemetry et Elasticsearch : compatibilité et architecture

Envoyer de l'OpenTelemetry vers Elasticsearch : Collector et exportateur elasticsearch, endpoint OTLP géré, A…

Ingérer des logs OpenTelemetry dans Elasticsearch

Collecter et structurer des logs avec le Collector OpenTelemetry (receiver filelog, opérateurs, processeur tr…

Pour aller plus loin

Soutenir

♥ SOUTENIR

Soutenez RousselTM Learning

Les formations, articles, TP et attestations restent gratuits et sans publicité intrusive. Une contribution libre, du montant de votre choix, finance l’hébergement, les environnements de TP et l’écriture de nouveaux contenus.

Contribuer avec PayPal Montant libre · carte bancaire ou compte PayPalEn savoir plus
QR code PayPal
Ou scannez ce QR code avec votre téléphone

Merci, chaque contribution compte !