title: 5.4.企业钉钉告警
order: 30
icon: lightbulb
一、环境介绍
主机名 | IP地址 | 系统 | 说明 |
localhost | 192.168.11.61 | Ubuntu 20.04 | docker方式安装的prometheus |
二、获取钉钉的webhook地址
1、注册企业钉钉
a、注册企业钉钉
浏览器打开钉钉注册页面 填入手机号码,填入获取到的验证码,点注册
填入企业资料并注册
注册成功后,扫描二维码下载钉钉,如下图:
b、添加机器人
因为机器人添加,只能是钉钉电脑版(手机版钉钉不能添加机器人)。“测试钉钉报警“ 这个企业只有我一个人,所以我就把报警消息发到默认的 ”测试钉钉报警 全员群“ 里面。实际使用时,请创建个运维群–添加对应的人员进来。
电脑钉钉登陆成功后—-点击左下角的。。。—然后再点管理后台,如下图:
点击之前创建的企业名
点通讯录–组织架构–添加子部门
刷新后,把接收告警的员工调整到刚刚添加的部门
勾选部门
添加成功后,电脑钉钉消息窗口–会弹出一个测试告警的群–点击这个群—群设置–机器人
添加机器人
添加机器人
点自定义
机器人名字:随意
勾选ip:填入alertmanager外网ip
如果在自己电脑上测试钉钉告警,获取Alertmanager外网ip地址的方法为浏览器打开http://ip138.com 您的iP地址是:[xxx.xx.xx.xx]得到自己外网ip地址。
c、复制机器人webhook地址
复制webhook的地址,例如:
我们真实需要的是access_token=后面的,如下:
2ac0682516aa8634f3410c08339d21f7effeec5ac180eec60082a3ca66661f29
三、使用prometheus-webhook-dingtalk实现钉钉告警
github地址,获取最新的安装包
1、二进制安装(和docker安装二选一)
#安装二进制安装包
wget https://github.com/timonwong/prometheus-webhook-dingtalk/releases/download/v2.1.0/prometheus-webhook-dingtalk-2.1.0.linux-amd64.tar.gz
#解压
tar vxf prometheus-webhook-dingtalk-2.1.0.linux-amd64.tar.gz
ls -l
#移动并改名
mv prometheus-webhook-dingtalk-2.1.0.linux-amd64 /opt/prometheus-webhook-dingtalk
创建配置文件
cat > /opt/prometheus-webhook-dingtalk/config.yml <<"EOF"
targets:
webhook1:
url: https://oapi.dingtalk.com/robot/send?access_token=修改为自己的TOKEN
secret: SEC000000000000000000000
EOF
创建一个prometheus
用户:
useradd -M -s /usr/sbin/nologin prometheus
更改prometheus-webhook-dingtalk
用户的文件夹权限:
chown prometheus:prometheus -R /opt/prometheus-webhook-dingtalk
创建 systemd 服务
cat > /etc/systemd/system/prometheus-webhook-dingtalk.service << "EOF"
[Unit]
Description=prometheus-webhook-dingtalk
Documentation=https://github.com/timonwong/prometheus-webhook-dingtalk
[Service]
User=prometheus
Group=prometheus
Restart=on-failure
ExecStart=/opt/prometheus-webhook-dingtalk/prometheus-webhook-dingtalk \
--config.file=/opt/prometheus-webhook-dingtalk/config.yml
[Install]
WantedBy=multi-user.target
EOF
启动 prometheus-webhook-dingtalk
systemctl daemon-reload
systemctl start prometheus-webhook-dingtalk.service
加入到开机自启动
systemctl enable prometheus-webhook-dingtalk.service
检查
systemctl status prometheus-webhook-dingtalk.service
查看 prometheus-webhook-dingtalk的日志以进行故障排除:
journalctl -u prometheus-webhook-dingtalk.service -f
2、docker安装(和二进制安装二选一,推荐)
创建配置文件config.yml
#创建数据目录
mkdir /data/docker-prometheus/prometheus-webhook-dingtalk/ -p
cat > /data/docker-prometheus/prometheus-webhook-dingtalk/config.yml <<"EOF"
#templates:
# - /etc/prometheus-webhook-dingtalk/templates/default.tmpl
targets:
webhook1:
url: https://oapi.dingtalk.com/robot/send?access_token=之前复制的TOKEN
secret: SEC000000000000000000000
#message:
# text: '{{ template "default.content" . }}'
EOF
docker-compose.yaml文件
注:我把prometheus-webhook-dingtalk安装在prometheus服务器上,如果安装在其他机器上也是可以的。
cd /data/docker-prometheus/prometheus-webhook-dingtalk/
cat > docker-compose.yaml << "EOF"
version: '3.3'
services:
webhook:
image: timonwong/prometheus-webhook-dingtalk:v2.1.0
container_name: prometheus-webhook-dingtalk
restart: "always"
ports:
- 8060:8060
command:
- '--config.file=/etc/prometheus-webhook-dingtalk/config.yml'
volumes:
- ./config.yml:/etc/prometheus-webhook-dingtalk/config.yml
- /etc/localtime:/etc/localtime:ro
EOF
启动
docker-compose up -d
检查
docker ps
或:
docker logs -f prometheus-webhook-dingtalk
3、访问地址
应用 | 访问地址 | 备注 |
prometheus-webhook-dingtalk | 无用户和密码 |
4、alertmanager配置
alertmanager/config.yml增加如下配置:
route:
receiver: 'dingtalk'
receivers:
- name: 'dingtalk'
webhook_configs:
- url: 'http://192.168.11.61:8060/dingtalk/webhook1/send'
send_resolved: true
检查配置
#docker安装方式,检查
docker exec -it alertmanager amtool check-config /etc/alertmanager/config.yml
#二进制安装方式,检查
/opt/prometheus/alertmanager/amtool check-config /opt/prometheus/alertmanager/alertmanager.yml
重载alertmanager配置
curl -X POST http://localhost:9093/-/reload
5、配置触发器
已配置,查看现有触发器
访问告警模块的web页面
http://192.168.11.61:9090/alerts
INACTIVE:活跃中,即表示正常无告警产生。
PENDING:待触发,表示已经达到预设的阈值,但没达到预设的时间。
FIRING:表示达到预设的阈值并超过预设的时间触发告警
6、测试
关闭node-exporter
#docker环境
docker stop node-exporter
#二进制安装环境
systemctl stop node_exporter
查看prometheus的alerts: http://192.168.11.61:9090/alerts
查看alertmanager的alerts:http://192.168.11.61:9093/#/alerts
如果没收到钉钉消息,排查
docker logs -f alertmanager
钉钉正常收到报警信息如下图:
7、碰到的问题
由于配置名称错误导致不能发送报警信息给钉钉,如下图:
解决:
修改名称,使其配置正确
四、我的微信
如果碰到问题,可以随时加我微信,谢谢
评论区