altermanager 是用来将 prometheus 收集到的指标计算出来的 record, 进行判断是否触发警告值,如果达到,则 通过 altermanager 配置的告警路由找出告警信息接收者发送告警。
1. 下载 alertmanager
wget https://github.com/prometheus/alertmanager/releases/download/v0.21.0/alertmanager-0.21.0.linux-amd64.tar.gz
tar -zxvf alertmanager-0.21.0.linux-amd64.tar.gz
mv alertmanager-0.21.0.linux-amd64 alertmanager
2. 配置 alertmanager.yml
告警需要 prometheus 和 alertmanager 协同配置才可以完成整个告警流程:
2.1 需要先编写 xxx.yml 告警配置文件
2.2 在 prometheus.yml 里添加配置:
# Alertmanager 配置, 指向 alertmanager 服务
alerting:
alertmanagers:
- static_configs:
- targets:
- localhost:9093
# 加载记录规则或警告规则配置文件,可以用通配符 *
rule_files:
- 'prometheus.rules.yml'
- 'rules/*.yml'
2.3 考虑到将来我们可能以短信告警为主,所以下面将介绍邮件告警和短信告警配置方式
global:
resolve_timeout: 5m
# The smarthost and SMTP sender used for mail notifications.
smtp_smarthost: ''
smtp_from: ''
smtp_auth_username: ''
smtp_auth_password: ''
smtp_require_tls: true
# The root route on which each incoming alert enters.
route:
# 默认接收者
receiver: 'klen'
# 默认分组
group_by: ['alertname']
# 分组等待时间, 即组内的出现多个告警时,会等待一段时间(通常是几秒到几分钟,这里是10秒)将多个告警整合为一个告警
group_wait: 10s
# 当第一个告警发出后,需要等待多久才能发送其他告警信息
group_interval: 10s
# 同一个告警信息要间隔多久才重新发送
repeat_interval: 3h
receivers:
- name: 'klen'
# 配置将邮件发给谁,可以配置多个
email_configs:
- to: 'klenby@xxx.cn'
3. 启动 alertmanager
touch nohup.out
nohup ./alertmanager --config.file=alertmanager.yml &