소개
Prometheus 는 SoundCloud 에서 처음 개발된 강력한 오픈 소스 모니터링 및 알림 도구입니다. 클라우드 네이티브 환경에서 모니터링의 표준으로 자리 잡았습니다. 주요 기능으로는 다차원 데이터 모델, 유연한 쿼리 언어 (PromQL), 다양한 시각화 옵션이 있습니다.
이 랩에서는 Docker 를 사용하여 Prometheus 인스턴스를 가장 간단하게 설정하고 실행하는 방법을 배웁니다. 이 접근 방식은 복잡한 설치 단계를 피하고 Prometheus 를 빠르게 탐색할 수 있도록 합니다. 공식 Docker 이미지를 가져와 컨테이너로 실행하고 웹 인터페이스와 상호 작용하게 됩니다.
Prometheus Docker 이미지 가져오기
이 단계에서는 Docker Hub 에서 공식 Prometheus Docker 이미지를 가져옵니다. Docker Hub 는 Docker 이미지의 공개 레지스트리이며, prom/prometheus는 Prometheus 팀에서 관리하는 공식 이미지입니다.
docker pull 명령은 지정된 이미지를 로컬 머신으로 다운로드하여 컨테이너로 실행할 수 있도록 합니다.
Prometheus 이미지의 최신 버전을 가져오려면 터미널에서 다음 명령을 실행하십시오.
docker pull prom/prometheus
이미지 레이어가 다운로드되고 있음을 나타내는 출력이 표시됩니다. 완료되면 이미지가 로컬에 저장됩니다.
예상 출력 (버전 번호는 다를 수 있습니다):
Using default tag: latest
latest: Pulling from prom/prometheus
a4ca46b05734: Pull complete
542b5806d2b7: Pull complete
...
Digest: sha256:2c785d4e9af2224941598d142337931a5f8333065916938c6444294020b45f50
Status: Downloaded newer image for prom/prometheus
docker.io/prom/prometheus
Prometheus 컨테이너를 포트 9090 에서 실행
이 단계에서는 방금 가져온 이미지를 사용하여 Prometheus 컨테이너를 실행합니다. docker run 명령을 사용하여 컨테이너를 생성하고 시작합니다.
사용할 명령 옵션은 다음과 같습니다.
-d: 컨테이너를 분리 모드 (백그라운드) 로 실행합니다.-p 9090:9090: 호스트 머신의 9090 포트를 컨테이너의 9090 포트로 매핑합니다. Prometheus 의 웹 UI 는 기본적으로 9090 포트에서 실행됩니다.--name prometheus: 컨테이너에 쉽게 참조할 수 있도록prometheus라는 기억하기 쉬운 이름을 할당합니다.prom/prometheus: 컨테이너를 생성하는 데 사용할 이미지를 지정합니다.
Prometheus 컨테이너를 시작하려면 다음 명령을 실행하십시오.
docker run -d -p 9090:9090 --name prometheus prom/prometheus
명령은 긴 컨테이너 ID 를 출력하여 컨테이너가 시작되었음을 확인합니다.
컨테이너가 실행 중인지 확인하려면 실행 중인 모든 컨테이너를 나열하는 docker ps 명령을 사용할 수 있습니다.
docker ps
목록에서 prometheus 컨테이너가 "Up" 상태로 표시되어야 합니다.
예상 출력:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a1b2c3d4e5f6 prom/prometheus "/bin/prometheus --c…" A few seconds ago Up a few seconds 0.0.0.0:9090->9090/tcp prometheus
localhost:9090 에서 Prometheus 웹 UI 접속
이 단계에서는 현재 실행 중이며 9090 포트로 노출된 Prometheus 웹 인터페이스에 접속합니다. LabEx 환경은 가상 머신 내에서 실행되는 웹 서비스에 편리하게 접근할 수 있는 방법을 제공합니다.
랩 인터페이스 상단에 있는 +(새 탭) 버튼을 클릭합니다.
Web Service 옵션을 선택하고 포트로 9090을 입력합니다.

그러면 랩 환경에서 실행 중인 서비스에 연결된 새 브라우저 탭이 열립니다.
9090 포트를 매핑했기 때문에 Prometheus UI 를 사용할 수 있습니다. 메인 랜딩 페이지인 Prometheus Expression Browser 가 표시됩니다. 이 인터페이스를 통해 PromQL 쿼리를 작성하고 실행하여 메트릭을 탐색할 수 있습니다.

