Pourquoi mon cluster Amazon OpenSearch Service apparaît-il rouge ou jaune ?

Lecture de 10 minute(s)
0

L'état de mon cluster Amazon OpenSearch Service est rouge ou jaune.

Brève description

L'onglet Surveillance de votre console OpenSearch Service indique l'état de l'index le moins sain de votre cluster. Le fait qu’un état de cluster qui s'affiche en rouge ne signifie pas que votre cluster est en panne. Cet état indique qu'au moins une partition principale et ses réplications ne sont pas allouées à un nœud. Si l'état de votre cluster passe au jaune, les partitions principales de tous les index sont allouées aux nœuds de votre cluster. Toutefois, une ou plusieurs partitions de réplication ne sont allouées à aucun des nœuds.

**Remarque :**Ne reconfigurez pas votre domaine avant d’avoir résolu l’état du cluster rouge. Si vous essayez de reconfigurer votre domaine lorsqu'il est dans un état de cluster rouge, il peut rester bloqué dans l'état « Traitement en cours ». Pour plus d'informations sur les clusters bloqués dans l'état « Traitement en cours », consultez la section : Pourquoi mon domaine OpenSearch Service est-il bloqué dans l'état « Traitement en cours » ?

Votre cluster peut entrer dans un état rouge pour les raisons suivantes :

  • Défaillances de plusieurs nœuds de données
  • Utilisation d'une partition corrompue ou rouge pour un index
  • Forte sollicitation de la mémoire JVM ou utilisation du processeur
  • Espace disque insuffisant ou inclinaison du disque
  • Aucune partition de réplication pour la partition non attribuée

Remarque : Dans certains cas, vous pouvez résoudre le problème de l'état de votre cluster rouge en supprimant puis en restaurant l'index à partir d'un instantané automatisé.

Votre cluster peut entrer dans un état de santé jaune pour les raisons suivantes :

  • Création d'un nouvel index
  • Insuffisance de nœuds à allouer aux partitions ou distorsion du disque
  • Forte sollicitation de la mémoire JVM
  • Défaillance d'un seul nœud
  • Dépassement de la limite de tentatives d'allocation de partition
  • Nombre de partitions de réplication supérieur au nombre de nœuds de données
  • Déploiement continu bleu ou vert en raison de la relocalisation des partitions de données

Remarque : Si l'état de votre cluster jaune ne se résout pas tout seul, vous pouvez le résoudre en mettant à jour les paramètres d'index ou en redirigeant manuellement les partitions non attribuées. Si l'état de votre cluster jaune ne se résout pas automatiquement, trouvez et résolvez la cause première. Pour éviter l’état de cluster jaune, appliquez les meilleures pratiques en matière de santé.

Résolution

Trouvez la cause de la non-attribution des partitions

Pour détecter les partitions non attribuées, effectuez les opérations suivantes :

1.Répertoriez la partition non attribuée :

$ curl -XGET 'domain-endpoint/_cat/shards?h=index,shard,prirep,state,unassigned.reason' | grep UNASSIGNED

2.Expliquez les raisons de la non-attribution des partition :

$ curl -XGET 'domain-endpoint/_cluster/allocation/explain?pretty' -H 'Content-Type:application/json' -d'
{
     "index": "<index name>",
     "shard": <shardId>,
     "primary": <true or false>
}

3.(Facultatif) Pour un état de cluster rouge, supprimez les indices préoccupants, déterminez et corrigez la cause première :

curl -XDELETE 'domain-endpoint/<index names>'

Répertoriez ensuite les instantanés disponibles et restaurez vos index à partir d'un instantané:

curl -XGET 'domain-endpoint/_snapshot?pretty'

Pour l'état du cluster jaune, trouvez la cause première afin que vos partitions soient attribuées.

Résolution des problèmes liés à l'état de votre cluster rouge ou jaune

Insuffisance de nœuds à allouer aux partitions

Une partition de réplique ne doit être affectée au même nœud que sa partition principale. Un cluster à nœud unique avec des partitions de réplication s'initialise toujours avec l’état de cluster jaune. Les clusters à nœud unique sont initialisés de cette façon car il n'existe aucun autre nœud disponible auquel OpenSearch Service peut attribuer une réplication.

