1. Prometheus & Grafana & Spring boot 모니티링 하기
1. prometheus.yml과 docker-compose.yml로 prometheus를 실행하자.
prometheus.yml
global:
scrape_interval: "15s"
evaluation_interval: "15s"
scrape_configs:
- job_name: "springboot"
metrics_path: "/test/prometheus"
static_configs:
- targets:
- "192.168.2.118:10118"
scrape_confings 에 감시 대상 정보를 입력한다.
metrics_path 와 targets 만 주의해서 작성하면 된다.
metrics_path는 2번 목차에서 actuator 접속 url과 일치해야한다.
targets은 감시 대상인 스프링 부트 모듈의 ip와 port번호를 기입한다.
docker-compose.yml
version: '3'
services:
prometheus:
container_name: prometheus_v1
image: prom/prometheus:latest
ports:
- 10229:9090
volumes:
- /hdd/apps/test/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
http://{Prometheus가 설치된 서버ip입력}:10229
로 접속 확인
2. 스프링 모듈에 의존성을 등록하자
build.gradle
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'io.micrometer:micrometer-registry-prometheus:1.11.2'
}
application.properties
server.port=10118
spring.application.name=test
management.endpoints.web.base-path=/${spring.application.name}
management.endpoints.web.exposure.include=*
actuator url로 접속하여 prometheus endpoint 가 생성되었는지 확인하자.
아래의 prometheus 의 href 주소 값
이랑 이전의 prometheus.yml
에 선언되어있는
job_name: "springboot" 의 metrics_path: "/test/prometheus"
부분이 일치해야한다.
3. Prometheus 웹 사이트에서 Spring Boot 가 연동된것을 확인한다.
Status - Targets
이동
내가 등록한 스프링 부트의 모듈을 확인할 수 있다.
다시 메인 페이지로 가서 http_server_requests_active_seconds_max
같은 정보들을 검색해보면 등록한 모듈에 대한 정보가 나온다.
그러나 일일이 개발자가 검색하기도 까다롭고 직관적이지도 않다. 때문에 Grafana 랑 Prometheus의 api를 이용하여 직관적으로 보여줄것이다.
4. Grafana 세팅 및 접속
docker-compose.yml
version: '3'
services:
prometheus:
container_name: prometheus_v1
image: prom/prometheus:latest
ports:
- 10229:9090
volumes:
- /hdd/apps/test/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
grafana:
image: grafana/grafana:latest
container_name: grafana_v1
user: "$UID:$GID"
ports:
- 3001:3000
volumes:
- /hdd/apps/test/prometheus/grafana-data:/var/lib/grafana
depends_on:
- prometheus
이전의 prometheus 아래에 바로 연달아 선언해준다.
docker-compose up -d
로 실행해준뒤에 Grafana url에 접속해보자
http://{Grafana가 설치된 서버ip입력}:3001
초기 접속id와 비밀번호는 admin / admin
5. Grafana 에서 Prometheus 연동
Home - Connections - Data sources
메뉴를 들어가서
Add data source 버튼을 클릭한다.
Prometheus 클릭
Name 칸에 원하는 이름
과 Connection에 Prometheus의 접속 url
를 기입한다.
그리고 Save & test 버튼을 클릭하여 저장한다.
연동은 끝났으나 이제 시각자료를 만들어주어야 한다.
6. Grafana에서 시각자료 만들어주기
Home - Dashboards
이동해서
Create Dashboard 버튼 클릭
Import dashboard 클릭
https://grafana.com/grafana/dashboards/ 에서 원하는 시각자료를 import 해올것이다.
원하는 시작 자료를 찾아서 Dashboard ID copy 버튼을 클릭하자.
COPY 한 번호를 Load 란에 기입후 Load 버튼 클릭
아래처럼 Load가 되었고 Prometheus 란에 아까 연동한 스프링 모듈 감시하기
를 클릭하고 Save 한다.
아래처럼 시각자료가 만들어졌다!!
이걸 기반으로 모니터링을 하면된다!