Prometheus 첫걸음

1 개요[ | ]

FIRST STEPS WITH PROMETHEUS
프로메테우스 첫걸음

Prometheus에 오신 것을 환영합니다! Prometheus는 모니터링 대상에서 메트릭 HTTP 엔드포인트를 스크랩하여 모니터링 대상에서 메트릭을 수집하는 모니터링 플랫폼입니다. 이 가이드에서는 Prometheus를 사용하여 첫 번째 리소스를 설치, 설정, 모니터링하는 방법을 보여줍니다. Prometheus를 다운로드, 설치, 구동하게 됩니다. 또한 호스트 및 서비스에 대한 시계열 데이터를 노출하는 도구인 exporter를 다운로드하여 설치합니다. 첫 번째 exporter는 메모리 사용량, 가비지 수집 등에 대한 다양한 호스트 수준 메트릭을 제공하는 Prometheus 자체입니다.

2 Prometheus 다운로드[ | ]

플랫폼에 맞는 최신 Prometheus 릴리스를 다운로드한 후 압축을 푸세요.

tar xvfz prometheus-*.tar.gz
cd prometheus-*

Prometheus 서버는 prometheus(Microsoft Windows에서는 prometheus.exe)라는 단일 바이너리입니다. --help 플래그를 붙여 바이너리를 실행하고 해당 옵션에 대한 도움말을 볼 수 있습니다.

./prometheus --help
usage: prometheus [<flags>]

The Prometheus monitoring server

. . .

Prometheus를 시작하기 전에, 먼저 설정을 해 보겠습니다.

3 Prometheus 설정[ | ]

Prometheus 설정은 YAML입니다. Prometheus 다운로드에는 prometheus.yml이라는 파일에 샘플 설정이 포함되어 있어 시작하기에 좋은 곳입니다.

예시 파일에서 대부분의 주석을 제거하여 더 간결하게 만들었습니다(주석은 #으로 시작하는 줄입니다).

global:
  scrape_interval: 15s
  evaluation_interval: 15s

rule_files:
  # - "first.rules"
  # - "second.rules"

scrape_configs:
  - job_name: prometheus
    static_configs:
      - targets: ['localhost:9090']

예제 설정 파일에는 global, rule_files, scrape_configs의 세 가지 구성 블록이 있습니다.

global 블록은 Prometheus 서버의 global 설정을 제어합니다. 두 가지 옵션이 있습니다. 첫 번째 scrape_interval은 Prometheus가 대상을 스크래핑하는 빈도를 제어합니다. 개별 대상에 대해 이를 재정의할 수 있습니다. 이 경우 global 설정은 15초마다 스크래핑하는 것입니다. evaluation_interval 옵션은 Prometheus가 규칙을 평가하는 빈도를 제어합니다. Prometheus는 규칙을 사용하여 새로운 시계열을 만들고 알림을 생성합니다.

rule_files 블록은 Prometheus 서버에서 로드하려는 규칙의 위치를 ​​지정합니다. 지금은 규칙이 없습니다.

마지막 블록인 scrape_configs는 Prometheus가 모니터링하는 리소스를 제어합니다. Prometheus는 또한 HTTP 엔드포인트로 자체에 대한 데이터를 노출하므로 자체 상태를 스크래핑하고 모니터링할 수 있습니다. 기본 설정에는 Prometheus라는 단일 작업이 있으며, 이 작업은 Prometheus 서버에서 노출된 시계열 데이터를 스크래핑합니다. 이 작업에는 포트 9090의 로컬 호스트인 단일 정적으로 설정된 타겟이 포함됩니다. Prometheus는 /metrics 경로의 타겟에서 메트릭을 사용할 수 있을 것으로 예상합니다. 따라서 이 기본 작업은 URL http://localhost:9090/metrics를 통해 스크래핑합니다.

반환된 시계열 데이터에는 Prometheus 서버의 상태와 성능에 대한 상세한 내용이 들어 있습니다.

설정 옵션의 전체 사양은 설정 문서를 참조하세요.

4 Prometheus 시작하기[ | ]

새로 만든 설정 파일로 Prometheus를 시작하려면 Prometheus 바이너리가 있는 디렉토리로 변경하고 다음을 실행합니다.

./prometheus --config.file=prometheus.yml

Prometheus가 시작되어야 합니다. 또한 http://localhost:9090 에서 자체에 대한 상태 페이지로 이동할 수 있어야 합니다. 자체 HTTP 메트릭 엔드포인트에서 자체에 대한 데이터를 수집하는 데 약 30초가 걸립니다.

또한 자체 메트릭 엔드포인트 http://localhost:9090/metrics 로 이동하여 Prometheus가 자체에 대한 메트릭을 제공하고 있는지 확인할 수 있습니다.

5 표현식 브라우저 사용[ | ]

Prometheus가 자체적으로 수집한 일부 데이터를 살펴보겠습니다. Prometheus의 빌트인 표현식 브라우저를 사용하려면 http://localhost:9090/graph 로 이동하여 "그래프" 탭에서 "표" 보기를 선택합니다.

http://localhost:9090/metrics 에서 알 수 있듯이 Prometheus가 자체적으로 내보내는 메트릭 중 하나는 promhttp_metric_handler_requests_total(Prometheus 서버가 제공한 총 /metrics 요청 수)입니다. 표현식 콘솔에 다음을 입력하세요.

promhttp_metric_handler_requests_total

이렇게 하면 여러 개의 다른 시계열(각각에 대해 기록된 최신 값과 함께)이 반환되며, 모두 메트릭 이름은 promhttp_metric_handler_requests_total이지만 레이블은 다릅니다. 이러한 레이블은 다른 요청 상태를 지정합니다.

HTTP 코드 200을 초래한 요청에만 관심이 있다면 이 쿼리를 사용하여 해당 정보를 검색할 수 있습니다.

promhttp_metric_handler_requests_total{code="200"}

반환된 시계열의 수를 세려면 다음과 같이 작성할 수 있습니다.

count(promhttp_metric_handler_requests_total)

표현식 언어에 대한 자세한 내용은 표현식 언어 설명서를 참조하세요.

6 그래프 인터페이스 사용[ | ]

표현식을 그래프로 표시하려면 http://localhost:9090/graph로 이동하여 "그래프" 탭을 사용합니다.

예를 들어, 다음 표현식을 입력하여 자체 스크래핑된 Prometheus에서 발생하는 초당 HTTP 요청 비율 반환 상태 코드 200을 그래프로 표시합니다.

rate(promhttp_metric_handler_requests_total{code="200"}[1m])

그래프 범위 매개변수 및 기타 설정을 실험할 수 있습니다.

7 다른 대상 모니터링[ | ]

Prometheus에서만 메트릭을 수집하는 것은 Prometheus의 역량을 충분히 나타내지 못합니다. Prometheus가 무엇을 할 수 있는지 더 잘 이해하려면 다른 익스포터에 대한 문서를 살펴보는 것이 좋습니다. 노드 익스포터를 사용하여 Linux 또는 macOS 호스트 메트릭 모니터링하기 가이드가 시작하기에 좋은 곳입니다.

8 요약[ | ]

이 가이드에서는 Prometheus를 설치하고, 리소스를 모니터링하기 위해 Prometheus 인스턴스를 설정하고, Prometheus의 표현식 브라우저에서 시계열 데이터로 작업하는 기본 사항을 알아보았습니다. Prometheus에 대해 계속 알아보려면 개요를 보고 다음에 무엇을 탐색할지에 대한 아이디어를 얻으세요.

9 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}