Prometheus将告警分为两个部分:Prometheus 和 Alertmanager。其中Prometheus配置告警触发规则,对指标进行监控和计算,将再将告警信息发送到Alertmanager中。Alertmanager对告警进行管理,比如合并抑制等操作。
wget https://github.com/prometheus/alertmanager/releases/download/v0.23.0/alertmanager-0.23.0.linux-amd64.tar.gz
tar -xvzf alertmanager-0.23.0.linux-amd64.tar.gz -C /usr/local/
cd /usr/local/
mv alertmanager-0.23.0.linux-amd64/ alertmanager
配置system管理
vim /usr/lib/systemd/system/alertmanager.service
[Unit]
Description=alertmanager System
Documentation=alertmanager System
[Service]
ExecStart=/usr/local/alertmanager/alertmanager --config.file=/usr/local/alertmanager/alertmanager.yml
[Install]
WantedBy=multi-user.target
systemctl restart alertmanager.service 启动
修改 prometheus 配置文件
vim prometheus/prometheus.yml
配置 alertmanager对应的ip和端口
alerting:
alertmanagers:
- static_configs:
- targets:
- 192.168.11.141:9093
rule_files: #指定报警规则所在路径和文件
- "/usr/local/prometheus/rules/host_monitor.yml"
编写告警规则
mkdir prometheus/rules/
vim prometheus/rules/host_monitor.yml
groups:
- name: node-up
rules:
- alert: node-up
expr: up == 0
for: 10s
labels:
severity: warning
team: node
annotations:
summary: "运维部门的 {{ $labels.instance }} 服务已停止运行超过 10s!"
告警配置参数
alert:告警规则的名称。
expr:基于 PromQL 表达式告警触发条件,用于计算是否有时间序列满足该条件。
for:评估等待时间,可选参数。用于表示只有当触发条件持续一段时间后才发送告警。在等待期间新产生告警的状态为 pending。
labels:自定义标签,允许用户指定要附加到告警上的一组附加标签。
annotations:用于指定一组附加信息,比如用于描述告警详细信息的文字等,annotations 的内容在告警产生时会一同作为参数发送到 Alertmanager。
summary 描述告警的概要信息,description 用于描述告警的详细信息。
同时 Alertmanager 的 UI 也会根据这两个标签值,显示告警信息。
systemctl restart prometheus 配置完成后重启