12.5.5. Elasticsearch 노드 디스크 Flood Watermark Reached

Elasticsearch는 이러한 두 조건을 모두 충족하는 모든 인덱스에 읽기 전용 인덱스 블록을 적용합니다.

  • 하나 이상의 shard가 노드에 할당됩니다.
  • 하나 이상의 디스크가 플러드 단계를 초과합니다.

문제 해결

  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%를 초과하면 노드가 플러드 워터마크를 초과했음을 나타냅니다. 이 특정 노드에 할당된 shard에 대해 쓰기가 차단됩니다.
  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}'

추가 리소스