내용으로 건너뛰기

Amazon OpenSearch Service에서 느린 로그 문제를 해결하려면 어떻게 해야 합니까?

4분 분량
0

Amazon OpenSearch Service 도메인에서 검색 속도 저하 로그를 활성화하면 오류가 발생합니다. 또는 Amazon CloudWatch 로그 그룹에서 느린 로그를 볼 수 없습니다.

해결 방법

리소스 액세스 정책을 만들 수 없음 오류

AWS 계정이 단일 AWS 리전의 리소스 정책 10개를 초과하는 경우 CloudWatch 로그에 다음과 같은 오류가 표시됩니다.

"Unable to create the Resource Access Policy - You have reached the maximum limit for number of Resource Access Policies for CloudWatch Logs. Please select an existing policy and edit it or delete an older policy and try again."

이 오류를 해결하려면 여러 로그 그룹을 포함하는 리소스 정책을 만드십시오.


{  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "es.amazonaws.com"
      },
      "Action": [
        "logs:PutLogEvents",
        "logs:CreateLogStream"
      ],
      "Resource": [
        "ARN-Log-Group-1",
        "ARN-Log-Group-2",
        "ARN-Log-Group-3",
        "ARN-Log-Group-4"
      ]
    }
  ]
}

참고: region을 해당 리전으로 바꾸십시오. account-id를 계정 ID로 바꾸십시오.

중요: AWS Identity and Access Management(IAM) 정책 할당량은 늘릴 수 없습니다.

느린 로그가 전송되지 않음

CloudWatch로 전송되는 느린 로그가 보이지 않으면 IAM 정책 또는 OpenSearch Service 임계값을 확인하십시오.

OpenSearch Service에는 CloudWatch 로그에 쓸 권한이 필요하므로 쿼리를 기록하도록 IAM 정책을 구성해야 합니다.

IAM 정책을 업데이트하려면 다음 단계를 완료하십시오.

  1. OpenSearch Service 콘솔을 엽니다.
  2. 도메인을 선택합니다.
  3. 로그 탭을 선택한 다음, 검색 속도 저하 로그를 선택합니다.
  4. 설정 선택을 선택합니다.
  5. 리소스 값으로 IAM 정책을 업데이트합니다.
    
    {  "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "Service": "es.amazonaws.com"
          },
          "Action": [
            "logs:PutLogEvents",
            "logs:CreateLogStream"
          ],
          "Resource": "arn:aws:region:account_id:log-group:/aws/aes/domains/myes/search-logs:*"
        }
      ]
    }
    참고: region을 해당 리전으로 바꾸십시오. account-id를 계정 ID로 바꾸십시오.
  6. (선택 사항) 보안을 강화하기 위해 정책에 aws:SourceAccountaws:SourceArn 조건 키를 추가하십시오.
    {
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "account-id"
        },
        "ArnLike": {
          "aws:SourceArn": "arn:aws:es:region:account-id:domain/domain-name"
        }
      }
    }
    참고: region을 해당 리전으로 바꾸십시오. account-id를 계정 ID로 바꾸십시오. domain-name을 도메인 이름으로 바꾸십시오.
  7. 사용을 선택합니다.

자세한 내용은 로그 게시 사용(콘솔)을 참조하십시오.

기본적으로 OpenSearch Service의 로깅은 비활성화되어 있습니다. API 호출을 사용하여 로그 수준 및 타이밍 임계값을 설정할 수 있습니다. 이러한 설정은 동적이므로 실행 중인 클러스터에서 설정을 업데이트할 수 있으며 OpenSearch Service는 해당 설정을 즉시 적용합니다.

도메인에 적절한 타이밍 임계값을 설정합니다. 모든 요청이 설정된 임계값 이전에 완료되면 CloudWatch는 로그를 로그 그룹에 전송하지 않습니다. 디버그 수준(TRACE, DEBUG, INFOWARN)마다 개별 인덱스 수준 임계값을 설정할 수 있습니다.

예를 들어, OpenSearch 대시보드에서 인덱스의 WARN 디버그 수준 임계값을 10초로 설정합니다.

PUT /YOURINDEXNAME/_settings
{
  "index.search.slowlog.threshold.query.warn": "10s"
}

참고: YOURINDEXNAME을 인덱스 이름으로 바꾸십시오.

curl의 경우 다음 명령을 실행합니다.

curl -XPUT http://your_domain_endpoint/index/_settings -d '{"index.search.slowlog.threshold.query.level":"10s"}'

참고: your_domain_endpoint를 도메인 엔드포인트로 바꾸십시오. 10s를 사용하려는 로그 임계값으로 바꾸십시오.

도메인의 모든 쿼리를 기록하려면 TRACE0밀리초로 설정하면 됩니다. 그러나 모든 쿼리를 기록하려면 리소스가 많이 소모되므로 도메인 성능에 영향을 미칠 수 있습니다. 로깅을 비활성화하려면 임계값을 -1로 설정합니다.

임계값을 확인하려면 다음 명령을 실행합니다.

GET /YOURINDEXNAME/_settings?pretty

참고: YOURINDEXNAME을 인덱스 이름으로 바꾸십시오.

OpenSearch Service는 정의된 임계값을 초과하는 모든 쿼리를 기록합니다.

클러스터 수준에서 모든 새 인덱스에 느린 로그 설정 적용

클러스터 수준에서 모든 새 인덱스에 느린 로그 설정을 적용하려면 인덱스 템플릿을 사용합니다. OpenSearch Service에는 인덱스 느린 로그에 대한 클러스터 전체 설정이 없습니다.

느린 로그 설정을 포함하는 인덱스 템플릿을 만드십시오.


PUT _template/all_indices_template
{
  "index_patterns": ["*"], // This applies to all indices
  "settings": {
    "index.indexing.slowlog.threshold.index.warn": "10s",
    "index.indexing.slowlog.threshold.index.info": "5s",
    "index.indexing.slowlog.threshold.index.debug": "2s",
    "index.indexing.slowlog.threshold.index.trace": "500ms"
  }
}

위 템플릿은 템플릿 설정 후 만드는 모든 새 인덱스에 설정을 자동으로 적용합니다.

모범 사례

다음 작업을 수행하십시오.

  • 한 번에 하나씩 구성을 업데이트합니다.
  • 느린 검색 쿼리를 식별하려면 쿼리 단계와 가져오기 단계에 모두 임계값을 설정합니다.
  • 낮은 임계값으로 테스트합니다. 성능에 영향을 주거나 최적화가 필요한 쿼리만 기록하도록 임계값을 천천히 늘립니다.
  • 클러스터와 사용 사례에 적합한 샤드 수를 선택하여 클러스터 성능을 최적화합니다. 자세한 내용은 샤드 전략을 참조하십시오.
  • 느린 로그의 경우 TRACE, DEBUG, INFOWARN 디버그 수준에서 로깅을 활성화합니다. 각 디버그 레벨은 서로 다른 범주의 정보를 기록합니다. 요청 상태에 따라 로깅을 활성화하십시오.

관련 정보

Amazon CloudWatch Logs 스트리밍 및 Kibana를 사용하여 Amazon Elasticsearch Service의 느린 로그 분석

내 OpenSearch Service 도메인으로 스트리밍되도록 CloudWatch Logs의 문제를 해결하려면 어떻게 해야 합니까?

Amazon OpenSearch Service 오류 로그 보기

AWS 공식업데이트됨 8달 전