원격 쓰기를 사용한 Amazon EC2 인스턴스에서의 지표 수집 설정 - Amazon Managed Service for Prometheus

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

원격 쓰기를 사용한 Amazon EC2 인스턴스에서의 지표 수집 설정

이 섹션에서는 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에서 원격 쓰기로 Prometheus 서버를 실행하는 방법을 설명합니다. Go로 작성된 데모 애플리케이션에서 지표를 수집한 후 Amazon Managed Service for Prometheus 워크스페이스로 보내는 방법을 설명합니다.

사전 조건

중요

시작하기 전에 Prometheus v2.26 이상을 설치해야 합니다. Prometheus, Amazon EC2 및 Amazon Managed Service for Prometheus에 대해 잘 알고 있다고 가정합니다. Prometheus 설치 방법에 대한 자세한 내용은 Prometheus 웹 사이트에서 시작하기를 참조하세요.

Amazon EC2 또는 Amazon Managed Service for Prometheus에 익숙하지 않은 경우 먼저 다음 섹션을 읽는 것이 좋습니다.

Amazon EC2의 IAM 역할 생성

지표를 스트리밍하려면 먼저 AWS 관리형 정책 AmazonPrometheusRemoteWriteAccess를 사용하여 IAM 역할을 생성해야 합니다. 그런 다음, 역할과 함께 인스턴스를 시작하고 지표를 Amazon Managed Service for Prometheus WorkSpace로 스트리밍할 수 있습니다.

  1. https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

  2. 탐색 창에서 역할을 선택한 후 역할 생성을 선택합니다.

  3. 신뢰할 수 있는 엔터티 유형에서 AWS 서비스를 선택합니다. 사용 사례로 EC2를 선택합니다. 다음: 권한을 선택합니다.

  4. 검색 창에 AmazonPrometheusRemoteWriteAccess를 입력합니다. 정책 이름으로 AmazonPrometheusRemoteWriteAccess를 선택한 다음, 정책 연결을 선택합니다. 다음: 태그를 선택합니다.

  5. (선택 사항) IAM 역할을 위한 IAM 태그를 생성합니다. 다음: 검토를 선택합니다.

  6. 역할의 이름을 입력합니다. 정책 생성을 선택합니다.

Amazon EC2 인스턴스 시작하기

Amazon EC2 인스턴스를 시작하려면 Linux 인스턴스용 Amazon Elastic Compute Cloud 사용 설명서에서 인스턴스 시작의 지침을 따르세요.

데모 애플리케이션 실행

IAM 역할을 생성하고 역할이 있는 EC2 인스턴스를 시작한 후 데모 애플리케이션을 실행하여 작동하는지 확인할 수 있습니다.

데모 애플리케이션 및 테스트 지표를 실행하려면
  1. 다음 템플릿을 사용하여 main.go라는 Go 파일을 생성합니다.

    package main import ( "github.com/prometheus/client_golang/prometheus/promhttp" "net/http" ) func main() { http.Handle("/metrics", promhttp.Handler()) http.ListenAndServe(":8000", nil) }
  2. 다음 명령을 실행하여 올바른 종속성을 설치합니다.

    sudo yum update -y sudo yum install -y golang go get github.com/prometheus/client_golang/prometheus/promhttp
  3. 데모 애플리케이션을 실행합니다.

    go run main.go

    데모 애플리케이션은 포트 8000에서 실행되어야 하며 노출된 모든 Prometheus 지표를 표시합니다. 다음은 이러한 지표의 예입니다.

    curl -s http://localhost:8000/metrics ... process_max_fds 4096# HELP process_open_fds Number of open file descriptors.# TYPE process_open_fds gauge process_open_fds 10# HELP process_resident_memory_bytes Resident memory size in bytes.# TYPE process_resident_memory_bytes gauge process_resident_memory_bytes 1.0657792e+07# HELP process_start_time_seconds Start time of the process since unix epoch in seconds.# TYPE process_start_time_seconds gauge process_start_time_seconds 1.61131955899e+09# HELP process_virtual_memory_bytes Virtual memory size in bytes.# TYPE process_virtual_memory_bytes gauge process_virtual_memory_bytes 7.77281536e+08# HELP process_virtual_memory_max_bytes Maximum amount of virtual memory available in bytes.# TYPE process_virtual_memory_max_bytes gauge process_virtual_memory_max_bytes -1# HELP promhttp_metric_handler_requests_in_flight Current number of scrapes being served.# TYPE promhttp_metric_handler_requests_in_flight gauge promhttp_metric_handler_requests_in_flight 1# HELP promhttp_metric_handler_requests_total Total number of scrapes by HTTP status code.# TYPE promhttp_metric_handler_requests_total counter promhttp_metric_handler_requests_total{code="200"} 1 promhttp_metric_handler_requests_total{code="500"} 0 promhttp_metric_handler_requests_total{code="503"} 0

Amazon Managed Service for Prometheus WorkSpace 생성

Amazon Managed Service for Prometheus WorkSpace를 생성하려면 Amazon Managed Service for Prometheus 사용 설명서에서 WorkSpace 생성의 지침을 따르세요.

Prometheus 서버 실행

  1. 다음 예제 YAML 파일을 템플릿으로 사용하여 prometheus.yaml이라는 새 파일을 생성합니다. url의 경우 my-region을 리전 값으로 바꾸고 my-workspace-id를 Amazon Managed Service for Prometheus에서 생성한 워크스페이스 ID로 바꿉니다. region의 경우 my-region을 리전 값으로 바꿉니다.

    예제: YAML 파일

    global: scrape_interval: 15s external_labels: monitor: 'prometheus' scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:8000'] remote_write: - url: https://aps-workspaces.my-region.amazonaws.com/workspaces/my-workspace-id/api/v1/remote_write queue_config: max_samples_per_send: 1000 max_shards: 200 capacity: 2500 sigv4: region: my-region
  2. Prometheus 서버를 실행하여 데모 애플리케이션의 지표를 Amazon Managed Service for Prometheus 워크스페이스로 전송합니다.

    prometheus --config.file=prometheus.yaml

이제 Prometheus 서버가 데모 애플리케이션의 지표를 Amazon Managed Service for Prometheus WorkSpace로 전송합니다.