Spring
Grafana와 프로메테우스 연동하기
템잘알
2025. 5. 15. 11:42
728x90
Prometheus란?
- 무엇?
서버나 프로그램이 잘 돌아가는지 실시간으로 숫자 데이터를 수집해주는 시스템이에요. - 예시
CPU가 얼마나 바쁜지, 메모리를 얼마나 쓰는지, 웹사이트가 몇 번 호출됐는지 숫자로 기록해요. - 특징
- 매초마다 데이터를 모아서 저장해요.
- 필요할 때 꺼내 볼 수 있어요.
Grafana란?
- 무엇?
Prometheus가 모은 숫자 데이터를 차트나 그래프로 예쁘게 보여주는 도구예요. - 예시
CPU 사용량이 시간에 따라 오르는 모습을 그래프로 한눈에 볼 수 있어요. - 특징
- 사용자들이 쉽게 볼 수 있게 대시보드를 만들 수 있어요.
- 경고(알림)도 설정할 수 있어요. (예: CPU가 너무 바쁘면 알려줘!)
쉽게 말해둘이 같이 써야 진짜 힘을 발휘
- Prometheus는 숫자 데이터 모으는 친구
Grafana는 그 데이터를 예쁘게 보여주는 친구
먼저 Granafa 설치필요!
Grafana를 설치하기 위한 자세한 정보는 아래 링크를 통해 확인할 수 있다.
- 윈도우버전
- Red Hat, CentOS, RHEL, and Fedora(64 Bit) 계열의 리눅스 환경에서 설치버전
- 먼저 공식 문서에서 제공하는 것 처럼 아래 명령어를 실행한다.
$ wget https://dl.grafana.com/oss/release/grafana-6.7.2-1.x86_64.rpm $ sudo yum install grafana-6.7.2-1.x86_64.rpm
- 실행 후 http://localhost:3000 에 접속해보자. 다음과 같이 Grafana login 화면을 볼 수 있다. 기본 ID/PW인 admin/admin
- Granafa에서 프로메테우스 설정하기
- Datasoure 에서 add data source 프로메테우스 추가하기
- URL 부분에 프로메테우스 URL 설정 후 SAVE&TEST로 연결 확인!
- 원하는 값 모니터링하기 (add panel 버튼 클릭후 커스텀하기!)
- request 요청수에 대한 커스터마이징 성공
- pom.xml에 다음과 같이 설정한다.
<!-- 프로메테우스 연동-->
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
- application.yml에 다음과 같이 설정한다.
management:
endpoints:
metrics:
enabled: true
prometheus:
enabled: true
- 프로메테우스를 공식 홈페이지에서 다운로드후 실행하면 아래와 같다
- 프로메테우스에서 target 설정은 prometheus.yml 에서 Spring boot 서버의 타겟을 설정한다. static_configs: - targets: ["localhost:8080"] metrics_path: '/actuator/prometheus'
- 프로메테우스 실행 후 기본 port는 9090이다.
잘 연결되었는지 확인 하는 방법!
먼저 서버에 reqeust를 요청해보고 (/city/get/1) 프로메테우스에서 요청 시간에 대한 값을 수집함을 확인한다.
사용 소감
- 생각보다 쉬움
복잡할 줄 알았는데, Grafana에서 주소만 등록하면 끝이라서 금방 됐어요. - 바로 확인 가능
Prometheus가 모은 데이터를 실시간 그래프로 시각화해주니
관리자 입장에서 상태를 한눈에 확인할 수 있어서 좋았어요. - 알람 설정도 간편
특정 수치를 넘으면 이메일이나 슬랙 알림도 바로 설정할 수 있었어요.
아쉬운 점
- Prometheus 설정이 YAML이라 초보자에겐 낯설 수 있음
- Grafana 사용법이 처음엔 살짝 복잡하게 느껴짐
728x90