1. Cơ chế hoạt động của Alertmanager
Khác với các hệ thống monitoring truyền thống, Prometheus không trực tiếp gửi thông báo. Thay vào đó, Prometheus sẽ kiểm tra các Alerting Rules và đẩy các cảnh báo đang diễn ra (Firing) sang cho Alertmanager. Ti đây, Alertmanager sẽ thực hiện:- Grouping: Gom nhiều cảnh báo tương tự vào một thông báo duy nhất để tránh "Spam log".
- Inhibition: Tắt các cảnh báo thứ cấp nếu cảnh báo gốc đã xảy ra (Ví dụ: Không báo hệ thống chết nếu Switch tổng đã chết).
- Silencing: Tạm thời tắt cảnh báo trong quá trình bảo trì hệ thống.
2. Thiết lập Alerting Rules trên Prometheus
Trước khi Alertmanager có thể hoạt động, bạn cần định nghĩa các rule trên Prometheus server (thường là filealert_rules.yml).
groups:
- name: node_alerts
rules:
- alert: InstanceDown
expr: up == 0
for: 1m
labels:
severity: critical
annotations:
summary: "Server {{ $labels.instance }} is down!"
description: "Cannot reach agent for more than 1 minute."
3. Cu hình Alertmanager (alertmanager.yml)
File cấu hình Alertmanager định nghĩa cách xử lý các cảnh báo nhận được từ Prometheus.Cấu hình Route và Receiver cơ bản:
route:
group_by: [alertname, cluster]
group_wait: 30s
group_interval: 5m
repeat_interval: 3h
receiver: telegram_bot
receivers:
- name: telegram_bot
telegram_configs:
- bot_token: YOUR_BOT_TOKEN
chat_id: YOUR_CHAT_ID
send_resolved: true
4. Tích hợp thông báo qua Slack & Webhook
Ngoài Telegram, Slack là kênh phối hợp DevOps cực kỳ mạnh mẽ. Alertmanager hỗ trợ native integration với Slack Webhook.Mẹo: Bạn nên sử dụng tính năng Labels trong Prometheus phân loại mức độ nghiêm trọng (Severity). Alertmanager có thể route các cảnh báo Critical tới Phone Call (qua PagerDuty) và các cảnh báo Warning tới Slack.
5. Quản lý Silences và Incident Response
Giao diện Web của Alertmanager cho phép bạn tạo các Silences. Đây là th năng sống còn khi bạn cần thực hiện nâng cấp h thống (Maintenance window) mà không muốn làm phin đội ngũ On-call bằng hàng loạt cảnh báo giả.# Sử dụng amtool để quản lý alert qua CLI
amtool silence add alertname=InstanceDown "Bảo trì định kỳ cluster"
Tổng kết
Xây dựng một h thống cảnh báo tin cậy là một nghệ thuật trong SRE (Site Reliability Engineering). Với Alertmanager, bạn không chỉ nhận được thông báo về sự cố, mà còn có thể quản lý chúng một cách chuyên nghiệp, giúp giảm thiểu MTTR (Mean Time To Repair) cho hạ tng của mình.Chúc các bạn xây dựng hệ thng On-call hiệu quả!
Leave a Comment