OpenSearch Service 클러스터가 빨간색 또는 노란색 상태인 이유는 무엇입니까?
Amazon OpenSearch Service 클러스터가 빨간색 또는 노란색 클러스터 상태입니다.
간략한 설명
OpenSearch Service 콘솔의 모니터링 탭에는 클러스터에서 상태가 가장 좋지 않은 인덱스의 상태가 표시됩니다. OpenSearch Service가 하나 이상의 기본 샤드와 해당 복제본을 할당하지 않은 경우 빨간색 상태가 발생합니다. 노란색 상태는 OpenSearch Service에서 모든 기본 샤드를 할당했지만 하나 이상의 복제본 샤드를 할당하지 않은 경우에 발생합니다.
중요: 빨간색 클러스터 상태는 데이터를 부분적으로 사용할 수 없음을 나타냅니다. 노란색 상태는 데이터 손실을 나타내지는 않지만 클러스터에 완전한 중복성이 없음을 의미합니다. 노드에 장애가 발생하면 데이터가 손실될 수 있습니다.
해결 방법
중요: 도메인을 재구성하려면 먼저 빨간색 클러스터 상태를 해결해야 합니다. 빨간색 상태인 도메인을 재구성하려고 하면 ‘수정 중’ 상태로 멈출 수 있습니다.
할당되지 않은 샤드의 원인 파악
할당되지 않은 샤드의 근본 원인을 파악하고 문제를 해결하려면 AWSSupport-TroubleshootOpenSearchRedYellowCluster 런북을 사용하십시오. 자세한 내용은 AWSSupport-TroubleshootOpenSearchRedYellowCluster에 관한 설명을 참조하십시오.
또는 할당되지 않은 샤드를 수동으로 식별하려면 다음 명령을 실행합니다.
curl -XGET 'domain-endpoint/_cat/shards?h=index,shard,prirep,state,unassigned.reason' | grep UNASSIGNED
참고: domain-endpoint를 도메인 엔드포인트로 바꾸십시오. 출력에서 샤드 ID를 기록해 둡니다.
그 후 다음 명령을 실행하여 샤드가 할당되지 않은 이유에 대한 세부 정보를 가져옵니다.
curl -XGET 'domain-endpoint/_cluster/allocation/explain?pretty' -H 'Content-Type:application/json' -d'{ "index": "index-name", "shard": shardID, "primary": false }'
참고: domain-endpoint를 도메인 엔드포인트로, index-name을 인덱스 이름으로, shardID를 할당되지 않은 샤드 ID로 바꾸십시오. 샤드가 기본 샤드인 경우 false를 true로 바꾸십시오.
빨간색 또는 노란색 상태 문제 해결
클러스터 상태가 노란색 또는 빨간색인 이유를 확인하려면 다음 작업을 수행하십시오.
-
ClusterStatus.yellow, ClusterStatus.red, Shards.unassigned, CPUUtilization, JVMMemoryPressure 및 FreeStorageSpace Amazon CloudWatch 지표를 확인합니다.
-
다음 쿼리를 실행하여 영향을 받는 인덱스를 식별합니다.
GET /_cat/indices?v&health=yellow GET /_cat/indices?v&health=red -
다음 쿼리를 실행하여 샤드가 모든 인덱스에서 할당되지 않는 이유를 파악합니다.
GET /_cluster/allocation/explain참고: 이 명령의 출력은 전체 클러스터에서 할당되지 않은 샤드와 할당 상태를 종합적으로 보여줍니다. 이 정보를 사용하여 할당 문제에 대한 일반적인 개요를 확인할 수 있습니다.
빨간색 클러스터 상태를 해결하려면 다음 명령을 실행하여 빨간색 인덱스를 삭제합니다.
curl -XDELETE 'domain-endpoint/index-names'
참고: domain-endpoint를 도메인 엔드포인트로 바꾸고 index-names를 인덱스 이름으로 바꾸십시오.
그런 다음, 스냅샷에서 인덱스를 복원합니다.
노란색 클러스터 상태가 자동으로 해결되지 않는 경우 샤드가 할당되지 않은 이유에 대한 정보를 사용하여 근본 원인을 해결하십시오.
샤드에 할당할 노드가 충분하지 않음
기본 샤드와 복제본 샤드는 서로 다른 노드에 있어야 합니다. 따라서 복제본 샤드가 있는 단일 노드 클러스터는 OpenSearch Service에서 복제본 샤드를 할당할 수 없기 때문에 항상 노란색 상태로 초기화됩니다.
OpenSearch Service 버전 7.x 이상에서는 cluster.max_shards_per_node의 기본 할당량이 1,000입니다. cluster.max_shards_per_node의 기본값을 사용하는 것이 좋습니다. 자세한 내용은 OpenSearch 웹 사이트에서 클러스터 수준 샤드, 블록 및 작업 설정을 참조하십시오.
샤드 할당 필터를 설정하면 필터링된 노드가 충분하지 않아 샤드가 할당되지 않을 수 있습니다. 샤드 할당 필터에 대한 자세한 내용은 OpenSearch 웹 사이트의 인덱스 수준 인덱스 설정을 참조하십시오.
이 문제를 방지하려면 다음 작업을 수행하십시오.
- 노드 수를 늘립니다.
- 모든 기본 샤드의 복제본 수가 데이터 노드 수보다 적은지 확인합니다.
- 복제본 샤드 수를 줄입니다.
자세한 내용은 OpenSearch Service 도메인 크기 조정 및 OpenSearch Service 샤드 할당 이해하기를 참조하십시오.
스토리지 공간 문제
디스크 공간이 충분하지 않은 경우 클러스터가 빨간색 또는 노란색 상태로 전환될 수 있습니다. 노드에는 OpenSearch Service에서 샤드를 분배하기 전에 샤드를 수용할 수 있는 충분한 디스크 공간이 있어야 합니다.
클러스터의 각 노드에 사용할 수 있는 스토리지 공간을 확인하려면 다음 명령을 실행합니다.
curl domain-endpoint/_cat/allocation?v
참고: domain-endpoint를 도메인 엔드포인트로 바꾸십시오.
샤드를 고르지 않게 분배하면 다른 노드에 용량이 있을 때 일부 노드의 공간이 부족해질 수 있습니다. 이로 인해 샤드 재할당 과정에서 OpenSearch Service가 재조정 프로세스 중에 새 샤드를 할당할 수 없는 문제가 발생할 수 있습니다.
샤드 배포 설정을 확인하려면 다음 명령을 실행합니다.
curl -XGET domain-endpoint/_cluster/settings?include_defaults=true&flat_settings=true
참고: domain-endpoint를 도메인 엔드포인트로 바꾸십시오.
클러스터 상태를 해결하기 위해 정기적으로 디스크 공간을 모니터링하고 디스크 왜도 문제를 사전에 해결하는 것이 좋습니다.
자세한 내용은 OpenSearch Service 도메인의 스토리지 공간 부족 문제를 해결하려면 어떻게 해야 합니까? 및 OpenSearch Service 클러스터에서 고르지 않은 샤드 분포를 재조정하려면 어떻게 해야 합니까?를 참조하십시오.
높은 JVM 메모리 압력
샤드 할당은 CPU, 힙 공간, 디스크 및 네트워크 리소스를 사용하는 리소스 집약적 프로세스입니다. Java 가상 머신(JVM) 메모리 압력이 지속적으로 높으면 성공적인 샤드 할당에 방해가 될 수 있습니다. 이 문제를 해결하려면 높은 JVM 메모리 압력 문제를 해결하십시오. JVM 메모리 압력을 줄인 후 다음 작업을 수행하여 클러스터를 녹색 상태로 복원하십시오.
- 다음 명령을 실행하여 기본 샤드 재시도 값을 늘립니다.
참고: index-name을 인덱스 이름으로 바꾸고 10을 재시도 값으로 바꾸십시오.PUT /index-name/_settings { "index.allocation.max_retries": 10 } - 샤드 재시도 값을 0으로 변경하여 복제본 샤드를 비활성화합니다. 그런 다음, 양수 값으로 변경하여 샤드를 다시 활성화합니다.
노드 장애
노드 장애로 인해 할당된 샤드가 할당되지 않은 상태가 됩니다. 복제본 샤드가 없으면 단일 노드 장애로도 빨간색 상태가 발생할 수 있습니다. 그러나 복제본 샤드로 인덱스를 구성할 때 노드 장애는 일반적으로 일시적인 노란색 상태로 이어집니다. 이 노란색 상태는 OpenSearch Service가 자동으로 복구될 때 발생합니다. 노란색 상태는 장애가 발생한 노드가 정상 상태로 돌아오거나 OpenSearch Service가 샤드를 다른 노드에 재할당하면 종료됩니다.
하드웨어 장애를 방지하려면 다음 작업을 수행하십시오.
- 여러 가용 영역에 노드를 분산합니다.
- 인덱스마다 하나 이상의 복제본 샤드가 있는지 확인합니다.
- 전용 마스터 노드를 활성화합니다.
- 도메인의 내결함성을 개선합니다.
- CloudWatch 지표를 사용해 클러스터 상태를 모니터링하여 장애를 신속하게 식별하고 대응합니다.
노드 장애를 식별하는 방법에 대한 자세한 내용은 장애가 발생한 클러스터 노드를 참조하십시오.
반복되는 노란색 클러스터 상태
다음과 같은 이유로 클러스터가 노란색 상태인 경우가 많습니다.
- 노드에 일시적으로 장애가 발생하고 복제본 샤드가 할당되지 않을 때 발생하는 일시적인 노드 장애 또는 재시작.
참고: 클러스터는 해당 노드가 복구되거나 OpenSearch Service에서 샤드를 재조정할 때 자체적으로 복구될 수 있습니다. - 리소스 제약이나 구성 문제로 인해 샤드 할당 실패 또는 재시도 할당량을 초과했습니다.
- 리소스 사용량이 많은 클러스터에서 정기 유지 관리, 백업 작업 또는 과도한 로드 스파이크가 발생하여 노드가 변동하거나 샤드 할당을 거부합니다.
- 반복적인 업그레이드 또는 자동으로 생성된 인덱스로 인해 클러스터 용량을 초과하는 새 복제본이 만들어졌습니다.
반복되는 노란색 상태를 방지하고 문제를 해결하려면 다음 작업을 수행하십시오.
- 단일 노드 클러스터의 경우 모든 인덱스에 복제본이 0개 있는지 확인합니다.
참고: 단일 노드 클러스터의 경우 OpenSearch Service는 opendistro_security와 같은 시스템 인덱스를 자동으로 관리하고 구성합니다. 시스템 인덱스 설정은 수정할 수 없습니다. - 다중 노드 클러스터의 경우 하나 이상의 복제본 노드를 유지합니다. 중복성을 높이려면 노드 및 복제본 수를 늘립니다.
- 고가용성 및 내결함성을 위해 다중 AZ 도메인을 구성합니다.
참고: 샤드 할당이 실패할 경우 클러스터, 가용 영역 및 대기 구성의 노드 수가 클러스터 요구 사항에 맞는지 확인하십시오. - 샤드가 메모리 내 잠금을 가져오지 못한 경우 index.allocation.max_retries 값을 늘립니다.
- 리소스 고갈을 방지하려면 로드가 높은 상태에서 도메인을 스케일 업합니다.
- 리소스 요구 사항의 변화를 사전에 모니터링하려면 ClusterStatus.yellow, ClusterStatus.red, JVMMemoryPressure, AutomatedSnapshotFailure, FreeStorageSpace 지표에 대한 CloudWatch 경보를 만듭니다.
자세한 내용은 OpenSearch Serivce의 운영 모범 사례를 참조하십시오.
관련 콘텐츠
- 질문됨 3년 전
