Amazon CloudWatch 솔루션: Amazon EC2에서 Prometheus 지표 수집
이 솔루션을 사용하면 자체 수집 인프라를 실행하거나 확장하지 않고도 Amazon EC2 인스턴스에서 Prometheus 호환 지표를 수집할 수 있습니다. 인스턴스에서 하나 이상의 Prometheus 내보내기 도구를 실행합니다. 그러면 Amazon CloudWatch 관리형 Prometheus 수집기는 VPC에서 대상을 검색하고, /metrics 엔드포인트를 스크레이핑하며, 지표를 CloudWatch에 전송합니다. CloudWatch 관찰성 솔루션에서 모든 CloudWatch 관찰성 솔루션에 대한 일반 정보를 참조하세요. 관리형 수집기에 대한 자세한 내용은 Amazon CloudWatch 관리형 Prometheus 수집기 섹션을 참조하세요.
요구 사항
이 솔루션 관련 조건은 다음과 같습니다.
-
컴퓨팅: 하나 이상의 Prometheus 내보내기 도구를 실행하는 Amazon EC2 인스턴스.
-
DNS가 활성화된 Amazon VPC 및 수집기에 대해 서로 다른 가용 영역에 있는 서브넷 2개 이상.
-
수집기가 인스턴스의 내보내기 도구 포트에 도달하도록 허용하는 보안 그룹.
Prometheus 내보내기 도구 활성화
Prometheus 내보내기 도구는 HTTP /metrics 엔드포인트에서 지표를 Prometheus 노출 형식으로 노출하는 프로세스입니다. 모니터링하려는 워크로드와 일치하는 내보내기 도구를 실행합니다. Amazon EC2에서 일반적으로 사용되는 내보내기 도구는 다음과 같습니다.
-
Node Exporter - CPU, 메모리, 디스크 및 네트워크와 같은 호스트 수준 인프라 지표입니다(기본 포트 9100). 자세한 내용은 GitHub의 Node Exporter
리포지토리를 참조하세요. -
JMX Exporter - Java 워크로드에 대한 JVM 및 Java 애플리케이션 지표입니다. 자세한 내용은 GitHub의 JMX Exporter
리포지토리를 참조하세요. -
NGINX Prometheus Exporter - NGINX 웹 서버 및 역방향 프록시 지표입니다. 자세한 내용은 GitHub의 NGINX Prometheus Exporter
리포지토리를 참조하세요. -
DCGM Exporter - 기계 학습 훈련 및 추론과 같은 GPU 워크로드에 대한 NVIDIA GPU 지표입니다(기본 포트 9400). 자세한 내용은 GitHub의 DCGM Exporter
리포지토리를 참조하세요. -
HAProxy Exporter - HAProxy 로드 밸런서 지표입니다. 자세한 내용은 GitHub의 HAProxy Exporter
리포지토리를 참조하세요. -
Apache Exporter - Apache HTTP 서버 지표입니다. 자세한 내용은 GitHub의 Apache Exporter
리포지토리를 참조하세요.
공식 설명서에 따라 인스턴스에 각 내보내기 도구를 설치하고 실행합니다. 스크레이프 구성에서 이러한 포트를 참조하므로 각 내보내기 도구가 수신하는 포트를 기록해 둡니다. 사용 가능한 전체 내보내기 도구 목록은 Prometheus 설명서의 Exporters and integrations
내보내기 도구를 시작한 후 인스턴스에서 엔드포인트를 쿼리하여 지표가 노출되는지 확인합니다.
curl http://localhost:port-number/metrics
1단계: 스크레이프 구성 설정
다음 예제에서는 static_configs를 인스턴스 프라이빗 DNS 이름과 함께 사용하여 Amazon EC2 인스턴스에서 샘플 애플리케이션(포트 8080) 및 Node Exporter(포트 9100)를 스크레이핑합니다. 이 relabel_configs 섹션에서는 여러 서비스에서 쿼리하고 필터링할 수 있도록 지표에 일관된 레이블을 추가합니다. 지원되는 전체 구성 옵션 세트는 스크레이퍼 구성 섹션을 참조하세요.
global: scrape_interval: 30s scrape_timeout: 10s scrape_configs: - job_name: 'ec2-metrics' static_configs: - targets: - ip-ip-address.us-west-2.compute.internal:8080 metrics_path: '/metrics' relabel_configs: - source_labels: [__address__] target_label: instance replacement: 'ec2-metrics-instance' - target_label: service replacement: 'ec2-metrics' - target_label: environment replacement: 'dev' metric_relabel_configs: - source_labels: [__name__] regex: '.*' action: keep - job_name: ec2-node-exporter static_configs: - targets: - ip-ip-address.us-west-2.compute.internal:9100
2단계: 스크레이퍼 설정
인스턴스를 스크레이핑하고 CloudWatch 데이터세트에 지표를 전송하는 VPC 연결 관리형 수집기를 생성하세요. 수집기가 내보내기 도구 포트에 도달하도록 허용하는 서브넷과 보안 그룹을 제공하세요.
GetDefaultScraperConfiguration을 사용하여 범용 스크레이퍼 구성을 검색하거나 직접 제공할 수 있습니다.
관리형 수집기를 생성하면 Amazon Managed Service for Prometheus는 VPC 리소스에 액세스하고 CloudWatch 데이터세트에 쓸 수 있는 권한을 수집기에 부여하는 서비스 연결 역할을 자동으로 생성합니다.
지표 수집 검증
몇 분 내에 지표가 CloudWatch 데이터세트로 전달되기 시작합니다. 지표가 도착했는지 확인하려면 Query Studio를 사용하여 CloudWatch에서 임시 쿼리를 실행하세요. 예를 들어 다음 쿼리는 ec2-metrics 작업에 대한 지표를 반환합니다.
{job="ec2-metrics"}
사용자 지정 대시보드 구축
수집기가 Amazon EC2 지표를 CloudWatch로 전송하기 시작하면 사용자 지정 CloudWatch 대시보드를 구축하여 이를 시각화할 수 있습니다. 사용자 지정 대시보드를 사용하면 Prometheus 내보내기 도구의 지표를 위젯으로 결합하고, PromQL 기반 쿼리를 추가하며, 모니터링 요구 사항에 맞게 위젯을 구성할 수 있습니다. 자세한 내용은 CloudWatch 대시보드 사용을 참조하세요.
비용
Prometheus 수집기에 대해 시간 단위로 요금이 부과되며, CloudWatch OpenTelemetry 지표 수집 요금이 적용됩니다. CloudWatch 요금에 대한 자세한 내용은 Amazon CloudWatch 요금