Prometheus를 사용한 개방형 모니터링 - Amazon Managed Streaming for Apache Kafka

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Prometheus를 사용한 개방형 모니터링

시계열 지표 데이터를 위한 오픈 소스 모니터링 시스템인 Prometheus로 MSK 클러스터를 모니터링할 수 있습니다. Prometheus의 원격 쓰기 기능을 사용하여 이 데이터를 Prometheus용 Amazon 관리형 서비스에 게시할 수 있습니다. 또한 Prometheus 형식의 지표와 호환되는 도구 또는 Amazon MSK 오픈 모니터링과 통합되는 도구(Datadog, Lenses, New Relic, Sumo logic)를 사용할 수 있습니다. 오픈 모니터링은 무료로 제공되지만 가용 영역 간 데이터 전송에 대해서는 요금이 부과됩니다. Prometheus에 대한 자세한 내용은 Prometheus 설명서를 참조하십시오.

개방형 모니터링이 활성화된 Amazon MSK 클러스터 생성

사용: AWS Management Console
  1. 에 AWS Management Console로그인하고 https://console.aws.amazon.com/msk/home?region=us-east-1#/home/ 에서 Amazon MSK 콘솔을 엽니다.

  2. 모니터링 섹션에서 Enable open monitoring with Prometheus(Prometheus를 사용하여 오픈 모니터링 활성화) 옆에 있는 확인란을 선택합니다.

  3. 페이지의 모든 섹션에 필요한 정보를 제공하고 사용 가능한 모든 옵션을 검토합니다.

  4. 클러스터 생성을 선택합니다.

사용: AWS CLI
  • create-cluster 명령을 호출하고 해당 open-monitoring 옵션을 지정합니다. JmxExporter, NodeExporter 또는 둘 다를 활성화합니다. open-monitoring을 지정하면 두 Exporter를 동시에 비활성화할 수 없습니다.

API 사용
  • CreateCluster작업을 호출하고 지정합니다OpenMonitoring. jmxExporter, nodeExporter 또는 둘 다를 활성화합니다. OpenMonitoring을 지정하면 두 Exporter를 동시에 비활성화할 수 없습니다.

기존 Amazon MSK 클러스터에 대한 개방형 모니터링 활성화

개방형 모니터링을 사용하려면 클러스터가 ACTIVE 상태인지 확인합니다.

사용 AWS Management Console
  1. 에 AWS Management Console로그인하고 https://console.aws.amazon.com/msk/home?region=us-east-1#/home/ 에서 Amazon MSK 콘솔을 엽니다.

  2. 업데이트할 클러스터 이름을 선택합니다. 그러면 클러스터에 대한 세부 정보가 포함된 페이지로 이동합니다.

  3. 속성 탭에서 아래로 스크롤하여 모니터링 섹션을 찾습니다.

  4. 편집을 선택합니다.

  5. Enable open monitoring with Prometheus(Prometheus를 사용하여 오픈 모니터링 활성화) 옆에 있는 확인란을 선택합니다.

  6. 변경 사항 저장를 선택합니다.

사용: AWS CLI
  • update-monitoring 명령을 호출하고 해당 open-monitoring 옵션을 지정합니다. JmxExporter, NodeExporter 또는 둘 다를 활성화합니다. open-monitoring을 지정하면 두 Exporter를 동시에 비활성화할 수 없습니다.

API 사용
  • UpdateMonitoring작업을 호출하고 지정합니다OpenMonitoring. jmxExporter, nodeExporter 또는 둘 다를 활성화합니다. OpenMonitoring을 지정하면 두 Exporter를 동시에 비활성화할 수 없습니다.

Amazon EC2 인스턴스에서 Prometheus 호스트 설정

  1. https://prometheus.io/download/#prometheus에서 Amazon EC2 인스턴스로 Prometheus 서버를 다운로드합니다.

  2. 디렉터리에 다운로드한 파일의 압축을 풀고 해당 디렉터리로 이동합니다.

  3. 다음 콘텐츠가 포함된 파일을 생성하고 이름을 prometheus.yml로 지정합니다.

    # file: prometheus.yml # my global config global: scrape_interval: 60s # A scrape configuration containing exactly one endpoint to scrape: # Here it's Prometheus itself. scrape_configs: # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config. - job_name: 'prometheus' static_configs: # 9090 is the prometheus server port - targets: ['localhost:9090'] - job_name: 'broker' file_sd_configs: - files: - 'targets.json'
  4. ListNodes작업을 사용하여 클러스터 브로커 목록을 가져올 수 있습니다.

  5. 다음 JSON을 통해 targets.json 파일을 생성합니다. broker_dns_1, broker_dns_2 및 나머지 브로커 DNS 이름을 이전 단계에서 브로커에 대해 얻은 DNS 이름으로 바꿉니다. 이전 단계에서 획득한 모든 브로커를 포함합니다. Amazon MSK는 JMX Exporter에 포트 11001을, Node Exporter에 포트 11002를 사용합니다.

    [ { "labels": { "job": "jmx" }, "targets": [ "broker_dns_1:11001", "broker_dns_2:11001", . . . "broker_dns_N:11001" ] }, { "labels": { "job": "node" }, "targets": [ "broker_dns_1:11002", "broker_dns_2:11002", . . . "broker_dns_N:11002" ] } ]
  6. Amazon EC2 인스턴스에서 Prometheus 서버를 시작하려면 Prometheus 파일을 추출하고 prometheus.ymltargets.json을 저장한 디렉터리에서 다음 명령을 실행합니다.

    ./prometheus
  7. 이전 단계에서 Prometheus를 실행한 Amazon EC2 인스턴스의 IPv4 퍼블릭 IP 주소를 찾습니다. 다음 단계에서 이 퍼블릭 IP 주소가 필요합니다.

  8. Prometheus 웹 UI에 액세스하려면 Amazon EC2 인스턴스에 액세스할 수 있는 브라우저를 열고 Prometheus-Instance-Public-IP:9090으로 이동합니다. 여기서 Prometheus-Instance-Public-IP는 이전 단계에서 얻은 퍼블릭 IP 주소입니다.

Prometheus 지표

JMX로 Apache Kafka에 의해 방출된 모든 지표는 Prometheus와 오픈 모니터링을 사용하여 액세스할 수 있습니다. Apache Kafka 지표에 대한 자세한 내용은 Apache Kafka 설명서의 Monitoring을 참조하십시오. Apache Kafka 지표와 함께 소비자 지연 지표도 JMX MBean 이름 kafka.consumer.group:type=ConsumerLagMetrics 아래 포트 11001에서 사용할 수 있습니다. Prometheus 노드 내보내기를 사용하여 포트 11002에서 브로커에 대한 CPU 및 디스크 지표를 가져올 수도 있습니다.

Amazon Managed Service for Prometheus에 Prometheus 지표 저장

Amazon Managed Service for Prometheus는 Amazon MSK 클러스터 모니터링에 사용할 수 있는 Prometheus 호환 모니터링 및 알림 서비스입니다. 지표의 수집, 스토리지, 쿼리 및 알림을 자동으로 확장하는 완전관리형 서비스입니다. 또한 AWS 보안 서비스와 통합되어 데이터에 빠르고 안전하게 액세스할 수 있습니다. 오픈 소스 PromQL 쿼리 언어를 사용하여 지표를 쿼리하고 지표에 대해 알릴 수 있습니다.

자세한 내용은 Amazon Managed Service for Prometheus 시작하기를 참조하세요.