Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Kubernetes
- optional chaining
- 온프레미스
- 자바스크립트
- Service
- Custom Resource
- AWS
- vgw
- api gateway
- VPC
- Await
- JavaScript
- cognito
- 단축 평가
- Site-to-Site VPN
- grafana
- On-Premise
- 비구조화 할당
- 옵셔널 체이닝
- elasticsearch
- Proxy Resource
- docker
- DynamoDB
- 구조분해 할당
- transit gateway
- prometheus
- CloudFormation
- docker swarm
- null 병합 연산자
- Endpoints
Archives
- Today
- Total
만자의 개발일지
[Prometheus] Docker 메트릭 수집하기 본문
Promtheus에서 Docker 메트릭을 수집하여 모니터링할 수 있습니다. 다만 Docker에서 기본적으로 제공하지는 않으므로 추가적인 설정이 필요합니다.
Docker 메트릭 수집
아래 예제는 AWS EC2(Amazon Linux 2)에서 진행하였습니다.
JSON 파일 설정
다음과 같이 vi 편집기로 daemon.json 파일을 열어줍니다.
$ sudo vi /etc/docker/daemon.json
아래와 같이 코드를 작성한 후 저장합니다. 공식 문서에서는 9323포트를 권장하지만 다른 포트를 사용하셔도 무방합니다.
{
"metrics-addr" : "0.0.0.0:9323",
"experimental" : true
}
docker를 재실행 합니다.
$ systemctl restart docker
/metrics 경로로 요청을 보내 정상적으로 작동하는지 확인합니다.
$ curl localhost:9323/metrics
# HELP builder_builds_failed_total Number of failed image builds
# TYPE builder_builds_failed_total counter
builder_builds_failed_total{reason="build_canceled"} 0
builder_builds_failed_total{reason="build_target_not_reachable_error"} 0
builder_builds_failed_total{reason="command_not_supported_error"} 0
builder_builds_failed_total{reason="dockerfile_empty_error"} 0
builder_builds_failed_total{reason="dockerfile_syntax_error"} 0
builder_builds_failed_total{reason="error_processing_commands_error"} 0
builder_builds_failed_total{reason="missing_onbuild_arguments_error"} 0
builder_builds_failed_total{reason="unknown_instruction_error"} 0
# HELP builder_builds_triggered_total Number of triggered image builds
# TYPE builder_builds_triggered_total counter
builder_builds_triggered_total 0
# HELP engine_daemon_container_actions_seconds The number of seconds it takes to process each container action
# TYPE engine_daemon_container_actions_seconds histogram
engine_daemon_container_actions_seconds_bucket{action="changes",le="0.005"} 1
engine_daemon_container_actions_seconds_bucket{action="changes",le="0.01"} 1
.
.
.
# HELP swarm_store_write_tx_latency_seconds Raft store write tx latency.
# TYPE swarm_store_write_tx_latency_seconds histogram
swarm_store_write_tx_latency_seconds_bucket{le="0.005"} 0
swarm_store_write_tx_latency_seconds_bucket{le="0.01"} 0
swarm_store_write_tx_latency_seconds_bucket{le="0.025"} 0
swarm_store_write_tx_latency_seconds_bucket{le="0.05"} 0
swarm_store_write_tx_latency_seconds_bucket{le="0.1"} 0
swarm_store_write_tx_latency_seconds_bucket{le="0.25"} 0
swarm_store_write_tx_latency_seconds_bucket{le="0.5"} 0
swarm_store_write_tx_latency_seconds_bucket{le="1"} 0
swarm_store_write_tx_latency_seconds_bucket{le="2.5"} 0
swarm_store_write_tx_latency_seconds_bucket{le="5"} 0
swarm_store_write_tx_latency_seconds_bucket{le="10"} 0
swarm_store_write_tx_latency_seconds_bucket{le="+Inf"} 0
swarm_store_write_tx_latency_seconds_sum 0
swarm_store_write_tx_latency_seconds_count 0
위와 같이 Docker 엔진(daemon)에 관한 메트릭부터 Docker Swarm에 관한 메트릭까지 제공합니다.
이제 Prometheus에서 해당 메트릭을 수집해 모니터링 환경을 구성할 수 있습니다.
Prometheus 타겟 설정
다음과 같이 Prometheus YAML파일을 구성합니다. 위에서 설정한 Docker 데몬을 타겟으로 지정합니다.
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
- job_name: "Docker"
static_configs:
- targets: ["localhost:9323"]
Prometheus를 실행한 후 메트릭을 잘 불러오는지 확인합니다.
참고
'Monitoring > Prometheus' 카테고리의 다른 글
[Prometheus] Node Exporter란? (1) | 2022.07.28 |
---|---|
[Prometheus] Prometheus 설치하기 (0) | 2022.07.27 |
[Prometheus] Prometheus란? (0) | 2022.07.27 |
Comments