🔥스파르타 TIL (MSA)

Grafana를 사용해보자

승승장규 2025. 4. 18. 11:31
 

Prometheus를 사용해보자

Prometheus란 시간에 따라 수집된 시계열 데이터를 기반으로 하는 모니터링 및 경고 시스템으로, 서버, 컨테이너, 애플리케이션, 마이크로서비스 등에서 메트릭을 수집하고, 이를 저장 및 분석하는

seungg8361.tistory.com

이전에 사용했던 Prometheus를 Grafana를 통해 확인해보자

 

Grafana는 오픈소스 데이터 시각화 및 모니터링 도구로, 대시보드를 생성하고 데이터를 그래프나 차트 형태로 표현하며, 알림 기능으로 모니터링을 강화할 수 있다.

 

주요기능

  • 대시보드 : 데이터를 시각화할 수 있는 대시보드를 생성할 수 있도록 한다. ex) 그래프, 차트, 게이지 등
  • 데이터 소스 지원 : Prometheus, Elasticsearch, MySQL, PostgreSQL 등 다양한 데이터 소스를 지원한다.
  • 알림 기능 : 설정해놓은 조건이 충족되면 이메일, Slack 등 다양한 채널을 통해 알림을 보내고, 이를 통해 실시간으로 시스템의 상태를 모니터링하고 문제가 발생했을 때 즉시 대응할 수 있다.
  • 플러그인 지원 : 플러그인 아키텍처를 지원하며, 다양한 플러그인을 통해 기능을 확장할 수 있다.
  • 사용자 관리 : 대시보드와 데이터 소스에 대한 접근 권한을 설정할 수 있어서 팀 내에서 협업을 강화하고 데이터 보안을 유지할 수 있다.

docker-compose로 Grafana를 실행해보자

services:
  grafana:
    image: grafana/grafana
    container_name: grafana
    ports:
      - "3000:3000"
    environment:
      - GF_SECURITY_ADMIN_USER={로그인} # default 는 admin
      - GF_SECURITY_ADMIN_PASSWORD={비밀번호} # default 는 admin
    volumes:
      - grafana-storage:/var/lib/grafana
    restart: always

 

docker-compose up -d를 통해 실행시킨 뒤, http://localhost:3000에 접속한 뒤에 로그인을 진행해주면,

Grafana 대시보드가 잘 보이는 것을 확인할 수 있다. 이제 이전에 작업한 Prometheus를 활용해보자

 

우선 Data sources에 들어가서 Add data source를 클릭하면

추가할 수 있는 Data source가 다양하게 존재하는데 지금은 Prometheus를 추가해보도록 하겠습니다.

지금은 간단한 실습 중이므로 별 다른 설정없이 Prometheus를 docker로 띄웠기 때문에 host.docker.internal로 설정한 뒤 쭉 아래로 내려서 save & test를 해주면

성공적으로 연동이 된 것을 볼 수 있다.

이제 간단하게 대시보드를 만들어보자

우선 Dashboards에서 Create dashboard를 클릭하면

이런 화면이 뜨게 되는데 지금은 대시보드를 커스텀할 정도로 학습되지 않았기 때문에 Import dashboard를 통해 잘 만들어진 대시보드를 가져와 보겠습니다.

여기서 grafana.com/dashboards 링크를 클릭하면

잘 만들어진 대시보드를 간단하게 추가할 수 있는데 현재는 spring boot 3 버전을 사용하고 있으므로 검색창에 spring boot 3을 검색하면

이런 대시보드가 뜨게되고 

Copy ID to clipboard를 카피해서 

Find and import dashboards for common application 밑에 붙여넣어준 뒤 Load를 클릭하면 된다.

이제 여기서 Prometheus에 아까 등록한 Prometheus를 적용시킨 뒤 import를 클릭하면

아주 성공적으로 대시보드를 불러온 것을 볼 수 있다.

 

이 대시보드를 통해 어느 시간대에 얼마나 많은 접속량이 들어오는지 모니터링을 통해 신속하게 대응할 수 있고, 그래프에서 갑자기 튀는 지점을 보면, 그 시점에 무슨 일이 있었는지 추적하기 쉽기 때문에 장애대응에 좋은 이점을 갖고있다.