이번 강의에서는 Prometheus를 설정하고 이를 Grafana와 통합하는 방법을 다루겠습니다. 이후, Docker Compose를 사용하여 Prometheus와 Grafana를 설정하고, 이를 통해 마이크로서비스의 메트릭스를 모니터링하는 데모를 살펴보겠습니다.
먼저, 현재 실행 중인 모든 마이크로서비스 인스턴스를 중지합니다. 이를 통해 새로운 설정을 테스트할 수 있는 깨끗한 환경을 마련합니다.
docker-compose down
이제 Prometheus 설정 파일을 추가합니다. observability
폴더 안에 prometheus
폴더를 생성하고, 그 안에 prometheus.yml
파일을 추가합니다.
mkdir -p observability/prometheus
touch observability/prometheus/prometheus.yml
prometheus.yml
파일 내용:global:
scrape_interval: 5s
evaluation_interval: 5s
scrape_configs:
- job_name: 'accounts'
metrics_path: '/actuator/prometheus'
static_configs:
- targets: ['accounts:8080']
- job_name: 'loans'
metrics_path: '/actuator/prometheus'
static_configs:
- targets: ['loans:8090']
- job_name: 'cards'
metrics_path: '/actuator/prometheus'
static_configs:
- targets: ['cards:9000']
- job_name: 'gateway'
metrics_path: '/actuator/prometheus'
static_configs:
- targets: ['gatewayserver:8072']
- job_name: 'eureka'
metrics_path: '/actuator/prometheus'
static_configs:
- targets: ['eurekaserver:8070']
- job_name: 'config'
metrics_path: '/actuator/prometheus'
static_configs:
- targets: ['configserver:8071']
scrape_interval
와 evaluation_interval
을 각각 5초로 설정하여 Prometheus가 5초마다 메트릭스를 수집하고 평가하도록 합니다.prometheus
서비스를 추가하여 Docker Compose 파일을 업데이트합니다.
docker-compose.yml
파일을 열고, Grafana
서비스 위에 Prometheus
서비스를 추가합니다.
services:
prometheus:
image: prom/prometheus:latest
container_name: prometheus
ports:
- "9090:9090"
volumes:
- ./observability/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
networks:
- easybank
grafana:
# ... 기존 Grafana 설정
volumes:
- ./observability/grafana/datasource.yml:/etc/grafana/provisioning/datasources/datasource.yml
prom/prometheus:latest
이미지를 사용하여 Prometheus를 설정합니다. 이 서비스는 포트 9090에서 실행되며, 이전에 생성한 prometheus.yml
파일을 컨테이너 내의 /etc/prometheus/prometheus.yml
경로로 복사합니다.Grafana와 Prometheus를 연동하기 위해 datasource.yml
파일을 설정합니다.
observability/grafana
폴더를 생성하고, datasource.yml
파일을 추가합니다.
mkdir -p observability/grafana
touch observability/grafana/datasource.yml
datasource.yml
파일 내용:apiVersion: 1
deleteDatasources:
- name: Prometheus
- name: Loki
datasources:
- name: Prometheus
type: prometheus
access: proxy
url: http://prometheus:9090
isDefault: true
editable: true
- name: Loki
type: loki
access: proxy
url: http://loki:3100
isDefault: false
editable: true
url
에서 Prometheus가 실행 중인 위치를 지정합니다.모든 설정이 완료되었으므로 Docker Compose를 사용하여 모든 서비스를 시작합니다.
docker-compose up -d
이 명령어로 Prometheus와 Grafana를 포함한 모든 서비스를 백그라운드에서 실행합니다.
Docker Compose가 모든 서비스를 성공적으로 시작한 후, 브라우저에서 Prometheus와 Grafana를 확인할 수 있습니다.
http://localhost:9090
에서 Prometheus UI에 접근할 수 있습니다.http://localhost:3000
에서 Grafana UI에 접근할 수 있으며, admin/admin
으로 로그인 후 대시보드를 설정할 수 있습니다.이번 강의에서는 Prometheus와 Grafana를 설정하고, 이를 통해 마이크로서비스의 메트릭스를 모니터링하는 방법을 살펴보았습니다. 다음 강의에서는 Grafana에서 대시보드를 설정하고 메트릭스를 시각화하는 방법을 다루겠습니다.