MSA 환경에서는 각각의 서비스가 독립적으로 배포되고 운영됩니다. ex)유저 서비스, 결제 서비스, 주문 서비스 등.
이때 발생할 수 있는 문제점에는 만약 서비스 수가 많아질수록 모니터링이 복잡해지고, 서비스 간 통신 장애, 특정 서비스만 에러 발생 등의 문제가 발생할 수 있다.
이런 문제를 해결하기 위해 Grafana에서는 알림을 보낼 수 있는 기능이 있다. 만약 서비스가 느려지거나 특정 지표(CPU, 메모리, 에러율 등)가 기준치를 넘을 경우 자동으로 감지해서 알림을 보내준다. 이러한 기능으로 로그를 보지 않고도 자동 알림을 통해 문제를 인지할 수 있어 운영 부담이 줄어들고, SLA(Service Level Agreement)를 만족하기 위해 실시간 모니터링과 빠른 대응을 할 수 있다.
Grafana를 사용해보자
Prometheus를 사용해보자Prometheus란 시간에 따라 수집된 시계열 데이터를 기반으로 하는 모니터링 및 경고 시스템으로, 서버, 컨테이너, 애플리케이션, 마이크로서비스 등에서 메트릭을 수집하고,
seungg8361.tistory.com
이제 Grafana를 통해 알람을 보낼 메일을 추가해보자 (Slack, Discord 등등 다양한 기능을 제공해준다.)
우선 Grafana에 접속해서 Contact points를 클릭한다.
default로 Mail이 설정되어 있기 때문에 Edit을 눌러 사용할 메일 주소로 변경해주면 된다.
Test를 클릭하고 Send test notification을 클릭하면 grafana.ini에 SMTP를 설정해야 한다는 에러가 발생하게 되는데
Slack이나 Discord에서 사용하는 Webhook과 다르게 메일로 인증을 할 때는 SMTP를 설정해주어야 한다.
Gmail을 사용할 것이기 때문에 Gmail에 SMTP를 사용하기 위한 앱 비밀번호를 생성해야한다.
우선 구글 계정 보안에 접속해서 2단계 인증을 클릭해준다.
2단계 인증 사용을 클릭하거나, 전화번호 인증을 진행하면 아래와 같이 2단계 인증을 사용할 수 있게 된다.
이제 앱 비밀번호를 생성하기 위해 앱 비밀번호를 검색해서 클릭해주면
다음과 같이 앱 비밀번호를 생성하기 위해 앱을 생성하는 칸이 나오는데 이름은 Grafana에서 사용할 것이기 때문에 예시로 Grafana라고 설정해주었다. 이후 만들기를 클릭하면 16자리로 된 비밀번호가 뜨게 되는데 그걸 그대로 복사해서 잘 보관해두자
이제 grafana.ini에 SMTP설정을 하기 위해서 필요한 설정은 먼저 grafana.ini 파일이 있는지 확인을 해야한다. 만약 없다면 생성을 해준 뒤 터미널에서 해당 경로로 접속한뒤 grafana.ini 파일을 수정하기 위한 명령어를 사용한다.
nano ~/grafana/config/grafana.ini
이후 해당 설정을 작성하고 저장한 뒤
[smtp]
enabled = true
host = smtp.gmail.com:587 ; SMTP 서버 주소:포트 (예: Gmail 사용 시)
user = "{이메일 주소}@gmail.com"
password = "앱비밀번호" ; (16자리)
from_address = "{이메일 주소}@gmail.com"
from_name = Grafana
skip_verify = false
해당 docker-compose.yml 파일에 volume으로 추가해준다.
services:
grafana:
image: grafana/grafana
container_name: grafana
ports:
- "3000:3000"
environment:
- GF_SECURITY_ADMIN_USER=admin
- GF_SECURITY_ADMIN_PASSWORD=admin
volumes:
- grafana-storage:/var/lib/grafana
- ~/grafana/config/grafana.ini:/etc/grafana/grafana.ini
restart: always
volumes:
grafana-storage:
그리고 다시 Grafana로 돌아가서 Test를 진행해주면
성공적으로 메일을 보낼 수 있는 것을 확인할 수 있다.
다음에는 CPU, 메모리 등등 임계치를 설정한 뒤 알람이 잘 전송되는지 테스트를 진행해보겠다.
'🔥스파르타 TIL (MSA)' 카테고리의 다른 글
Grafana Alert Manager와 Kakao Open API 나에게 보내기 연동해보기 (feat. 좋지 않은 결과) (0) | 2025.04.22 |
---|---|
Grafana Alert rules 정하기 (0) | 2025.04.21 |
Grafana에서 Loki로 로그를 모니터링 해보자 (feat. 로그 수집 전략) (1) | 2025.04.19 |
Grafana를 사용해보자 (1) | 2025.04.18 |
Prometheus를 사용해보자 (0) | 2025.04.17 |