python脚本为敏捷开发脚本,在zabbix监控也起到重要作用,以下是使用python脚本发钉钉告警的配置方法。
脚本如下:
vim /usr/lib/zabbix/alertscripts/dingding.py
#!/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("/tmp/zabbix_dingding.log"):
f=open("/tmp/zabbix_dingding.log","a+")
else:
f=open("/tmp/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()
新建dingding.py文件,将以上代码复制编辑,修改里面webhook的值。
保存后输入chmod a+x dingding.py 给dingding.py文件赋予执行权
在zabbix客户端创建一个告警媒介
添加用户的告警媒介
添加配置-动作
如出现“ImportError: No module named requests”报错而无法发送信息,则说明没有requess模块,执行以下命令
yum install python-pip
pip install requests