12.5.5. Elasticsearch 노드 디스크 Flood Watermark Reached
Elasticsearch는 이러한 두 조건을 모두 충족하는 모든 인덱스에 읽기 전용 인덱스 블록을 적용합니다.
- 하나 이상의 shard가 노드에 할당됩니다.
- 하나 이상의 디스크가 플러드 단계를 초과합니다.
문제 해결
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
필드를 확인하여 해당 노드에서 사용 가능한 디스크 공간을 확인합니다.- 사용된 디스크 백분율이 95%를 초과하면 노드가 플러드 워터마크를 초과했음을 나타냅니다. 이 특정 노드에 할당된 shard에 대해 쓰기가 차단됩니다.
- 모든 노드의 디스크 공간을 늘리십시오.
- 디스크 공간을 늘릴 수 없는 경우 클러스터에 새 데이터 노드를 추가해 보십시오.
새 데이터 노드를 추가하는 데 문제가 있는 경우 전체 클러스터 중복 정책을 줄입니다.
현재
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}'
-
클러스터
redundancyPolicy
가SingleRedundancy
보다 큰 경우SingleRedundancy
로 설정하고 이러한 변경 사항을 저장합니다.
이전 단계에서 문제가 해결되지 않으면 이전 인덱스를 삭제합니다.
Elasticsearch의 모든 인덱스의 상태를 확인합니다.
oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- indices
- 삭제할 수 있는 이전 인덱스를 확인합니다.
인덱스를 삭제합니다.
oc exec -n openshift-logging -c elasticsearch <elasticsearch_pod_name> -- es_util --query=<elasticsearch_index_name> -X DELETE
사용된 디스크 공간이 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}'
추가 리소스
-
클러스터 로깅 사용자 정의 리소스 정보의 "샘플
ClusterLogging
사용자 정의 리소스 (CR)"에서 "redundancyPolicy"를 검색합니다.