Rechercher

15.5. Dépannage pour les alertes critiques

download PDF

15.5.1. La santé du cluster Elasticsearch est rouge

Au moins un nuage primaire et ses répliques ne sont pas attribués à un nœud.

Dépannage

  1. Vérifiez l'état de santé du cluster Elasticsearch et vérifiez que le cluster status est rouge.

    oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- health
  2. Liste des nœuds qui ont rejoint le cluster.

    oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=_cat/nodes?v
  3. Listez les pods Elasticsearch et comparez-les aux nœuds dans la sortie de la commande de l'étape précédente.

    oc -n openshift-logging get pods -l component=elasticsearch
  4. Si certains nœuds Elasticsearch n'ont pas rejoint le cluster, procédez comme suit.

    1. Confirmer qu'Elasticsearch a un nœud de plan de contrôle élu.

      oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=_cat/master?v
    2. Examinez les journaux de pods du nœud de plan de contrôle élu pour détecter les problèmes.

      oc logs <elasticsearch_master_pod_name> -c elasticsearch -n openshift-logging
    3. Examinez les journaux des nœuds qui n'ont pas rejoint le cluster.

      oc logs <elasticsearch_node_name> -c elasticsearch -n openshift-logging
  5. Si tous les nœuds ont rejoint la grappe, effectuez les étapes suivantes pour vérifier si la grappe est en cours de récupération.

    oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=_cat/recovery?active_only=true

    S'il n'y a pas de sortie de commande, le processus de récupération peut être retardé ou bloqué par des tâches en attente.

  6. Vérifier s'il y a des tâches en attente.

    oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- health |grep  number_of_pending_tasks
  7. S'il y a des tâches en suspens, surveillez leur état.

    Si leur état change et indique que la grappe se rétablit, continuez à attendre. Le délai de récupération varie en fonction de la taille de la grappe et d'autres facteurs.

    Dans le cas contraire, si l'état des tâches en attente ne change pas, cela indique que la récupération est bloquée.

  8. S'il semble que la récupération soit bloquée, vérifiez si cluster.routing.allocation.enable est réglé sur none.

    oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=_cluster/settings?pretty
  9. Si cluster.routing.allocation.enable est défini sur none, définissez-le sur all.

    oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=_cluster/settings?pretty -X PUT -d '{"persistent" : {\i1}"cluster.routing.allocation.enable":\N "all"}}'
  10. Vérifier quels indices sont encore rouges.

    oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=_cat/indices?v
  11. Si certains indices sont encore rouges, essayez de les effacer en suivant les étapes suivantes.

    1. Vider le cache.

      oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=<elasticsearch_index_name>/_cache/clear?pretty
    2. Augmenter le nombre maximum de tentatives d'allocation.

      oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=<elasticsearch_index_name>/_settings?pretty -X PUT -d '{"index.allocation.max_retries":10}'
    3. Supprimer tous les éléments du défilement.

      oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=_search/scroll/_all -X DELETE
    4. Augmenter le délai d'attente.

      oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=<elasticsearch_index_name>/_settings?pretty -X PUT -d '{"index.unassigned.node_left.delayed_timeout":\N "10m"}'
  12. Si les étapes précédentes ne permettent pas d'effacer les indices rouges, supprimez les indices individuellement.

    1. Identifier le nom de l'index rouge.

      oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=_cat/indices?v
    2. Supprimer l'index rouge.

      oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=<elasticsearch_red_index_name> -X DELETE
  13. S'il n'y a pas d'indices rouges et que l'état de la grappe est rouge, vérifiez qu'un nœud de données n'est pas soumis à une charge de traitement élevée et continue.

    1. Vérifiez si l'utilisation de la mémoire vive de la JVM Elasticsearch est élevée.

      oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=_nodes/stats?pretty

      Dans la sortie de la commande, examinez le champ node_name.jvm.mem.heap_used_percent pour déterminer l'utilisation de la mémoire vive de la JVM.

    2. Vérifier si l'utilisation de l'unité centrale est élevée.

Ressources complémentaires

15.5.2. La santé du cluster Elasticsearch est jaune

Les nuages de répliques d'au moins un nuage primaire ne sont pas attribués à des nœuds.

Dépannage

  1. Augmenter le nombre de nœuds en ajustant nodeCount dans le CR ClusterLogging.

15.5.3. Nœud de recherche Elastic atteint le seuil de faible utilisation du disque

Elasticsearch n'attribue pas de parts aux nœuds qui atteignent le filigrane le plus bas.