이 페이지가 표시되는 것은 Prometheus 컨테이너가 올바르게 실행 중이며 접근 가능하다는 것을 확인시켜 줍니다.
Prometheus 서비스 상태 확인
이 단계에서는 Prometheus UI 를 사용하여 Prometheus 서비스 자체의 상태 및 런타임 정보를 확인합니다.
이전 단계에서 연 Prometheus 웹 UI 에서 상단 탐색 메뉴의 Status를 클릭한 다음 Runtime & Build Information을 선택하여 상태 페이지로 이동합니다.
이 페이지에는 버전, 빌드 날짜 및 컴파일된 Go 버전 등 실행 중인 Prometheus 인스턴스에 대한 자세한 정보가 표시됩니다. 이는 서비스가 완전히 작동 중인지 확인하는 좋은 방법입니다.
Prometheus 서버의 상태 및 메트릭을 확인하는 또 다른 방법은 /metrics 엔드포인트에 액세스하는 것입니다. 이 엔드포인트는 Prometheus 자체에 대한 풍부한 내부 메트릭을 노출합니다. 터미널에서 curl을 사용하여 이 데이터를 볼 수 있습니다.
curl http://localhost:9090/metrics
출력은 Prometheus 노출 형식의 긴 메트릭 목록입니다. 엔드포인트가 작동하는지 확인하려면 prometheus_build_info와 같은 메트릭을 찾으십시오.
예상 출력 일부:
## HELP prometheus_build_info A metric with a constant '1' value labeled with the version, revision, branch, and goversion from which prometheus was built.
## TYPE prometheus_build_info gauge
prometheus_build_info{branch="HEAD",goversion="go1.19.5",revision="233d305681c0da67c694b01d832131d173a0552b",version="2.41.0"} 1
...
Prometheus UI 에서 기본 타겟 탐색
이 단계에서는 Prometheus 의 "타겟 (targets)" 개념을 탐색합니다. 타겟은 Prometheus 가 메트릭을 스크랩 (스크랩) 하는 엔드포인트입니다. 기본적으로 Prometheus 서버는 자체를 모니터링하도록 구성되어 있습니다.
Prometheus 웹 UI 에서 Status 메뉴를 클릭한 다음 Targets를 선택하여 타겟 페이지로 이동합니다.
이 페이지에는 구성된 모든 스크랩 타겟 목록이 표시됩니다. prometheus라는 이름의 타겟 그룹과 단일 엔드포인트인 http://localhost:9090/metrics가 표시되어야 합니다. 이것은 Prometheus 서버 자체의 메트릭 엔드포인트입니다.

State 열에 주의하십시오. 녹색으로 UP으로 표시되어야 합니다. 이는 Prometheus 가 타겟에 성공적으로 연결하고 메트릭을 스크랩하고 있음을 나타냅니다. 타겟 연결에 문제가 있었다면 상태는 "DOWN"이었을 것입니다. 이 페이지는 메트릭 수집 문제를 진단하는 데 중요합니다.
요약
축하합니다! Docker 를 사용하여 Prometheus 인스턴스를 성공적으로 설치하고 실행했습니다. 이 실습을 통해 업계에서 가장 인기 있는 모니터링 도구 중 하나인 Prometheus 를 시작하는 방법에 대한 실습 소개를 제공했습니다.
이 실습에서는 다음을 배웠습니다.
- Docker Hub 에서 공식 Prometheus Docker 이미지를 가져오는 방법.
- Prometheus 컨테이너를 실행하고 포트를 호스트에 매핑하는 방법.
- Prometheus 웹 UI 에 액세스하고 탐색하는 방법.
- UI 및 메트릭 엔드포인트를 통해 서비스 상태를 확인하는 방법.
- 기본 모니터링 타겟 구성을 탐색하는 방법.
이제 Prometheus 를 배포하는 방법에 대한 기초적인 이해를 갖추었습니다. 다음 단계에서는 다른 애플리케이션 및 서비스를 모니터링하기 위한 사용자 지정 구성 파일을 만드는 방법을 배우는 것이 될 수 있습니다.



