Alertmanagerでアラートを流す
한국어 원문으로 표시합니다.
목표
Prometheus 가 만든 알림이 Alertmanager 를 거쳐 어떻게 갈라지고, 묶이고, 억눌리는지를 직접 흘려보내며 확인합니다.
왜 중요한가
알림 설계의 실패는 두 방향입니다. 너무 울려서 아무도 안 보거나, 안 울려서 장애를 놓치거나. 둘 다 같은 결과를 냅니다 — 알림이 신뢰를 잃습니다.
그래서 라우팅·그룹핑·억제가 필요합니다. 하나의 원인이 스무 개의 알림을 만들면 사람은 그 스무 개를 다 읽지 않습니다. 억제 규칙 하나가 그걸 한 개로 줄입니다.
단계
- Alertmanager 켜기
- severity 로 라우트 가르기 →
/etc/alertmanager.yml - 리시버 두 개 정의
- critical 이 warning 을 억누르는 규칙
amtool check-config로 검사하고 반영amtool alert add로 알림을 직접 밀어넣기- 사일런스 걸어 보기
- 알림에 런북 링크 붙이기
참고
amtool은/root/.config/amtool/config.yml을 미리 깔아 두었습니다. 그래서--alertmanager.url없이 그냥amtool alert로 됩니다.amtool check-config는 문법만 봅니다. 라우팅이 의도대로 가는지는amtool config routes test severity=critical로 확인합니다.- 설정을 고쳤으면 Alertmanager 를 다시 켜야 반영됩니다.
Alertmanager 켜기
Alertmanager 켜기
lab-start-alertmanager 로 켭니다. lab-status 에 9093 이 [O] 로 나와야 합니다. Prometheus 설정에는 이미 alertmanagers 대상이 잡혀 있습니다.
라우트 트리 작성
severity 로 라우트 가르기 → /etc/alertmanager.yml
/etc/alertmanager.yml 을 고칩니다. route 아래 routes 로 severity=critical 과 severity=warning 을 갈라 서로 다른 receiver 로 보냅니다. critical 은 group_wait 을 짧게, warning 은 길게 — 급한 것을 먼저 알리기 위해서입니다.
리시버 두 개 정의
리시버 두 개 정의
receivers 목록에 최소 두 개를 둡니다. 실제 발송지는 필요 없습니다 — 이름만 있는 리시버도 유효한 설정입니다. 여기서 배우는 것은 '어디로 보내나' 가 아니라 '무엇을 갈라 보내나' 입니다.
억제 규칙
critical 이 warning 을 억누르는 규칙
inhibit_rules 를 추가합니다. 같은 대상에 critical 이 울리는 동안 warning 은 억누릅니다. source_matchers / target_matchers / equal 세 가지가 필요하고, equal 이 '같은 대상' 의 정의입니다 — 이걸 빼면 관계없는 알림까지 묻힙니다.
설정 검사
amtool check-config 로 검사하고 반영
amtool check-config /etc/alertmanager.yml 로 검사합니다. 통과하면 Alertmanager 를 다시 켜서(pkill alertmanager; lab-start-alertmanager) 반영합니다.
알림을 직접 밀어넣어 보기
amtool alert add 로 알림을 직접 밀어넣기
amtool 로 알림 하나를 만들어 봅니다: amtool alert add TestAlert severity=critical service=shop-api. 그리고 amtool alert 로 도착했는지 확인합니다.
사일런스 걸기
사일런스 걸어 보기
amtool silence add alertname=TestAlert -d 1h -c '점검 중' 으로 잠시 묻습니다. amtool silence query 로 확인하세요. 점검 시간에 알림을 끄는 대신 사일런스를 쓰면, 끝나고 자동으로 되살아납니다 — 끄고 잊는 사고가 없습니다.
런북 링크를 알림에 붙이기
알림에 런북 링크 붙이기
/etc/prometheus/rules/slo.yml 의 알림에 annotations.runbook_url 을 추가합니다. 새벽 3시에 깨어난 사람에게 필요한 것은 '무엇이 잘못됐다' 가 아니라 '무엇을 하라' 입니다. promtool 로 검사한 뒤 reload 하세요.