Il existe également une limite par défaut de « 1 000 » pour le paramétrage **cluster.max \ _shards \ _per \ _node *** pour OpenSearch Service versions 7.x et ultérieures. C’est une bonne pratique de conserver le cluster.max \ _shards \ _per \ _node à la valeur par défaut de « 1000 ». Si vous définissez des filtres d'allocation des partitions pour contrôler la façon dont OpenSearch Service alloue les partitions, la partition peut être non attribuée en raison de l’insuffisance du nombre de nœuds filtrés. Pour éviter cette pénurie de nœuds, augmentez le nombre de nœuds. Assurez-vous que le nombre de réplications pour chaque partition principale est inférieur au nombre de nœuds de données. Vous pouvez également réduire le nombre de partitions de réplication. Pour plus d'informations, consultez les sections : Taille des domaines OpenSearch Service et Démystification de l'allocation des partitions OpenSearch Service.

Espace disque insuffisant ou inclinaison du disque

S'il n'y a pas assez d'espace disque, votre cluster peut entrer dans un état de santé rouge ou jaune. L'espace disque doit être suffisant pour accueillir les partitions avant qu’elles soient distribuées par OpenSearch Service.

Pour vérifier l'espace de stockage disponible pour chaque nœud de votre cluster, utilisez la syntaxe suivante :

$ curl domain-endpoint/_cat/allocation?v

Pour plus d'informations sur les problèmes d'espace de stockage, consultez la section : Comment résoudre un problème d'espace de stockage insuffisant dans mon domaine OpenSearch Service ?

Une forte inclinaison du disque peut également entraîner des problèmes d'espace de stockage insuffisant pour certains nœuds de données. Si vous décidez de réattribuer des partitions, celles-ci pourraient ne plus être attribuées lors de la distribution des partitions. Pour résoudre ce problème, consultez la section : Comment rééquilibrer la distribution inégale des partitions dans mon cluster OpenSearch Service ?

Les paramètres d'allocation des partitions sur disque peuvent également conduire à des partitions non attribuées. Par exemple, si la métrique cluster.routing.allocation.disk.watermark.low est définie à 50 Go, l'espace disque spécifié doit être disponible pour l'allocation des partitions.

Pour vérifier les paramètres actuels d'allocation des partitions sur disque, utilisez la syntaxe suivante :

$ curl -XGET domain-endpoint/_cluster/settings?include_defaults=true&flat_settings=true

Pour résoudre vos problèmes d'espace disque, envisagez les approches suivantes :

  • Supprimez tous les indices indésirables pour les clusters jaunes et rouges.
  • Supprimer les indices rouges pour les clusters rouges
  • Augmentez le volume de l'EBS.
  • Ajoutez des nœuds de données.

Remarque : Évitez d'apporter des modifications à la configuration de votre cluster lorsque son état de santé est rouge. Si vous essayez de reconfigurer votre domaine lorsqu'il est dans un état de cluster rouge, il peut rester bloqué dans l'état « Traitement en cours ».

Forte sollicitation de mémoire JVM

Chaque allocation de partition utilise le processeur, l'espace de tas ainsi que les ressources du disque et du réseau. Des sollicitations constamment élevées de la mémoire JVM peuvent entraîner l'échec de l'allocation des partitions. Par exemple, une sollicitation de la mémoire JVM dépassant 95 % déclenche un disjoncteur parent de la mémoire. Le fil d'allocation est ensuite annulé, laissant les partitions non attribuées.

Pour résoudre ce problème, vous devez d’abord baisser la sollicitation de la mémoire JVM. Par la suite, appliquez ces conseils supplémentaires pour rétablir l'état de santé de votre cluster :

  • Augmentez la valeur par défaut des tentatives de partition de « 5 » ou plus.
  • Désactivez et activez la partition de réplication.
  • Réessayez manuellement les partitions non attribuées.

Par exemple, l'API pour augmenter la valeur de la nouvelle tentative :

PUT <index-name>/_settings
{
 "index.allocation.max_retries" : <value>
}

Pour plus d'informations sur la réduction de la pression de votre mémoire JVM, consultez la section : Comment résoudre les problèmes de pression de mémoire élevée sur mon cluster OpenSearch Service ?

Défaillance de nœud

