Prometheus로 클러스터 지표 모니터링하기
Prometheus로 클러스터 지표 모니터링하기
Prometheus는 엔드포인트를 스크래핑하는 모니터링 및 시계열 데이터베이스예요. 수집된 데이터를 쿼리·집계·저장하는 기능을 제공해요. 알림(alerting)과 알림 집계에도 사용할 수 있어요. 이 토픽은 Prometheus를 관리형 또는 오픈소스 옵션으로 설정하는 방법을 설명해요. Amazon EKS 컨트롤 플레인 지표 모니터링이 일반적인 사용 사례예요.
Amazon Managed Service for Prometheus는 Prometheus와 호환되는 모니터링 및 알림 서비스로, 컨테이너화된 애플리케이션과 인프라를 대규모로 쉽게 모니터링할 수 있게 해줘요. 지표의 수집(ingestion), 저장, 쿼리, 알림을 자동으로 확장하는 완전 관리형 서비스예요. 또한 AWS 보안 서비스와 통합되어 데이터에 빠르고 안전하게 접근할 수 있게 해줘요. 오픈소스 PromQL 쿼리 언어로 지표를 쿼리하고 알림을 걸 수 있어요. 또한 Amazon Managed Service for Prometheus의 alert manager를 사용해 중요한 알림에 대한 알림 규칙을 설정할 수 있어요. 그러면 이러한 중요 알림을 Amazon SNS 토픽으로 알림을 보낼 수 있어요.
Amazon EKS에서 Prometheus를 사용하는 방법에는 여러 옵션이 있어요.
- Amazon EKS 클러스터를 처음 만들 때 Prometheus 지표를 켜거나, 기존 클러스터용으로 자체 Prometheus 스크레이퍼(scraper)를 만들 수 있어요. 이 두 옵션 모두 이 토픽에서 다뤄요.
- Helm으로 Prometheus를 배포할 수 있어요. 자세한 내용은 Helm으로 Prometheus 배포하기를 참고하세요.
- 컨트롤 플레인 원시 지표를 Prometheus 형식으로 볼 수 있어요. 자세한 내용은 Prometheus 형식으로 컨트롤 플레인 원시 지표 가져오기를 참고하세요.
출처: 문서
본문
1단계: Prometheus 지표 켜기
중요
Amazon Managed Service for Prometheus 리소스는 클러스터 수명 주기 밖에 있으며 클러스터와 별개로 유지 관리해야 해요. 클러스터를 삭제할 때는 관련 비용을 중지하도록 적용 가능한 스크레이퍼도 함께 삭제해야 해요. 자세한 내용은 Amazon Managed Service for Prometheus 사용자 가이드의 Find and delete scrapers를 참고하세요.
Prometheus는 스크래핑(scraping)이라는 풀 기반 모델로 클러스터에서 지표를 발견하고 수집해요. 스크레이퍼는 클러스터 인프라와 컨테이너화된 애플리케이션에서 데이터를 수집하도록 설정돼요. Prometheus 지표 전송 옵션을 켜면 Amazon Managed Service for Prometheus가 완전 관리형 에이전트리스 스크레이퍼를 제공해요.
아직 클러스터를 만들지 않았다면 클러스터를 처음 만들 때 Prometheus로 지표를 전송하는 옵션을 켤 수 있어요. Amazon EKS 콘솔에서 이 옵션은 새 클러스터를 만드는 Configure observability 단계에 있어요. 자세한 내용은 Amazon EKS 클러스터 생성을 참고하세요.
기존 클러스터가 있다면 자체 Prometheus 스크레이퍼를 만들 수 있어요. Amazon EKS 콘솔에서 이렇게 하려면 클러스터의 Observability 탭으로 이동해 Add scraper 버튼을 선택하세요. AWS API 또는 AWS CLI로 하길 원한다면 Amazon Managed Service for Prometheus 사용자 가이드의 Create a scraper를 참고하세요.
Amazon EKS 콘솔로 스크레이퍼를 만들 때 사용할 수 있는 옵션은 다음과 같아요.
- Scraper alias – (선택) 스크레이퍼에 고유한 별칭을 입력합니다.
- Destination – Amazon Managed Service for Prometheus 워크스페이스를 선택합니다. 워크스페이스는 Prometheus 지표의 저장과 쿼리에 전용으로 사용되는 논리적 공간이에요. 이 워크스페이스로 접근 권한이 있는 계정에 걸쳐 Prometheus 지표를 볼 수 있어요. Create new workspace 옵션은 제공한 Workspace alias로 Amazon EKS가 대신 워크스페이스를 만들게 해줘요. Select existing workspace 옵션은 드롭다운 목록에서 기존 워크스페이스를 선택할 수 있게 해줘요. 워크스페이스에 대한 자세한 내용은 Amazon Managed Service for Prometheus 사용자 가이드의 Managing workspaces를 참고하세요.
- Service access – 이 섹션은 Prometheus 지표를 전송할 때 부여하는 권한을 요약해요.
- Amazon Managed Service for Prometheus가 스크래핑된 Amazon EKS 클러스터를 describe하도록 허용
- Amazon Managed Prometheus 워크스페이스에 원격 쓰기(remote write) 허용
AmazonManagedScraperRole이 이미 존재하면 스크레이퍼가 이를 사용해요.AmazonManagedScraperRole링크를 선택해 권한 세부 사항을 확인하세요.AmazonManagedScraperRole이 아직 없다면 View permission details 링크를 선택해 Prometheus 지표를 전송할 때 부여하는 특정 권한을 확인하세요.
- Subnets – 스크레이퍼가 상속할 서브넷을 필요에 따라 수정합니다. 회색으로 표시된 서브넷 옵션을 추가해야 한다면 클러스터 생성 단계의 Specify networking으로 돌아가세요.
- Scraper configuration – 스크레이퍼 구성을 YAML 형식으로 필요에 따라 수정합니다. 이렇게 하려면 양식을 사용하거나 대체 YAML 파일을 업로드하세요. 자세한 내용은 Amazon Managed Service for Prometheus 사용자 가이드의 Scraper configuration을 참고하세요.
Amazon Managed Service for Prometheus는 클러스터와 함께 만들어진 에이전트리스 스크레이퍼를 AWS managed collector라고 해요. AWS managed collectors에 대한 자세한 내용은 Amazon Managed Service for Prometheus 사용자 가이드의 Ingest metrics with AWS managed collectors를 참고하세요.
중요
AWS CLI 또는 AWS API로 Prometheus 스크레이퍼를 만든다면 스크레이퍼에 클러스터 내(in-cluster) 권한을 부여하도록 구성을 조정해야 해요. 자세한 내용은 Amazon Managed Service for Prometheus 사용자 가이드의 Configuring your Amazon EKS cluster를 참고하세요.
access entries 대신
aws-authConfigMap을 사용하는 2024년 11월 11일 이전에 만들어진 Prometheus 스크레이퍼가 있다면, Amazon EKS 클러스터 컨트롤 플레인에서 추가 지표에 접근하도록 업데이트해야 해요. 업데이트된 구성은 Amazon Managed Service for Prometheus 사용자 가이드의 Manually configuring Amazon EKS for scraper access를 참고하세요.
2단계: Prometheus 지표 사용하기
클러스터에서 Prometheus 지표를 켠 뒤 사용하는 방법은 Amazon Managed Service for Prometheus 사용자 가이드를 참고하세요.
3단계: Prometheus 스크레이퍼 관리하기
스크레이퍼를 관리하려면 Amazon EKS 콘솔에서 Observability 탭을 선택하세요. 표에 스크레이퍼 ID, 별칭, 상태, 생성 날짜 같은 정보를 포함한 클러스터의 스크레이퍼 목록이 표시돼요. 스크레이퍼를 추가·편집·삭제하거나 현재 스크레이퍼에 대한 더 많은 정보를 볼 수 있어요.
스크레이퍼에 대한 자세한 내용을 보려면 스크레이퍼 ID 링크를 선택하세요. 예를 들어 ARN, 환경, 워크스페이스 ID, IAM 역할, 구성, 네트워킹 정보를 볼 수 있어요. 스크레이퍼 ID를 DescribeScraper, UpdateScraper, DeleteScraper 같은 Amazon Managed Service for Prometheus API 작업의 입력으로 사용할 수 있어요. Prometheus API 사용에 대한 자세한 내용은 Amazon Managed Service for Prometheus API Reference를 참고하세요.