services:
prometheus:
image: prom/prometheus
container_name: prometheus
restart: always
env_file:
- .env
ports:
- ${PROMETHEUS_BINDING_PORT}:${PROMETHEUS_PORT}
volumes:
- ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro
user: root
networks:
- promnet
grafana:
image: grafana/grafana
container_name: grafana
restart: always
env_file:
- .env
ports:
- ${GRAFANA_BINDING_PORT}:${GRAFANA_PORT}
user: root
networks:
- promnet
networks:
promnet:
driver: bridge
/actuator/**
---
### monitoring
management:
server:
port: ${MANAGEMENT_SERVER_PORT}
endpoint:
metrics:
enabled: true
prometheus:
enabled: true
endpoints:
web:
exposure:
include: prometheus
// string boot actuator, prometheus
implementation "org.springframework.boot:spring-boot-starter-actuator"
implementation "io.micrometer:micrometer-registry-prometheus"
global:
scrape_interval: 10s
evaluation_interval: 10s
scrape_configs:
- job_name: 'novelit'
metrics_path: /actuator/prometheus
static_configs:
- targets: ['${production 서버 IP}:${spring boot 서버포트}']
- job_name: 'novelit-aws'
metrics_path: /metrics
static_configs:
- targets: ['${production 서버 IP}:${node-exporter port}']
docker pull prom/prometheus
docker-compose up -d
node-exporter:
image: prom/node-exporter
container_name: node-exporter
env_file:
- .env
ports:
- ${NODE_EXPORTER_BINDING_PORT}:${NODE_EXPORTER_PORT}
networks:
- backend
docker pull prom/node-exporter
docker-compose up -d
docker-compose에 잘 적어놨다면 추가 할것이 딱히 없다.
그라파나는 접속해서 비밀번호를 재설정해주고, node-exporter를 사용하고 prometheus를 import해서 사용하기만하면된다.
granfana의 기본 포트는 3000이다.
monitoring server ip의 grafana 포트로 접속한다.
아이디는 docker-compose.yml에 설정한대로이고, 초기 비밀번호는 admin이다. 접속하고 비밀번호를 변경하면된다.
접속한후 대시보드로 들어가서 New-import로 들어가자
node-exporter의 대시보드 ID는 1860이다. load하자.
로드한뒤에는 네이밍을 해주고,
프로메테우스 데이터 소스를 설정한다.
이부분이 중요하다. 처음에 할때 이부분에서 헤멧다. 첫번째 블로그에 모니터링IP:프로메테우스포트 로 되어있는데, 모니터링 IP가 production IP가 아니라 Monitoring IP를 의미하는것이다.
save&test를 눌러주면 대시보드가 생성된다.
들어가서, 적용한 데이터소스로 전환해주면
그에따른 대시보드 현황이 표시된다.
너무 많이 생성된 데이터 소스는 connection - datasource에서 목록을 볼수있는데, 들어가서 삭제하면된다.
설정 끝.