zabbix-钉钉报警

2020-12-09

1、获取钉钉群机器人的webhook,参考钉钉官方获取方式:https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq
2、zabbix服务端配置
    1、[root@r1 ~]# cat /etc/zabbix/zabbix_server.conf | grep ^AlertScriptsPath
        AlertScriptsPath=/usr/lib/zabbix/alertscripts
         [root@r1 ~]# cd /usr/lib/zabbix/alertscripts 
    2、[root@r1 alertscripts]# vim dd.py   #创建一个python脚本如下图,内容在文章底部        

zabbix-钉钉报警_第1张图片

    3、添加执行权限&创建脚本中的日志路径&修改文件属主数组
        [root@r1 alertscripts]# chmod +x dd.py 
        [root@SrtAly120 alertscripts]# mkdir -p /usr/local/zabbix/log/
        [root@SrtAly120 alertscripts]# touch /usr/local/zabbix/log/dingding.log
        [root@SrtAly120 alertscripts]# chown zabbix.zabbix /usr/local/zabbix/log/dingding.log
    4、测试脚本:[root@r1 alertscripts]# ./dd.py test test "测试下"   
       #如果收不到消息,查看下机器人的安全设置如下图,增加个测试的关键字
       #可能会报错,某个python的模块没有安装,自行百度安装个对应的模块就好

zabbix-钉钉报警_第2张图片
zabbix-钉钉报警_第3张图片

2、web端配置
    1、创建报警媒介   脚本参数:{ALERT.SENDTO}      {ALERT.SUBJECT}      {ALERT.MESSAGE}

zabbix-钉钉报警_第4张图片

    2、给用户添加报警媒介,收件人随便写;之后就可以收到报警信息了

zabbix-钉钉报警_第5张图片

######################################################################

#!/usr/bin/env python
#coding:utf-8
#zabbix钉钉报警
import requests,json,sys,os,datetime
webhook="替换"      #说明:这里改为自己创建的机器人的webhook的值
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/local/zabbix/log/dingding.log"):
    f=open("/usr/local/zabbix/log/dingding.log","a+")
else:
    f=open("/usr/local/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()

你可能感兴趣的:(zabbix-钉钉报警)