开始搭建
一、钉钉方面的准备工作
最少邀请2个人才能建立一个群,然后在群设置中添加一个智能群助手,如图选择自定义
然后点击添加,开始自定义机器人的配置
配置好后点击完成,会出现一个Webhook的地址。
至此,钉钉机器人配置完毕。开始配置zabbis_server端。
二、zabbix_server端
1.添加必要的组件(执行python脚本时需要)
#yum install python-pip -y #pip install --upgrade pip #pip install requests
2.添加报警脚本路径
[root@vha zabbix]# vim /opt/zabbix/etc/zabbix_server.conf|grep -v -e"#" -e "^$" ......(前面的配置忽略) AlertScriptsPath=/opt/zabbix/alertscripts
3.创建对应目录,编辑python脚本,授予相应权限。
#mkdir /opt/zabbix/alertscripts #cd /opt/zabbix/alertscripts
#vim dingding.py
#!/usr/bin/env python #coding:utf-8 #zabbix钉钉报警 import requests,json,sys,os,datetime #说明:这里改为自己创建的机器人的webhook的值 webhook="https://oapi.dingtalk.com/robot/send?access_token=56843c91afe33e9a0b8f31c480ae817bb7a17eacf2aa2adb1e951fc2f7a9b8ab" #发给钉钉群中哪个用户 user=sys.argv[1] #发送的报警内容 text=sys.argv[3] data={ "msgtype": "text", "text": { "content": text }, "at": { "atMobiles": [ user ], "isAtAll": False } } #钉钉API固定数据格式 headers = {'Content-Type': 'application/json'} x=requests.post(url=webhook,data=json.dumps(data),headers=headers) if os.path.exists("/opt/zabbix/dingding.log"): f=open("/opt/zabbix/dingding.log","a+") else: f=open("/opt/zabbix/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() #将发送的告警信息写入本地日志/opt/zabbix/dingding.log中。
#chmod +x dingding.py
#chown -R zabbix.zabbix /opt/zabbix/
4.测试脚本是否能正常使用,并查看"dingding.log"日志。
其中"dzmvl127"为钉钉上个人信息中的"钉钉号"。
[root@vha alertscripts]# ./dingding.py dzmvl127 test "这是一条告警测试信息,请忽略" [root@vha alertscripts]# cat /opt/zabbix/dingding.log ------------------------------------------------------------ 2021-10-27 14:03:19.891915 dzmvl127 发送成功 这是一条告警测试信息,请忽略[root@vha alertscripts]#
查看钉钉群是否有消息传来,如图说明脚本可以正常使用。
至此,zabbix_server端搭建完毕,开始配置zabbix_web端。
三、zabbix_web端
1.编辑"管理------>报警媒介类型",创建媒体类型
2.编辑"管理----->用户",选择使用哪个用户发送消息,这里选择的是Admin,然后选择报警媒介
3.编辑"配置------->动作",选择事件源为"触发器",然后创建动作
动作页面配置:
操作页面配置
消息内容
报警:故障{TRIGGER.STATUS},服务器名:{HOSTNAME1}发生: {TRIGGER.NAME}故障! 告警主机:{HOSTNAME} 告警主机IP地址:{HOST.IP} 告警时间:{EVENT.DATE} {EVENT.TIME} 告警等级:{TRIGGER.SEVERITY} 告警信息: {TRIGGER.NAME} 告警项目:{TRIGGER.KEY1} 问题详情:{ITEM.NAME}:{ITEM.VALUE} 当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1} 事件ID:{EVENT.ID}
恢复操作页面
查看配置好后的动作
将其都启用。至此,web端也已配置完毕。然后开启测试
测试报警与恢复
1.制造报警,将根目录磁盘搞到100%
2.查看仪表盘有报警
3.查看钉钉群
钉钉几乎也是同一时间接收到报警
恢复磁盘容量到正常时,查看恢复
至此,钉钉报警配置完毕。