15.5. Dépannage pour les alertes critiques
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
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
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
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
Si certains nœuds Elasticsearch n'ont pas rejoint le cluster, procédez comme suit.
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
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
Examinez les journaux des nœuds qui n'ont pas rejoint le cluster.
oc logs <elasticsearch_node_name> -c elasticsearch -n openshift-logging
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.
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
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.
S'il semble que la récupération soit bloquée, vérifiez si
cluster.routing.allocation.enable
est réglé surnone
.oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=_cluster/settings?pretty
Si
cluster.routing.allocation.enable
est défini surnone
, définissez-le surall
.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"}}'
Vérifier quels indices sont encore rouges.
oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=_cat/indices?v
Si certains indices sont encore rouges, essayez de les effacer en suivant les étapes suivantes.
Vider le cache.
oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=<elasticsearch_index_name>/_cache/clear?pretty
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}'
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
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"}'
Si les étapes précédentes ne permettent pas d'effacer les indices rouges, supprimez les indices individuellement.
Identifier le nom de l'index rouge.
oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=_cat/indices?v
Supprimer l'index rouge.
oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=<elasticsearch_red_index_name> -X DELETE
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.
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.- Vérifier si l'utilisation de l'unité centrale est élevée.
Ressources complémentaires
- Rechercher "Free up or increase disk space" dans la rubrique Elasticsearch, Correction d'un état de cluster rouge ou jaune.
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
-
Augmenter le nombre de nœuds en ajustant
nodeCount
dans le CRClusterLogging
.
Ressources complémentaires
- À propos de la ressource personnalisée Cluster Logging
- Configuration du stockage persistant pour le magasin de journaux
- Rechercher "Free up or increase disk space" dans la rubrique Elasticsearch, Correction d'un état de cluster rouge ou jaune.
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
Identifiez le nœud sur lequel Elasticsearch est déployé.
oc -n openshift-logging get po -o wide
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
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
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.
- Essayez d'augmenter l'espace disque sur tous les nœuds.
- S'il n'est pas possible d'augmenter l'espace disque, essayez d'ajouter un nouveau nœud de données au cluster.
Si l'ajout d'un nouveau nœud de données pose problème, diminuez la politique de redondance totale de la grappe.
Vérifier le courant
redundancyPolicy
.oc -n openshift-logging get es elasticsearch -o jsonpath='{.spec.redundancyPolicy}'
NoteSi vous utilisez un CR
ClusterLogging
, entrez :oc -n openshift-logging get cl -o jsonpath='{.items[*].spec.logStore.elasticsearch.redundancyPolicy}'
-
Si le cluster
redundancyPolicy
est plus élevé queSingleRedundancy
, réglez-le surSingleRedundancy
et enregistrez cette modification.
Si les étapes précédentes ne permettent pas de résoudre le problème, supprimez les anciens indices.
Vérifier l'état de tous les index sur Elasticsearch.
oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- indices
- Identifier un ancien index qui peut être supprimé.
Supprimer l'index.
oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=<elasticsearch_index_name> -X DELETE
Ressources complémentaires
-
Recherche de "redundancyPolicy" dans la ressource personnalisée "Sample
ClusterLogging
custom resource (CR)" dans À propos de la ressource personnalisée Cluster Logging
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
Identifiez le nœud sur lequel Elasticsearch est déployé.
oc -n openshift-logging get po -o wide
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
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.
- Pour allouer des fragments à un nœud particulier, libérez de l'espace.
- Essayez d'augmenter l'espace disque sur tous les nœuds.
- S'il n'est pas possible d'augmenter l'espace disque, essayez d'ajouter un nouveau nœud de données au cluster.
Si l'ajout d'un nouveau nœud de données pose problème, diminuez la politique de redondance totale de la grappe.
Vérifier le courant
redundancyPolicy
.oc -n openshift-logging get es elasticsearch -o jsonpath='{.spec.redundancyPolicy}'
NoteSi vous utilisez un CR
ClusterLogging
, entrez :oc -n openshift-logging get cl -o jsonpath='{.items[*].spec.logStore.elasticsearch.redundancyPolicy}'
-
Si le cluster
redundancyPolicy
est plus élevé queSingleRedundancy
, réglez-le surSingleRedundancy
et enregistrez cette modification.
Si les étapes précédentes ne permettent pas de résoudre le problème, supprimez les anciens indices.
Vérifier l'état de tous les index sur Elasticsearch.
oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- indices
- Identifier un ancien index qui peut être supprimé.
Supprimer l'index.
oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=<elasticsearch_index_name> -X DELETE
Ressources complémentaires
-
Recherche de "redundancyPolicy" dans la ressource personnalisée "Sample
ClusterLogging
custom resource (CR)" dans À propos de la ressource personnalisée Cluster Logging
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
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.- 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.
- Essayez d'augmenter l'espace disque sur tous les nœuds.
- S'il n'est pas possible d'augmenter l'espace disque, essayez d'ajouter un nouveau nœud de données au cluster.
Si l'ajout d'un nouveau nœud de données pose problème, diminuez la politique de redondance totale de la grappe.
Vérifier le courant
redundancyPolicy
.oc -n openshift-logging get es elasticsearch -o jsonpath='{.spec.redundancyPolicy}'
NoteSi vous utilisez un CR
ClusterLogging
, entrez :oc -n openshift-logging get cl -o jsonpath='{.items[*].spec.logStore.elasticsearch.redundancyPolicy}'
-
Si le cluster
redundancyPolicy
est plus élevé queSingleRedundancy
, réglez-le surSingleRedundancy
et enregistrez cette modification.
Si les étapes précédentes ne permettent pas de résoudre le problème, supprimez les anciens indices.
Vérifier l'état de tous les index sur Elasticsearch.
oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- indices
- Identifier un ancien index qui peut être supprimé.
Supprimer l'index.
oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=<elasticsearch_index_name> -X DELETE
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
-
Recherche de "redundancyPolicy" dans la ressource personnalisée "Sample
ClusterLogging
custom resource (CR)" dans À propos de la ressource personnalisée Cluster Logging
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
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
-
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. - Essayez d'augmenter l'espace disque sur tous les nœuds.
- S'il n'est pas possible d'augmenter l'espace disque, essayez d'ajouter un nouveau nœud de données au cluster.
Si l'ajout d'un nouveau nœud de données pose problème, diminuez la politique de redondance totale de la grappe.
Vérifier le courant
redundancyPolicy
.oc -n openshift-logging get es elasticsearch -o jsonpath='{.spec.redundancyPolicy}'
NoteSi vous utilisez un CR
ClusterLogging
, entrez :oc -n openshift-logging get cl -o jsonpath='{.items[*].spec.logStore.elasticsearch.redundancyPolicy}'
-
Si le cluster
redundancyPolicy
est plus élevé queSingleRedundancy
, réglez-le surSingleRedundancy
et enregistrez cette modification.
Si les étapes précédentes ne permettent pas de résoudre le problème, supprimez les anciens indices.
Vérifier l'état de tous les index sur Elasticsearch.
oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- indices
- Identifier un ancien index qui peut être supprimé.
Supprimer l'index.
oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=<elasticsearch_index_name> -X DELETE
Ressources complémentaires
-
Recherche de "redundancyPolicy" dans la ressource personnalisée "Sample
ClusterLogging
custom resource (CR)" dans À propos de la ressource personnalisée Cluster Logging - Recherchez "ElasticsearchDiskSpaceRunningLow" dans " À propos des règles d'alerte Elasticsearch".
- Rechercher "Free up or increase disk space" dans la rubrique Elasticsearch, Correction d'un état de cluster rouge ou jaune.
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
- Recherchez "ElasticsearchHighFileDescriptorUsage" dans " À propos des règles d'alerte Elasticsearch".
- Search for "File Descriptors In Use" in OpenShift Logging dashboards.