Amazon MSK 통합
Amazon CloudWatch 관리형 Prometheus 수집기를 사용하면 Amazon MSK 클러스터에서 Prometheus 지표를 자동으로 검색하고 수집할 수 있습니다. Amazon MSK 클러스터에서 Open Monitoring을 활성화하면 Java Management Extensions(JMX) Exporter 및 Node Exporter를 통해 Prometheus 지표를 노출합니다. 관리형 수집기는 VPC에 연결하고 DNS 기반 서비스 검색을 사용하여 모든 브로커에서 이러한 지표를 스크레이핑한 후 CloudWatch에 직접 전달합니다. 이 통합을 통해 에이전트를 배포하지 않고도 CloudWatch에서 호스트 수준 지표, JVM 수준 지표 및 Kafka 브로커 지표를 모니터링할 수 있습니다.
참고
Amazon CloudWatch 관리형 Prometheus 수집기가 Amazon MSK 지표를 CloudWatch에 전달하면 해당 오리진을 식별하는 속성을 사용해 각 지표를 자동으로 보강합니다. 모든 지표에는 수집기의 계측 범위, AWS 계정 및 리전을 기록하는 클라우드 속성, 수집기가 지표 이름에서 추론하는 유닛이 포함됩니다. PromQL을 사용하여 지표를 쿼리할 때 이러한 속성을 필터링하고 그룹화할 수 있습니다.
사전 조건
이 절차에서는 Amazon MSK 클러스터 관리 및 Amazon VPC 네트워킹 개념에 친숙하다고 가정합니다.
-
Standard 또는 Express 브로커가 있는 프로비저닝된 모드의 Amazon MSK 클러스터. 관리형 수집기는 Amazon MSK Serverless를 지원하지 않습니다.
-
클러스터에서 활성화된 Open Monitoring. 자세한 내용은 Amazon MSK 개발자 가이드의 Open Monitoring with Prometheus를 참조하세요.
-
서로 다른 가용 영역에 있는 두 개 이상의 서브넷
-
수집기가 브로커 포트 11001 및 11002에 도달하도록 허용한 보안 그룹
1단계: Open Monitoring 활성화
Amazon MSK 클러스터에서 Open Monitoring을 활성화하여 Prometheus 지표를 노출하세요. Open Monitoring을 활성화하는 방법에 대한 지침은 Amazon MSK 개발자 가이드의 Open Monitoring with Prometheus를 참조하세요.
aws kafka update-monitoring \ --cluster-arn "arn:aws:kafka:us-west-2:123456789012:cluster/my-cluster/abc123-def456" \ --current-version "K1A2B3C4D5" \ --open-monitoring '{ "Prometheus": { "JmxExporter": {"EnabledInBroker": true}, "NodeExporter": {"EnabledInBroker": true} } }'
참고
--open-monitoring 파라미터만으로 포트 11001 및 11002의 Prometheus 엔드포인트를 노출합니다. PER_TOPIC_PER_PARTITION과 같은 향상된 모니터링 계층은 Open Monitoring과 별개이며 추가 요금이 발생할 수 있으므로, 해당 수준의 Amazon MSK 지표가 필요한 경우에만 설정하세요.
2단계: 클러스터의 DNS 이름 가져오기
Amazon MSK는 모든 브로커 IP로 확인되는 클러스터 수준 DNS 이름을 제공합니다. 이를 서비스 검색에 사용하면 브로커 교체 및 클러스터 규모 조정에 대한 모니터링의 복원력이 향상됩니다.
클러스터 DNS 이름을 가져오세요(b-1. 또는 b-2.와 같은 브로커별 접두사 제거).
aws kafka get-bootstrap-brokers --cluster-arn "arn:aws:kafka:us-west-2:123456789012:cluster/my-cluster/abc123-def456"
예를 들어 부트스트랩 브로커가 b-1.my-cluster.abc123.c4.kafka.us-west-2.amazonaws.com을 반환하는 경우 my-cluster.abc123.c4.kafka.us-west-2.amazonaws.com을 클러스터 DNS 이름으로 사용하세요.
3단계: 스크레이프 구성 설정
다음은 Amazon MSK에 대한 스크레이프 구성 예제입니다. 다음 단계에서 스크레이퍼를 생성할 때 이 구성을 참조합니다. 구성 옵션에 대한 자세한 내용은 단원을 참조하십시오스크레이퍼 구성
global: scrape_interval: 60s external_labels: cluster_name:my-msk-clusterscrape_configs: - job_name: 'msk-jmx' dns_sd_configs: - names: -my-cluster---abc123---c4---kafka---us-west-2.amazonaws.com.rproxy.goskope.comtype: A port: 11001 relabel_configs: - source_labels: [__meta_dns_name] target_label: broker_dns - source_labels: [__address__] target_label: instance - target_label: compute_platform replacement: 'msk' - job_name: 'msk-node' dns_sd_configs: - names: -my-cluster---abc123---c4---kafka---us-west-2.amazonaws.com.rproxy.goskope.comtype: A port: 11002 relabel_configs: - source_labels: [__meta_dns_name] target_label: broker_dns - source_labels: [__address__] target_label: instance - target_label: compute_platform replacement: 'msk'
4단계: 스크레이퍼 생성
이전 단계에서 Amazon MSK 브로커에 대한 스크레이프 구성을 사용하여 CloudWatch 대상과 함께 스크레이퍼를 생성하세요.
사용 가능한 지표
-
JMX Exporter(포트 11001) - 주제 지표, 파티션 지표, 요청 속도, 소비자 지연 및 복제가 덜 진행된 파티션을 포함한 Kafka 브로커 내부 정보.
-
Node Exporter(포트 11002) - CPU, 메모리, 디스크 I/O 및 네트워크 처리량을 포함한 호스트 수준 지표.
사용 가능한 지표의 전체 목록은 Amazon Managed Service for Prometheus 사용 설명서의 MSK metrics collected by managed collectors를 참조하세요.
지표 수집 검증
수집기가 JMX 및 Node Exporter 지표를 모두 전달하는지 확인하려면 Query Studio를 사용하여 CloudWatch에서 다음 쿼리를 실행합니다. 각 쿼리가 데이터 포인트를 반환하면 수집기가 해당하는 내보내기 도구를 성공적으로 스크레이핑하고 있는 것입니다.
다음 쿼리는 JMX Exporter(포트 11001)에서 브로커 수준 Kafka 지표를 반환합니다. 브로커를 통해 전달되는 메시지 및 바이트와 같은 브로커 주제 활동의 평균 속도를 보고합니다. 데이터 포인트는 수집기가 Kafka 브로커 지표를 스크레이핑하고 있음을 확인합니다.
kafka_server_BrokerTopicMetrics_MeanRate
다음 쿼리는 Node Exporter(포트 11002)에서 호스트 수준 CPU 사용률을 반환합니다. 100에서 5분 동안의 평균 유휴 CPU 속도를 빼서 브로커가 사용하는 CPU의 비율을 구합니다. 데이터 포인트는 수집기가 호스트 수준 지표를 스크레이핑하고 있음을 확인합니다.
100 - (avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)
자동 대시보드 보기
수집기가 Amazon MSK 지표를 CloudWatch로 전송하기 시작하면 CloudWatch 콘솔은 MSK OTel이라는 자동 대시보드를 제공합니다. 이를 열려면 MSK OTel
자동 대시보드가 요구 사항을 충족하는 경우 그대로 사용할 수 있습니다. 맞춤형 모니터링 환경을 구축하기 위해 사용자 지정 대시보드에 위젯을 추가할 수 있습니다. 사용자 지정 대시보드에 대한 자세한 내용은 CloudWatch 대시보드 사용을 참조하세요.
교차 계정 관찰성
교차 계정 Amazon MSK 모니터링의 경우 Amazon CloudWatch 지표 중앙 집중화를 사용하는 것이 좋습니다. 자세한 내용은 CloudWatch 지표 중앙 집중화를 참조하세요.
역할 체이닝을 사용하는 대체 교차 계정 스크레이퍼 구성은 Amazon Managed Service for Prometheus 사용 설명서의 Cross-account Amazon MSK integration을 참조하세요.
현재 제한 사항
-
관리형 수집기는 Amazon MSK Serverless 클러스터를 지원하지 않습니다.
-
관리형 수집기는 KRaft 메타데이터 모드와 결합된 퍼블릭 액세스를 지원하지 않습니다.
-
각 Amazon MSK 클러스터 및 CloudWatch 데이터세트 조합에는 하나의 수집기가 필요합니다.