Dépannage

  1. Identifiez le nœud sur lequel Elasticsearch est déployé.

    oc -n openshift-logging get po -o wide
  2. Vérifier s'il y a unassigned shards.

    oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=_cluster/health?pretty | grep unassigned_shards
  3. S'il y a des unités de stockage non attribuées, vérifiez l'espace disque sur chaque nœud.

    for pod in `oc -n openshift-logging get po -l component=elasticsearch -o jsonpath='{.items[*].metadata.name}'`; do echo $pod; oc -n openshift-logging exec -c elasticsearch $pod -- df -h /elasticsearch/persistent; done
  4. Vérifiez le champ nodes.node_name.fs pour déterminer l'espace disque libre sur ce nœud.

    Si le pourcentage de disque utilisé est supérieur à 85 %, le nœud a dépassé le filigrane bas et les barrettes ne peuvent plus être allouées à ce nœud.

  5. Essayez d'augmenter l'espace disque sur tous les nœuds.
  6. S'il n'est pas possible d'augmenter l'espace disque, essayez d'ajouter un nouveau nœud de données au cluster.
  7. Si l'ajout d'un nouveau nœud de données pose problème, diminuez la politique de redondance totale de la grappe.

    1. Vérifier le courant redundancyPolicy.

      oc -n openshift-logging get es elasticsearch -o jsonpath='{.spec.redundancyPolicy}'
      Note

      Si vous utilisez un CR ClusterLogging, entrez :

      oc -n openshift-logging get cl -o jsonpath='{.items[*].spec.logStore.elasticsearch.redundancyPolicy}'
    2. Si le cluster redundancyPolicy est plus élevé que SingleRedundancy, réglez-le sur SingleRedundancy et enregistrez cette modification.
  8. Si les étapes précédentes ne permettent pas de résoudre le problème, supprimez les anciens indices.

    1. Vérifier l'état de tous les index sur Elasticsearch.

      oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- indices
    2. Identifier un ancien index qui peut être supprimé.
    3. Supprimer l'index.

      oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=<elasticsearch_index_name> -X DELETE

Ressources complémentaires

15.5.4. Elasticsearch Node Disk High Watermark Reached (en anglais)

Elasticsearch tente de relocaliser les shards loin d'un nœud qui a atteint le filigrane le plus élevé.

Dépannage

  1. Identifiez le nœud sur lequel Elasticsearch est déployé.

    oc -n openshift-logging get po -o wide
  2. Vérifiez l'espace disque sur chaque nœud.

    for pod in `oc -n openshift-logging get po -l component=elasticsearch -o jsonpath='{.items[*].metadata.name}'`; do echo $pod; oc -n openshift-logging exec -c elasticsearch $pod -- df -h /elasticsearch/persistent; done
  3. Vérifier si le cluster est en cours de rééquilibrage.

    oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=_cluster/health?pretty | grep relocating_shards

    Si la sortie de la commande indique que des shards ont été déplacés, cela signifie que le High Watermark a été dépassé. La valeur par défaut du filigrane élevé est de 90 %.

    Les ensembles de données sont déplacés vers un nœud où l'utilisation du disque est faible et qui n'a pas franchi de seuil de filigrane.

  4. Pour allouer des fragments à un nœud particulier, libérez de l'espace.
  5. Essayez d'augmenter l'espace disque sur tous les nœuds.
  6. S'il n'est pas possible d'augmenter l'espace disque, essayez d'ajouter un nouveau nœud de données au cluster.
  7. Si l'ajout d'un nouveau nœud de données pose problème, diminuez la politique de redondance totale de la grappe.

    1. Vérifier le courant redundancyPolicy.

      oc -n openshift-logging get es elasticsearch -o jsonpath='{.spec.redundancyPolicy}'
      Note

      Si vous utilisez un CR ClusterLogging, entrez :

      oc -n openshift-logging get cl -o jsonpath='{.items[*].spec.logStore.elasticsearch.redundancyPolicy}'
    2. Si le cluster redundancyPolicy est plus élevé que SingleRedundancy, réglez-le sur SingleRedundancy et enregistrez cette modification.
  8. Si les étapes précédentes ne permettent pas de résoudre le problème, supprimez les anciens indices.

    1. Vérifier l'état de tous les index sur Elasticsearch.

      oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- indices
    2. Identifier un ancien index qui peut être supprimé.
    3. Supprimer l'index.

      oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=<elasticsearch_index_name> -X DELETE

Ressources complémentaires

15.5.5. Le filigrane de l'inondation des disques des nœuds Elasticsearch est atteint

Elasticsearch impose un bloc d'index en lecture seule à chaque index présentant ces deux conditions :

  • Un ou plusieurs dépôts sont attribués au nœud.
  • Un ou plusieurs disques dépassent le niveau d'inondation.

