prometheus+alertmanager
2024-01-01 本文已影响0人
比巴卜超软泡泡糖
部署 alertmanager
官网下载:
https://prometheus.io
上传解压
tar xzvf alertmanager-0.26.0.linux-amd64.tar.gz -C /usr/local/
mv /usr/local/alertmanager-0.26.0.linux-amd64 /usr/local/alertmanager
启动方式:
直接启动
# ./alertmanager
可以放后台启动
# nohup ./alertmanager &
配置文件:
alertmanager.yml
在配置alertmanager.yml前需要先在prometheus上创建rules
# vim prometheus.yml
rule_files:
- "./rules/ops.yml" #添加rules路径
# vim ./rules/ops.yml
groups: #告警分组
- name: test #rules名称
rules:
- alert: high_rate_of_cpu_usage #告警名称
expr: avg by(instance)(1-rate(node_cpu_second_total{mode=“idle”}[5m]))*100 >= 85 #PromQL表达式
for: 10s #持续时间
labels: #分组标签,需要和alertmanager.yml上路由匹配
status: high_rate
team: test
annotations: #注释信息
summary: "test!!!"
description: "test!!!"
以上配置仅为测试,生产配置以具体需求为准。
重启prometheus
可以在prometheus_IP:9090的UI界面导航栏上 Alerts中看到high_rate_of_cpu_usage
配置alertmanager.yml:
# vim /usr/local/alertmanager/alertmanager.yml
global:
resolve_timeout: 5m #如果5m没有发送告警则声明为已恢复
smtp_smarthost: 'smtp.163.com:25'
smtp_from: '邮箱@163.com'
smtp_auth_username: '邮箱@163.com'
smtp_auth_password: '授权码'
#smtp相关配置,如果需要发送邮件告警,就需要配置smtp信息。
route: #告警路由策略,分配告警到接收人
group_by: ['alertname'] #告警分组
group_wait: 30s #同一组告警等待时间,30s内同一组告警只发一次
group_interval: 10s #同一组告警信息重发间隔时间
repeat_interval: 10s #定义告警信息重发间隔时间
receiver: 'dingding_robot' #指定一个默认接收人
routes: #定义路由规则
- match: #匹配标签,与prometheus的rules的标签对应
status: high_rate
team: test
receiver: 'dingding_robot' #指定这条告警接收人
receivers: #接收人信息配置
- name: 'to_email'
email_configs:
- to: '邮箱2@163.com'
- name: 'dingding_robot'
webhook_configs:
- url: 'webhook地址' #如果想通过钉钉机器人发送到群里,不能直接填机器人的webhook,可以跑个flask,接收并处理json数据,再发送给钉钉机器人的webhook。
以上配置仅为测试,生产配置以具体需求为准。
alertmanager.yml还有一些很有用的配置,这里没用到就没写,如抑制规则...
修改好配置后,保存退出,后台启动alertmanager
手动触发告警:告警规则是5分钟内cpu平均使用率到达85%以上,那么对node_exporter那台机器进行压力测试# stress -c 4 ,可以观察graph图表的趋势,直到收到告警。