본문으로 바로가기

Prometheus & Grafana & Spring boot 모니티링 하기

category SPRING/스프링부트 2023. 7. 31. 11:43
728x90
반응형
SMALL

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 한다.

아래처럼 시각자료가 만들어졌다!!

이걸 기반으로 모니터링을 하면된다!

by 윤주영.

728x90
반응형
LIST