View a markdown version of this page

EKS Capabilities 컨트롤러 로그에 액세스 - Amazon EKS

이 페이지 개선에 도움 주기

이 사용자 가이드에 기여하려면 모든 페이지의 오른쪽 창에 있는 GitHub에서 이 페이지 편집 링크를 선택합니다.

EKS Capabilities 컨트롤러 로그에 액세스

ACK, kro 및 Argo CD용 EKS Capabilities 컨트롤러는 클러스터 외부의 AWS 관리형 인프라에서 실행됩니다. Amazon CloudWatch Vended Logs를 사용하여 이러한 컨트롤러에 대한 로그 전송을 구성하여 모니터링 및 문제 해결을 위한 컨트롤러 동작을 파악할 수 있습니다.

로그는 구조화된 JSON 형식으로 전송되며 로그 수준, 메시지, 컨트롤러 이름 및 조정 식별자와 같은 운영 필드를 포함합니다. 내부 AWS 메타데이터는 전송 전에 필터링됩니다. 기능 컨트롤러와 관련된 운영 로그 콘텐츠만 수신됩니다.

지원되는 로그 유형

각 기능에는 CloudWatch Vended Logs 전송 소스로 독립적으로 구성할 수 있는 로그 유형이 하나 이상 있습니다.

ACK

  • EKS_CAPABILITY_ACK_LOGS

kro

  • EKS_CAPABILITY_KRO_LOGS

Argo CD

  • EKS_CAPABILITY_ARGOCD_APPLICATION_LOGS

  • EKS_CAPABILITY_ARGOCD_APPLICATIONSET_LOGS

  • EKS_CAPABILITY_ARGOCD_COMMITSERVER_LOGS

  • EKS_CAPABILITY_ARGOCD_REPOSERVER_LOGS

  • EKS_CAPABILITY_ARGOCD_SERVER_LOGS

ACK는 모든 ACK 서비스 컨트롤러를 포괄하는 단일 로그 유형을 사용합니다. 로그 레코드에는 로그를 생성한 ACK 서비스 컨트롤러를 식별하는 controllerGroup 필드(예: s3.services.k8s.aws, rds.services.k8s.aws)가 포함됩니다. 이 필드를 사용하여 CloudWatch Logs Insights 또는 기타 쿼리 도구에서 특정 서비스 컨트롤러의 로그를 필터링할 수 있습니다.

Argo CD에는 컨트롤러 구성 요소당 하나씩 다섯 가지 로그 유형이 있습니다. 이렇게 하면 필요한 컨트롤러에 대해서만 로깅을 활성화하고 다른 대상으로 라우팅할 수 있습니다.

로그 전송 설정

기능 컨트롤러 로그 전송을 구성하려면 AWS Management Console 또는 Amazon CloudWatch Logs API를 사용합니다. 자세한 설정 지침은 Amazon CloudWatch Logs 사용 설명서의 Enabling logging from AWS services를 참조하세요. 각 기능 컨트롤러를 개별 CloudWatch Vended Logs 전송 소스로 구성할 수 있으므로 수신할 로그를 선택할 수 있습니다.

콘솔

  1. https://console.aws.amazon.com/eks/home#/clusters에서 Amazon EKS 콘솔을 엽니다.

  2. 클러스터 이름을 선택하세요.

  3. 기능 탭을 선택한 다음 기능을 선택합니다.

  4. 로그 전송 섹션에서 추가를 선택합니다.

  5. 기능의 로그 유형을 선택하고 대상을 선택합니다.

  6. 추가를 선택하여 전송을 생성합니다.

Amazon CloudWatch API 사용

로깅을 설정하려면 다음과 같은 3단계가 필요합니다.

  1. CloudWatch PutDeliverySource API를 사용하여 기능의 전송 소스를 생성합니다. 기능 ARN을 resourceArn으로 사용하고 원하는 로그 유형을 지정합니다.

  2. PutDeliveryDestination를 사용하여 전송 대상을 생성합니다. CloudWatch 로그 그룹, S3 버킷 또는 Amazon Data Firehose 전송 스트림의 ARN을 지정합니다.

  3. CreateDelivery를 사용하여 소스와 대상을 연결하는 전송을 생성합니다.

describe-capability 명령을 사용하여 기능 ARN을 검색할 수 있습니다.

aws eks describe-capability \ --region region-code \ --cluster-name my-cluster \ --capability-name my-capability \ --query 'capability.capabilityArn' --output text

여러 전송을 생성하여 여러 대상으로 로그를 보내도록 단일 기능(전송 소스)을 구성할 수 있습니다. 여러 기능에서 동일한 대상으로 로그를 보낼 수도 있습니다.

IAM 권한

선택한 대상에 따라 성공적인 로그 전송을 위해 CloudWatch 로그 그룹, S3 버킷 및 Amazon Data Firehose의 IAM 정책 또는 역할을 구성해야 할 수도 있습니다. AWS 계정 간에 로그를 보내는 경우 PutDeliveryDestinationPolicy API를 사용하여 대상으로의 전송을 허용하는 IAM 정책을 구성합니다. 자세한 내용은 CloudWatch Vended Logs 권한 설명서를 참조하세요.

예제: CloudWatch Logs Insights로 로그 쿼리

모든 컨트롤러에서 오류 로그를 보려면:

fields @timestamp, controller, message, error | filter level = "error" | sort @timestamp desc | limit 50

서비스 컨트롤러로 필터링, 조정 주기 추적, Argo CD 애플리케이션 필터링을 포함한 추가 쿼리 예제는 문제 해결에 컨트롤러 로그 사용을 참조하세요.

로그 확인

로그 전송을 구성한 후 로그는 지정된 대상으로 전송됩니다. 로그에 액세스하는 방법은 다음과 같이 선택한 대상 유형에 따라 다릅니다.

  • CloudWatch Logs - CloudWatch Logs 콘솔에서 로그를 보거나, AWS CLI 명령을 사용하거나, CloudWatch Logs Insights를 사용하여 쿼리합니다.

  • Amazon S3 - S3 콘솔, AWS CLI 또는 Amazon Athena 같은 분석 도구를 통해 S3 버킷의 객체로 로그에 액세스합니다.

  • Amazon Data Firehose - 구성된 Firehose 대상(예: S3, OpenSearch Service, Redshift 등)으로 로그가 스트리밍됩니다.

가격 책정

CloudWatch Vended Logs 요금은 선택한 전송 대상에 따라 로그 전송 및 스토리지에 적용됩니다. CloudWatch Vended Logs를 사용하면 표준 CloudWatch Logs에 비하여 저렴한 가격으로 기본 제공 AWS 인증 및 권한 부여를 통해 신뢰할 수 있고 안전한 방식으로 로그를 전송할 수 있습니다. 자세한 내용은 CloudWatch 요금 페이지의 Vended Logs 섹션을 참조하세요.