이전 포스트에서는 Grafana + Prometheus + Blackbox Exporter를 통해 ICMP 모니터링을 구현하였다면 이번 포스트에서는 Grafana 와 SLACK을 연동하여 특정 alert 상황에서 Slack 채널로 알림을 보내는 설정을 진행해 보도록 하겠습니다.
🔔 Slack 알림 설정
1. Slack Webhook 생성
- Slack API(https://api.slack.com/apps) 에서 앱 생성
Create New App -> From scratch -> App Name 입력, 본인이 사용하는 Slack Workspace 선택 - Incoming Webhook 활성화
좌측 네비게이션 바에 Incoming Webhooks 선택 -> Off상태 를 On 상태로 변경 - 알림 보낼 채널 선택
-> Add New Webhook to Workspace 선택 -> - Webhook URL 복사
2. Grafana Contact Point 등록
- Alerting → Contact Points → New Contact Point
- Type: Slack
- Webhook URL 붙여넣기
- 이름: Slack Alert
3. Alert Rule: 5분 동안 ping 실패 시 알림 설정
- Alerting -> Alert rules -> New alert rule
1) Enter alert rule name -> 지정할 Alert rule 이름 설정
2) Define query and alert condition -> 우측에 보시면 Advanced options가 존재합니다. 해당 설정을 키고 설정하는걸 추천드립니다.
- type = Prometheus선택
- Metric = probe_success 선택
- Label filters = job = icmp_ping , instance =~ ..*\\..*\\..*\\..*\\ 입력
* ..*\\..*\\..*\\..*\\ 의미 (0.0.0.0 ~ 255.255.255.255 까지 targets.json에 설정된 모든 IP Listen)
3)Operations 추가 버튼 클릭
- 하단에 Sum over time (Range 5m) -> Equal to (0) 로 설정 -> 5분동안 0으로 표시된 Job, Instance 내역을 받아오기 위해 사용 됩니다.
4) Expressions 추가 선택 -> Threshold 선택 -> Input [A] IS EQUAL TO 0 선택 -> Threshold 테이블 좌측에 Set as alert condition 선택
* 위에서 설정한 Define query and alert condition 측에 나온 5분동안 0으로 표시된 내역이 있으면 알림을 보내라는 Action을 추가해 준 상황입니다. A로만 적용하는 경우, 알림이 가지 않으니 꼭 B를 alert condition으로 지정해 주시기 바랍니다.
5) Add folder and labels = Alert group과 alert folder를 생성해 주시면 됩니다. (신규 설치시 존재하지 않으니 신규 생성해주시면 됩니다.)
6) Set evaluation behavior
생성해 주신 Group 선택 -> Pending Period = None 으로 설정
7) Configure notifications
contact point 를 위에서 생성한 contact points를 지정해 주시면 됩니다.
※ 주요 설정
- Override timings -> ON
( 동일한 오류 상황에 대하여 1회 발신이 아닌 지속 알림이 필요한 경우 사용됩니다. 설정하지 않은 경우 최초 1회만 알림이 수신되게 됩니다.)
- Group wait = 0s
- Group Interval = 30s ( 문제 발생시 30초 주기로 알림 송부)
- Repeat interval = 1s (기존 알림 발생 이후 대기 시간)
8) Configure notification message
Summary 측에 Slack측으로 송부할 오류메세지를 작성합니다.
ex)
🚨 서버 DOWN!
❌ {{ $labels.instance }} is not responding to ping.
이후 우측 상단 save rule을 선택하여 저장해 주시면 됩니다.
Test 방법은VM을 통해 테스트 하시는 방법을 추천드립니다.
'Infra' 카테고리의 다른 글
nginx를 활용한 HTTPS 인증 및 Reverse Proxy 구성 방식 (0) | 2025.05.13 |
---|---|
SSH 리버스 프록시 기반 원격 지원 시스템 구성 가이드 (0) | 2025.04.16 |
Prometheus + Blackbox Exporter로 서버 ICMP(Ping) Health Check 구성하기#2 (0) | 2025.04.08 |
Prometheus + Blackbox Exporter로 서버 ICMP(Ping) Health Check 구성하기 (0) | 2025.04.07 |