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
oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- health
Copy to Clipboard Copied! 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
oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=_cat/nodes?v
Copy to Clipboard Copied! 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
oc -n openshift-logging get pods -l component=elasticsearch
Copy to Clipboard Copied! 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
oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=_cat/master?v
Copy to Clipboard Copied! 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
oc logs <elasticsearch_master_pod_name> -c elasticsearch -n openshift-logging
Copy to Clipboard Copied! Examinez les journaux des nœuds qui n'ont pas rejoint le cluster.
oc logs <elasticsearch_node_name> -c elasticsearch -n openshift-logging
oc logs <elasticsearch_node_name> -c elasticsearch -n openshift-logging
Copy to Clipboard Copied!
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
oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=_cat/recovery?active_only=true
Copy to Clipboard Copied! 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
oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- health |grep number_of_pending_tasks
Copy to Clipboard Copied! 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
oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=_cluster/settings?pretty
Copy to Clipboard Copied! 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"}}'
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"}}'
Copy to Clipboard Copied! Vérifier quels indices sont encore rouges.
oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=_cat/indices?v
oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=_cat/indices?v
Copy to Clipboard Copied! 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
oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=<elasticsearch_index_name>/_cache/clear?pretty
Copy to Clipboard Copied! 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}'
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}'
Copy to Clipboard Copied! 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
oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=_search/scroll/_all -X DELETE
Copy to Clipboard Copied! 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"}'
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"}'
Copy to Clipboard Copied!
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
oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=_cat/indices?v
Copy to Clipboard Copied! Supprimer l'index rouge.
oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=<elasticsearch_red_index_name> -X DELETE
oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=<elasticsearch_red_index_name> -X DELETE
Copy to Clipboard Copied!
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
oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=_nodes/stats?pretty
Copy to Clipboard Copied! 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.
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
.
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
oc -n openshift-logging get po -o wide
Copy to Clipboard Copied! 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
oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=_cluster/health?pretty | grep unassigned_shards
Copy to Clipboard Copied! 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
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
Copy to Clipboard Copied! 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}'
oc -n openshift-logging get es elasticsearch -o jsonpath='{.spec.redundancyPolicy}'
Copy to Clipboard Copied! NoteSi vous utilisez un CR
ClusterLogging
, entrez :oc -n openshift-logging get cl -o jsonpath='{.items[*].spec.logStore.elasticsearch.redundancyPolicy}'
oc -n openshift-logging get cl -o jsonpath='{.items[*].spec.logStore.elasticsearch.redundancyPolicy}'
Copy to Clipboard Copied! -
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
oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- indices
Copy to Clipboard Copied! - 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
oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=<elasticsearch_index_name> -X DELETE
Copy to Clipboard Copied!
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
oc -n openshift-logging get po -o wide
Copy to Clipboard Copied! 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
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
Copy to Clipboard Copied! 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
oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=_cluster/health?pretty | grep relocating_shards
Copy to Clipboard Copied! 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}'
oc -n openshift-logging get es elasticsearch -o jsonpath='{.spec.redundancyPolicy}'
Copy to Clipboard Copied! NoteSi vous utilisez un CR
ClusterLogging
, entrez :oc -n openshift-logging get cl -o jsonpath='{.items[*].spec.logStore.elasticsearch.redundancyPolicy}'
oc -n openshift-logging get cl -o jsonpath='{.items[*].spec.logStore.elasticsearch.redundancyPolicy}'
Copy to Clipboard Copied! -
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
oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- indices
Copy to Clipboard Copied! - 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
oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=<elasticsearch_index_name> -X DELETE
Copy to Clipboard Copied!
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
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
Copy to Clipboard Copied! 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}'
oc -n openshift-logging get es elasticsearch -o jsonpath='{.spec.redundancyPolicy}'
Copy to Clipboard Copied! NoteSi vous utilisez un CR
ClusterLogging
, entrez :oc -n openshift-logging get cl -o jsonpath='{.items[*].spec.logStore.elasticsearch.redundancyPolicy}'
oc -n openshift-logging get cl -o jsonpath='{.items[*].spec.logStore.elasticsearch.redundancyPolicy}'
Copy to Clipboard Copied! -
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
oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- indices
Copy to Clipboard Copied! - 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
oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=<elasticsearch_index_name> -X DELETE
Copy to Clipboard Copied!
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}'
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}'
Copy to Clipboard Copied!
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
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
Copy to Clipboard Copied! -
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}'
oc -n openshift-logging get es elasticsearch -o jsonpath='{.spec.redundancyPolicy}'
Copy to Clipboard Copied! NoteSi vous utilisez un CR
ClusterLogging
, entrez :oc -n openshift-logging get cl -o jsonpath='{.items[*].spec.logStore.elasticsearch.redundancyPolicy}'
oc -n openshift-logging get cl -o jsonpath='{.items[*].spec.logStore.elasticsearch.redundancyPolicy}'
Copy to Clipboard Copied! -
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
oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- indices
Copy to Clipboard Copied! - 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
oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=<elasticsearch_index_name> -X DELETE
Copy to Clipboard Copied!
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.