Prometheus使用企业钉钉接收告警通知
一、环境介绍
主机名 | IP地址 | 系统 | 说明 |
---|---|---|---|
localhost | 192.168.224.11 | Centos7.6 | docker方式安装的prometheus |
二、获取钉钉的webhook地址
1、注册企业钉钉
a、注册企业钉钉
浏览器打开钉钉注册页面 填入手机号码,填入获取到的验证码,点注册
填入企业资料并注册
注册成功后,扫描二维码下载钉钉,如下图:
b、添加机器人
因为机器人添加,只能是钉钉电脑版(手机版钉钉不能添加机器人)。“测试钉钉报警“ 这个企业只有我一个人,所以我就把报警消息发到默认的 ”测试钉钉报警 全员群“ 里面。实际使用时,请创建个运维群–添加对应的人员进来。
电脑钉钉登陆成功后—-点击左下角的。。。—然后再点管理后台,如下图:
点击之前创建的企业名
点通讯录–组织架构–添加子部门
刷新后,把接收告警的员工调整到刚刚添加的部门
勾选部门
添加成功后,电脑钉钉消息窗口–会弹出一个测试告警的群–点击这个群—群设置–机器人
添加机器人
添加机器人
点自定义
机器人名字:随意
勾选ip:填入alertmanager外网ip
如果在自己电脑上测试钉钉告警,获取Alertmanager外网ip地址的方法为浏览器打开http://ip138.com 您的iP地址是:[xxx.xx.xx.xx]得到自己外网ip地址。
c、复制机器人webhook地址
复制webhook的地址,例如:
1 | https://oapi.dingtalk.com/robot/send?access_token=b840b125fbf67480b84244a520c8854fa6cf533a75e798afa1397ff9ea457d28 |
我们真实需要的是access_token=后面的,如下:
1 | b840b125fbf67480b84244a520c8854fa6cf533a75e798afa1397ff9ea457d28 |
三、使用prometheus-webhook-dingtalk实现钉钉告警
github地址,获取最新的安装包
1、二进制安装(和docker安装二选一)
1 | #安装二进制安装包 |
创建配置文件
1 | cat > /usr/local/Prometheus/prometheus-webhook-dingtalk/config.yml <<"EOF" |
创建一个prometheus
用户:
1 | useradd -M -s /usr/sbin/nologin prometheus |
更改prometheus-webhook-dingtalk
用户的文件夹权限:
1 | chown prometheus:prometheus -R /usr/local/Prometheus/prometheus-webhook-dingtalk |
创建 systemd 服务
1 | cat > /etc/systemd/system/prometheus-webhook-dingtalk.service << "EOF" |
启动 prometheus-webhook-dingtalk
1 | systemctl daemon-reload |
加入到开机自启动
1 | systemctl enable prometheus-webhook-dingtalk.service |
检查
1 | systemctl status prometheus-webhook-dingtalk.service |
查看 prometheus-webhook-dingtalk的日志以进行故障排除:
1 | journalctl -u prometheus-webhook-dingtalk.service -f |
2、docker安装(和二进制安装二选一,推荐)
创建配置文件config.yml
1 | #创建数据目录 |
docker-compose.yaml文件
注:我把prometheus-webhook-dingtalk安装在prometheus服务器上,如果安装在其他机器上也是可以的。
1 | cd /data/docker-prometheus/prometheus-webhook-dingtalk/ |
启动
1 | docker-compose up -d |
检查
1 | docker ps |
3、访问地址
应用 | 访问地址 | 备注 |
---|---|---|
prometheus-webhook-dingtalk | http://192.168.224.11:8060 |
无用户和密码 |
4、alertmanager配置
alertmanager/config.yml增加如下配置:
1 | route: |
检查配置
1 | #docker安装方式,检查 |
重载alertmanager配置
1 | curl -X POST http://localhost:9093/-/reload |
5、配置触发器
已配置,查看现有触发器
访问告警模块的web页面
1 | http://192.168.224.11:9090/alerts |
- INACTIVE:活跃中,即表示正常无告警产生。
- PENDING:待触发,表示已经达到预设的阈值,但没达到预设的时间。
- FIRING:表示达到预设的阈值并超过预设的时间触发告警
6、测试
关闭node-exporter
1 | #docker环境 |
1 | 查看prometheus的alerts: http://192.168.224.11:9090/alerts |
如果没收到钉钉消息,排查
1 | docker logs -f alertmanager |
钉钉正常收到报警信息如下图:
7、碰到的问题
由于配置名称错误导致不能发送报警信息给钉钉,如下图:
解决:
修改名称,使其配置正确
- 本文标题:Prometheus使用企业钉钉接收告警通知
- 本文作者:yichen
- 本文链接:https://yc6.cool/2023/05/10/Prometheus使用企业钉钉告警通知/
- 版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!