version: "3.7"
services:
prometheus:
image: prom/prometheus
volumes:
- 해당 파일의 경로/prometheus.yml:/etc/prometheus/prometheus.yml # 현재 디렉토리의 prometheus.yml 파일을 컨테이너의 /etc/prometheus/prometheus.yml 위치에 마운트
ports:
- "9090:9090"
grafana:
image: grafana/grafana
ports:
- "3000:3000"
docker-compose.yml은 여러 Docker 컨테이너들을 정의하고 실행하기 위한 설정을 담는다.
volumes로 프로젝트 내에 만든 prometheus.yml 파일을 원래 위치해야 하는 파일 위치와 마운트 시켜준다.
prometheus.yml
# my global config
global:
scrape_interval: 15s
evaluation_interval: 15s
# Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets:
rule_files:
scrape_configs:
- job_name: "prometheus"
static_configs:
- targets: ["172.17.0.1:9090"]
- job_name: "spring-actuator" # 아무거나 가능
metrics_path: '/actuator/prometheus'
scrape_interval: 1s
static_configs:
- targets: [ '172.17.0.1:8080' ]
만약 “docker: Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: (중략)” 와 같은 오류가 나온다면 dokcer-compose.yml에 적은 promethes.yml 파일의 경로가 잘못되었거나 없는 경우다.
이럴 경우 파일이 배포 환경에 없다면 vi prometheous.yml로 파일을 생성하여 실행하면 된다.
location ~ ^/actuator {
deny all;
return 403;
}