一、创建钉钉机器人
1.1 步骤:智能群助手--->添加机器人--->自定义--->添加
image.pngimage.png
image.png
1.2 进行机器人设置
image.png1.3 记下Webhook,很重要,点击完成
image.png二、zabbix设置
2.1 找到zabbix默认存放脚本的目录
image.png2.2 到该目录下编写dingding.py脚本(脚本中包含钉钉机器人的webhook值):
[root@zabbix-master alertscripts]# pwd
/usr/lib/zabbix/alertscripts
[root@zabbix-master alertscripts]# cat dingding1.py
#!/usr/bin/env python
#coding:utf-8
#zabbix钉钉报警
import requests,json,sys,os,datetime
webhook="https://oapi.dingtalk.com/robot/send?access_token=???????????????????????????????"
user=sys.argv[1]
text=sys.argv[3]
data={
"msgtype": "text",
"text": {
"content": 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/logs/dingding.log"):
f=open("/usr/lib/zabbix/logs/dingding.log","a+")
else:
f=open("/usr/lib/zabbix/logs/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-master alertscripts]#
2.3 创建上面脚本日志的路径和文件
[root@zabbix-master alertscripts]# mkdir -p /usr/lib/zabbix/logs/
[root@zabbix-master alertscripts]# touch /usr/lib/zabbix/logs/dingding.log
[root@zabbix-master alertscripts]# chmod 755 dingding.py
[root@zabbix-master alertscripts]# chown zabbix.zabbix dingding.py
[root@zabbix-master alertscripts]# chown zabbix.zabbix /usr/lib/zabbix/logs/dingding.log
测试一下脚本
两个参数可以随意,但是一定要有。测试信息一定要加上钉钉机器人里面设置的关键词。
[root@zabbix-master alertscripts]# ./dingding.py a b "eliauk: 这是测试"
[root@zabbix-master alertscripts]#
image.png
三、Zabbix监控界面配置
3.1 创建报警媒介. 三个参数分别是:ALERT.SENDTO
ALERT.SUBJECT
ALERT.MESSAGE
image.png
3.2 给用户添加报警媒介
image.png3.3 配置动作
image.pngimage.png
image.png
image.png
配置完点击“更新”
四、测试zabbix钉钉告警
关掉nginx服务
[root@zabbix-master alertscripts]# netstat -lntp | grep 81
tcp 0 0 0.0.0.0:81 0.0.0.0:* LISTEN 16757/nginx: master
tcp6 0 0 :::81 :::* LISTEN 16757/nginx: master
[root@zabbix-master alertscripts]# systemctl stop nginx
[root@zabbix-master alertscripts]# netstat -lntp | grep 81
[root@zabbix-master alertscripts]#
image.png
查看一下钉钉告警日志
===========配置完成==========
网友评论