alertmanager安装部署
1、下载安装包
https://prometheus.io/download/
2、修改配置文件
vim alertmanager.yml
global:
resolve_timeout: 5m # 恢复的超时时间,这个跟告警恢复通知有关,此参数并不是说在这个时间没有收到告警就会恢复
smtp_smarthost: 'smtp.qq.com:465' # 邮件服务器:端口
smtp_from: '841677557@qq.com' # 发送人
smtp_auth_username: '841677557@qq.com' # 发生的邮箱账号
smtp_auth_password: '123456' # 授权码或密码
smtp_require_tls: false # 请求TLS,false即可
route:
group_by: ['alertname'] # 默认以告警名进行分组,就是rule文件的alert值进行分组
group_wait: 10s # 发送警报前,至少等待多少秒才会发送(为了收集同组更多的警报信息一起发送)
group_interval: 10s # 如果警报1已经发送,这时又出现同组的警报2,由于组状态发生变化,警报会在group_interval这个时间内发送,不会被repeat_interval这个时间收敛
repeat_interval: 20m # 报警信息已发送,但事件并没有恢复,则等待多久时间再重新发送(生产环境一般设成20min或者30min)
receiver: 'devops.webhook' # 发送警报的接收器名称,即对应下面的<receivers>配置段中的<name>值,如果一个报警没有被下面的<routes>配置段中的<receiver>字段匹配,则发送给这个默认的接收器
routes: # 为node_exporter、docker、mysqld_exporter等的Job定义匹配路由,每个路由有自己的分组在告警时信息就会单独发送到对应的组
- receiver: 'devops.mail' # 每个服务可以定义自己的接收者,这样在发送时就可以发送给不同的人,不同的服务对应不同的处理人员,需要对应下面<receivers>配置段中的<name>值
group_wait: 10s # 组等待时间,同上面的全局配置一个意思
group_by: ['node_exporter']
match_re:
job: node2 # 匹配分组,即使用prometheus中的labels标签信息进行匹配分组发送告警,ps: 分组发送的关键点
- receiver: 'devops.webhook'
group_wait: 10s
group_by: ['geth']
match_re:
job: geth2
- receiver: 'devops.mailwechat'
group_wait: 10s
group_by: ['mysqld_exporter']
match_re:
job: mysqld_exporter
receivers: # 发送告警信息给哪个接收者
- name: 'devops.webhook' # 这个需要和上面全局默认<receiver>或者<routes>中的<receiver>值定义的接收者名称一致
webhook_configs:
- url: 'http://192.168.4.88:5001/webhook'
- name: 'devops.mail'
email_configs:
- to: 'luzhining@guangzhoudaze.com'
headers: { Subject: "[WARN] Prometheus 报警邮件" } # 邮件主题
send_resolved: true # 发送告警恢复通知
- name: 'devops.mailwechat' # 将这个告警同时发送到邮件和企业微信
email_configs:
- to: '841677557@qq.com'
headers: { Subject: "[WARN] Prometheus 报警邮件" }
send_resolved: true
wechat_configs: # 企业微信配置
- api_secret: 'vwxg8wWFtqkvHOvz18EBGSENm6g0ouX058swvh52em8' # 第三方企业应用的密钥,可以在自己创建的第三方企业应用详情页面查看。
agent_id: '1000002' # 第三方企业应用的 ID,可以在自己创建的第三方企业应用详情页面查看。
corp_id: 'ww26d538ce96af1d6f' # 企业微信账号唯一 ID, 可以在我的企业中查看。
to_party: '1' # 需要发送的组/部门。
send_resolved: true
inhibit_rules: # 抑制规则,防止告警风暴
- source_match:
severity: 'critical'
target_match:
severity: 'warning'
equal: ['alertname', 'env', 'instance']
3、编写服务启动脚本
vim alertmanager.service
[Unit]
Description=alertmanager
After=network.target
[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/usr/local/alertmanager
ExecStart=/bin/sh -c '/usr/local/alertmanager/alertmanager --web.external-url=http://192.168.123.13:9093/ --log.level=debug >>/usr/local/alertmanager/alertmanager.log 2>&1 '
Restart=on-failure
[Install]
WantedBy=multi-user.target
然后复制到/lib/systemd/system/
4、启动服务
systemctl enable alertmanager # 开机自启动
systemctl start alertmanager # 启动服务
5、打开alertmanager管理页面
访问http://localhost:9093/ 即可看到alertmanager的告警管理页面