Docker에 Prometheus, Grafana 간단 적용

bw1611·2023년 8월 13일
0

SpringBoot

목록 보기
5/6

프로젝트 설정

  • docker-compose.yml
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' ]
  • targets으로 local 수준에서 서로 통신할 수 있도록 설정해준다.

docker에서 prometheus와 grafama 실행

  • docker compose up -d
    - docker compose로 실행된 서비스들을 백그라운드로 실행

만약 “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로 파일을 생성하여 실행하면 된다.


NPM(Nginx Proxy Manager)에서 /actuator로 접근 불가하게 설정

  • /actuator로 Prometheus와 Grafana가 정보를 주고받기 때문에 보안의 이유로 설정
    ( NPM에서 Proxy Host → 사이트 도메인 → … → Edit → Advanced에서 설정 )
location ~ ^/actuator {
    deny all;
    return 403;
}
profile
Java BackEnd Developer

0개의 댓글