En cas de défaillance de nœud dans votre cluster, les partitions allouées à un nœud ne sont plus attribuées. Lorsqu'aucune partition de réplication n'est disponible pour un index donné, la défaillance d’un seul nœud peut entraîner un état de santé rouge. Le fait de disposer de deux partitions de réplication et d'un déploiement multi-AZ protège votre cluster contre la perte de données en cas de panne matérielle.

Si tous vos index comportent une partition de réplication, la défaillance d'un seul nœud peut entraîner l'affichage temporaire de l'état de santé de votre cluster en jaune. Si votre cluster entre temporairement dans un état de santé jaune, OpenSearch Service se rétablira automatiquement dès que le nœud sera de nouveau sain. Autrement, OpenSearch Service se rétablira lorsque les partitions seront affectées à un nouveau nœud.

Vous pouvez confirmer les défaillances des nœuds en vérifiant vos métriques Amazon CloudWatch. Pour plus d'informations sur l'identification d'une défaillance de nœud, consultez la section : Nœuds de cluster défaillants.

Remarque : Il est également recommandé d'attribuer une partition de réplication à chaque index ou d'utiliser des nœuds principaux dédiés et d'activer la prise en compte des zones. Pour plus d'informations, consultez la section : Faire face à un échec, sur le site Web d'Elasticsearch.

Dépassement du seuil maximal de tentatives

Dans OpenSearch Service, votre cluster ne doit pas dépasser la limite de temps maximale (5 000 ms) ni le nombre de tentatives (5) pour l'allocation des partitions. Si votre cluster atteint les seuils maximaux, vous devez déclencher manuellement une allocation de partitions. Pour déclencher manuellement une allocation de partitions, désactivez et réactivez les partitions de réplication pour vos index.

Une modification apportée à la configuration de votre cluster peut également déclencher l'allocation de partitions. Pour plus d'informations sur l'allocation des partitions, consultez la section : Chaque partition mérite une place sur le site Web d'Elasticsearch.

Remarque : Il n'est pas recommandé de déclencher manuellement l'allocation de partitions si votre cluster est soumis à une charge de travail volumineuse. Si vous supprimez toutes vos réplications d'un index, celui-ci doit se baser uniquement sur les partitions principales. Lorsqu'un nœud est défaillant, votre cluster entre alors dans un état rouge car les partitions principales ne sont pas attribuées.

Pour désactiver une partition de réplication, mettez à jour la valeur du nombre \ _of _replicas à « 0 » :

$ curl -XPUT 'domain-endpoint/<indexname>/_settings' -H 'Content-Type: application/json' -d'
{
     "index" : {
          "number_of_replicas" : 0
     }
}

Vérifiez également que le paramètre index.auto \ _expand \ _replicas est défini sur « faux ». Lorsque votre cluster revient à l'état vert, vous pouvez redéfinir la valeur index.number \ _of \ _replicas à la valeur souhaitée pour déclencher l'allocation des partitions de réplication. Si l'allocation des partitions est réussie, votre cluster entrera dans un état de santé vert.

Bonnes pratiques en matière de santé des clusters

Pour résoudre le problème de l'état de votre cluster jaune ou rouge, appliquez les bonnes pratiques suivantes :

  • Définissez une alarme Amazon CloudWatch pour AutomatedSnapshotFailure. Grâce à l'alarme, vous avez la certitude de disposer d'un instantané pour restaurer vos index si votre cluster passe au rouge.
  • Si votre cluster est soumis à une charge de travail volumineuse et soutenue, mettez-le à niveau. Pour plus d'informations sur le dimensionnement de votre cluster, consultez la section : Comment puis-je étendre un domaine OpenSearch Service ?
  • Surveillez votre utilisation du disque, la sollicitation de la mémoire JVM, l'utilisation du processeur pour ne pas dépasser les seuils définis. Pour plus d'informations, consultez la section : Alarmes CloudWatch recommandées et ](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-cloudwatchmetrics.html#managedomains-cloudwatchmetrics-cluster-metrics)métriques de cluster[.
  • Assurez-vous que toutes les partitions principales disposent de réplications pour vous protéger contre les défaillances des nœuds.

Pour plus d'informations, consultez la section : Meilleures pratiques opérationnelles pour le service Amazon OpenSearch.

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an