Prometheus 첫걸음


개요

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

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

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를 시작하기 전에, 먼저 설정을 해 보겠습니다.

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 서버의 상태와 성능에 대한 상세한 내용이 들어 있습니다.

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

Prometheus 시작하기

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

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

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

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

표현식 브라우저 사용

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)

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

그래프 인터페이스 사용

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

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

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

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

다른 대상 모니터링

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

요약

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

참고