12.5.5. Elasticsearch Node Disk Flood Watermark Reached (Elasticsearch ノードのディスクがいっぱいの基準値に達する)

Elasticsearch は、両条件が含まれるすべてのインデックスに対して読み取り専用のインデックスブロックを強制的に適用します。

  • 1 つ以上のシャードがノードに割り当てられます。
  • 1 つ以上のディスクが いっぱいの段階 を超えています。

トラブルシューティング

  1. 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

    nodes.node_name.fs フィールドで、対象のノードの空きディスク領域を確認します。

  2. 使用済みディスクの割合が 95% を超える場合は、ノードがいっぱいの基準値が越えたことを意味します。この特定のノードに割り当てられたシャードへの書き込みは、ブロックされます。
  3. すべてのノードでディスク領域を増やしてみてください。
  4. ディスク領域を増やせない場合は、新しいデータノードをクラスターに追加してみてください。
  5. 新規データノードの追加に問題がある場合には、クラスターの冗長性ポリシー総数を減らします。

    1. 現在の redundancyPolicy を確認します。

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

      ClusterLogging CR を使用している場合は、以下を入力します。

      oc -n openshift-logging get cl -o jsonpath='{.items[*].spec.logStore.elasticsearch.redundancyPolicy}'
    2. クラスター redundancyPolicySingleRedundancy よりも大きい場合は、SingleRedundancy に設定し、この変更を保存します。
  6. 前述の手順で問題が解決しない場合は、古いインデックスを削除します。

    1. Elasticsearch の全インデックスのステータスを確認します。

      oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- indices
    2. 古いインデックスで削除できるものを特定します。
    3. インデックスを削除します。

      oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=<elasticsearch_index_name> -X DELETE
  7. ディスク使用領域が 90% 未満になるまで、このままディスク領域を解放して監視します。次に、この特定のノードへの書き込み禁止を解除します。

    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}'

関連情報