altermanager 是用来将 prometheus 收集到的指标计算出来的 record, 进行判断是否触发警告值,如果达到,则 通过 altermanager 配置的告警路由找出告警信息接收者发送告警。
1. 下载 alertmanager
wget https://github.com/prometheus/alertmanager/releases/download/v0.21.0/alertmanager-0.21.0.linux-amd64.tar.gztar -zxvf alertmanager-0.21.0.linux-amd64.tar.gzmv 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: 3hreceivers:- name: 'klen'# 配置将邮件发给谁,可以配置多个email_configs:- to: 'klenby@xxx.cn'
3. 启动 alertmanager
touch nohup.outnohup ./alertmanager --config.file=alertmanager.yml &