Dépannage

  1. Vérifiez l'espace disque du nœud Elasticsearch.

    for pod in `oc -n openshift-logging get po -l component=elasticsearch -o jsonpath='{.items[*].metadata.name}'`; do echo $pod; oc -n openshift-logging exec -c elasticsearch $pod -- df -h /elasticsearch/persistent; done

    Vérifiez le champ nodes.node_name.fs pour déterminer l'espace disque libre sur ce nœud.

  2. Si le pourcentage de disques utilisés est supérieur à 95 %, cela signifie que le nœud a franchi le seuil d'inondation. L'écriture est bloquée pour les disques alloués à ce nœud particulier.
  3. Essayez d'augmenter l'espace disque sur tous les nœuds.
  4. S'il n'est pas possible d'augmenter l'espace disque, essayez d'ajouter un nouveau nœud de données au cluster.
  5. Si l'ajout d'un nouveau nœud de données pose problème, diminuez la politique de redondance totale de la grappe.

    1. Vérifier le courant redundancyPolicy.

      oc -n openshift-logging get es elasticsearch -o jsonpath='{.spec.redundancyPolicy}'
      Note

      Si vous utilisez un CR ClusterLogging, entrez :

      oc -n openshift-logging get cl -o jsonpath='{.items[*].spec.logStore.elasticsearch.redundancyPolicy}'
    2. Si le cluster redundancyPolicy est plus élevé que SingleRedundancy, réglez-le sur SingleRedundancy et enregistrez cette modification.
  6. Si les étapes précédentes ne permettent pas de résoudre le problème, supprimez les anciens indices.

    1. Vérifier l'état de tous les index sur Elasticsearch.

      oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- indices
    2. Identifier un ancien index qui peut être supprimé.
    3. Supprimer l'index.

      oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=<elasticsearch_index_name> -X DELETE
  7. Continuez à libérer et à surveiller l'espace disque jusqu'à ce que l'espace disque utilisé soit inférieur à 90 %. Débloquez ensuite l'écriture sur ce nœud particulier.

    oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=_all/_settings?pretty -X PUT -d '{"index.blocks.read_only_allow_delete" : null}'

Ressources complémentaires

15.5.6. L'utilisation de la mémoire vive de la JVM Elasticsearch est élevée

La mémoire Heap de la JVM du nœud Elasticsearch est supérieure à 75 %.

Dépannage

Envisager d'augmenter la taille du tas.

15.5.7. L'unité centrale du système de journalisation agrégé est élevée

L'utilisation de l'unité centrale du système sur le nœud est élevée.

Dépannage

Vérifiez l'unité centrale du nœud de cluster. Envisagez d'allouer davantage de ressources CPU au nœud.

15.5.8. L'unité centrale du processus Elasticsearch est élevée

L'utilisation de l'unité centrale du processus Elasticsearch sur le nœud est élevée.

Dépannage

Vérifiez l'unité centrale du nœud de cluster. Envisagez d'allouer davantage de ressources CPU au nœud.

15.5.9. L'espace disque d'Elasticsearch est faible

Le cluster Elasticsearch devrait être à court d'espace disque dans les 6 prochaines heures, d'après l'utilisation actuelle du disque.

Dépannage

  1. Obtenir l'espace disque du nœud Elasticsearch.

    for pod in `oc -n openshift-logging get po -l component=elasticsearch -o jsonpath='{.items[*].metadata.name}'`; do echo $pod; oc -n openshift-logging exec -c elasticsearch $pod -- df -h /elasticsearch/persistent; done
  2. Dans la sortie de la commande, vérifiez le champ nodes.node_name.fs pour déterminer l'espace disque libre sur ce nœud.
  3. Essayez d'augmenter l'espace disque sur tous les nœuds.
  4. S'il n'est pas possible d'augmenter l'espace disque, essayez d'ajouter un nouveau nœud de données au cluster.
  5. Si l'ajout d'un nouveau nœud de données pose problème, diminuez la politique de redondance totale de la grappe.

    1. Vérifier le courant redundancyPolicy.

      oc -n openshift-logging get es elasticsearch -o jsonpath='{.spec.redundancyPolicy}'
      Note

      Si vous utilisez un CR ClusterLogging, entrez :

      oc -n openshift-logging get cl -o jsonpath='{.items[*].spec.logStore.elasticsearch.redundancyPolicy}'
    2. Si le cluster redundancyPolicy est plus élevé que SingleRedundancy, réglez-le sur SingleRedundancy et enregistrez cette modification.
  6. Si les étapes précédentes ne permettent pas de résoudre le problème, supprimez les anciens indices.

    1. Vérifier l'état de tous les index sur Elasticsearch.

      oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- indices
    2. Identifier un ancien index qui peut être supprimé.
    3. Supprimer l'index.

      oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=<elasticsearch_index_name> -X DELETE

Ressources complémentaires

15.5.10. L'utilisation du descripteur de fichiers Elasticsearch est élevée

Sur la base des tendances actuelles d'utilisation, le nombre prévu de descripteurs de fichiers sur le nœud est insuffisant.

Dépannage

Vérifiez et, si nécessaire, configurez la valeur de max_file_descriptors pour chaque nœud, comme décrit dans la rubrique Elasticsearch File descriptors.

Ressources complémentaires

Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.