Prometheus 告警管理器 Alertmanager 配置与使用
Alertmanager 简介
Alertmanager 作为 Prometheus 生态中的核心告警处理组件,负责接收、聚合、去重、静默和分发告警通知。它支持多种通知渠道,如邮件、Webhook、Slack 等,并具备灵活的路由策略。
官方资源
部署方式
系统环境信息
# uname -a
Linux node100 5.14.0-427.31.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Aug 14 16:15:25 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
# cat /etc/system-release
Rocky Linux release 9.4 (Blue Onyx)
二进制安装
tar -xvzf alertmanager-0.27.0.linux-amd64.tar.gz -C /opt
chown -R prometheus:prometheus /opt/alertmanager-0.27.0.linux-amd64
ln -sv /opt/alertmanager-0.27.0.linux-amd64 /opt/alertmanager
chmod -R 777 /opt/alertmanager
/opt/alertmanager/alertmanager --config.file=alertmanager.yml
Docker 部署
docker pull docker.m.daocloud.io/prom/alertmanager:v0.27.0
mkdir -p /opt/alertmanager
docker run -itd --name alertmanager \
-p 9093:9093 \
-v /opt/alertmanager:/alertmanager \
docker.m.daocloud.io/prom/alertmanager:v0.27.0
配置验证
docker exec -it alertmanager sh
/bin/amtool check-config /etc/alertmanager/alertmanager.yml
输出示例:
Checking '/etc/alertmanager/alertmanager.yml' SUCCESS
Found:
- global config
- route
- 1 inhibit rules
- 1 receivers
- 0 templates
核心配置文件说明
route:
group_by: ['alertname']
group_wait: 30s
group_interval: 5m
repeat_interval: 1h
receiver: 'web.hook'
receivers:
- name: 'web.hook'
webhook_configs:
- url: 'http://127.0.0.1:5001/'
inhibit_rules:
- source_match:
severity: 'critical'
target_match:
severity: 'warning'
equal: ['alertname', 'dev', 'instance']
Web 界面功能概览
- 首页:http://localhost:9093/
- 运行状态:http://localhost:9093/#/status
- 告警列表:http://localhost:9093/#/alerts
- 静默规则:http://localhost:9093/#/silences
- 系统设置:http://localhost:9093/#/settings
与 Prometheus 集成
在 Prometheus 中添加 Alertmanager 配置
global:
alerting:
alertmanagers:
- static_configs:
- targets:
- 192.168.16.100:9093
rule_files:
scrape_configs:
- job_name: "prometheus"
static_configs:
- targets: ["192.168.16.200:9090"]
- job_name: "alertmanager"
static_configs:
- targets: ["192.168.16.100:9093"]
验证并热加载配置
/opt/prometheus/promtool check config /opt/prometheus/prometheus.yml
curl -X POST http://192.168.16.200:9090/-/reload
访问 http://192.168.16.200:9090/targets 确认目标状态为 UP。
amtool 工具使用
amtool 是 Alertmanager 自带的命令行工具,用于管理告警、测试配置和调试路由规则。
- 路径:alertmanager/cmd/amtool/
- 帮助命令:`amtool -h`
- 文档地址:amtool 使用说明