本篇在前两篇的基础上,实现zabbix6.0自动上报预警信息到钉钉群
前两篇链接:
- Linux环境部署zabbix-server监控机 【2024.09.18最新步骤,超级详细】
- LInux环境下使用Ansible批量部署zabbix-agent【2024.09.18更新,最新部署步骤,超级详细】
文章目录
一、钉钉上操作
1 创建钉钉群
这里自行选择群类型,我选择的是内部群
邀请好友进群,起一个群名
创建钉钉群完成
2 添加机器人
点击右上角设置
扫描二维码关注公众号,回复:
17473680 查看本文章

往下翻,找到机器人
点击添加机器人
选择自定义
点击添加
填写机器人名字,增加自定义关键词
生成webhook(保管好webhook的值;后面需要用到。)
点击完成即可完成配置
二、服务器上操作
1 编写钉钉脚本
1.1 安装python3.6.8
可参考:
Linux下安装python3.6.8
1.2 创建日志文件
[root@zabbix alertscripts]# mkdir -p /usr/lib/zabbix/log/
[root@zabbix alertscripts]# touch /usr/lib/zabbix/log/dingding.log
[root@zabbix alertscripts]# chown zabbix.zabbix -R /usr/lib/zabbix/log/
1.2 配置钉钉脚本
1.2.1 创建python脚本
为了方便管理,将脚本写在/etc/zabbix/data/zabbix/alertscripts
下
[root@zabbix-server01 ~]# cd /etc/zabbix/data/zabbix/alertscripts
[root@zabbix-server01 alertscripts]# vim dingding.py
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import requests
import json
import sys
import os
import datetime
webhook = "https://oapi.dingtalk.com/robot/send?access_token=2618cd9c45fe772848e4079d4c642c86610947f3d72071f17973b8c27b5429c1"
user=sys.argv[1]
subject=sys.argv[2]
text=sys.argv[3]
data={
"msgtype": "text",
"text": {
"content": "%s%s"%(subject,text)
},
"at": {
"atMobiles": [
user
],
"isAtAll": False
}
}
headers = {
'Content-Type': 'application/json'}
x=requests.post(url=webhook,data=json.dumps(data),headers=headers)
if os.path.exists("/usr/lib/zabbix/log/dingding.log"):
f=open("/usr/lib/zabbix/log/dingding.log","a+")
else:
f=open("/usr/lib/zabbix/log/dingding.log","w+")
f.write("\n"+"--"*30)
if x.json()["errcode"] == 0:
f.write("\n"+str(datetime.datetime.now())+" "+str(user)+" "+"发送成功"+"\n"+str(text))
f.close()
else:
f.write("\n"+str(datetime.datetime.now())+" "+str(user)+" "+"发送失败"+"\n"+str(text))
f.close()
#为脚本添加执行权限
[root@zabbix alertscripts]# chmod +x dingding.py
#修改脚本的属主和属组:
[root@zabbix alertscripts]# chown zabbix.zabbix dingding.py
1.2.2 测试py脚本
在测试脚本之前,需要提前安装python模块
pip3 install requests
#shell脚本 手机号 关键词 告警信息
./dingding.py 12312312312 告警 test
成功收到消息,完成
三、web页面操作
1 添加脚本媒介
依次点击管理 -> 媒介 -> 创建媒介类型
下面要用到的脚本参数
{
ALERT.SUBJECT}
{
ALERT.MESSAGE}
{
ALERT.SENDTO}
填写完成后,点击左下方更新按钮
划到最下面可以看到我们刚刚添加的内容
2 配置动作
依次点击配置 -> 动作 -> 触发器动作 -> 创建动作
依次添加 操作、恢复操作
内容如下
#告警操作内容:
##标题:
服务器:{
HOST.NAME}发生: {
TRIGGER.NAME}故障!
##消息内容:
告警主机:{
HOST.NAME}
告警地址:{
HOST.IP}
监控项目:{
ITEM.NAME}
监控取值:{
ITEM.LASTVALUE}
告警等级:{
TRIGGER.SEVERITY}
当前状态:{
TRIGGER.STATUS}
告警信息:{
TRIGGER.NAME}
告警时间:{
EVENT.DATE} {
EVENT.TIME}
事件ID:{
EVENT.ID}
#恢复操作内容
##标题:
服务器:{
HOST.NAME}: {
TRIGGER.NAME}已恢复!
##消息内容:
告警主机:{
HOST.NAME}
告警地址:{
HOST.IP}
监控项目:{
ITEM.NAME}
监控取值:{
ITEM.LASTVALUE}
告警等级:{
TRIGGER.SEVERITY}
当前状态:{
TRIGGER.STATUS}
告警信息:{
TRIGGER.NAME}
告警时间:{
EVENT.DATE} {
EVENT.TIME}
恢复时间:{
EVENT.RECOVERY.DATE} {
EVENT.RECOVERY.TIME}
持续时间:{
EVENT.AGE}
事件ID:{
EVENT.ID}
- 操作
- 恢复操作
配置完成后,点击添加
3 添加报警媒介
依次点击 用户设置 -> 配置 -> 添加
添加完记得点击更新
四、钉钉接收告警信息测试
这里我们只做简单测试,停掉zabbix-agent01
进入zabbix-agent01
的shell
使用下面命令,停掉zabbix-agent01
systemctl stop zabbix-agent
等待两到三分钟,可以看到主页发现问题
查看钉钉群,可以看到刚刚的预警信息已发送至钉钉
重启agent01
的服务,可以看到,恢复信息也已经发送至钉钉群
至此,zabbix自动发送预警及恢复信息到钉钉群,已经全部配置完成✿✿ヽ(°▽°)ノ✿
转载请标明出处
如果还有问题,欢迎在评论区留言或私信
作者:BQ
主页:bqcode.blog.csdn.net
qq群:958124241
Learn Together!