zabbix-钉钉报警部署
1. 流程说明
- 申请钉钉机器人
- 获取Webhook配置安全设置
- 获取钉钉号
- 使用脚本(shell/python)调用钉钉接口: python 输入收件人 信息
- 配置发件人
- 配置收件人
2. 实战
2.1 钉钉操作
- 创建群申请钉钉机器人
- 记录webhook并配置安全设置
2.2 zabbix服务端端操作
- 编写脚本
脚本存放目录:/usr/local/share/zabbix/alertscripts
[root@m03-zabiix-server /usr/local/share/zabbix/alertscripts]# cat dingding.py
#!/usr/bin/env python3
#author: ansheng
#coding:utf-8
import requests,json,sys,os,datetime
webhook="https://oapi.dingtalk.com/robot/send?access_token=4312d449801a429b7111ee05a332ce2b5802fb3827fc8f43ae2578340df07f9c" #这里填钉钉机器人的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/dingding.log"):
f=open("/tmp/dingding.log","a+")
else:
f=open("/tmp/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@m03-zabiix-server /usr/local/share/zabbix/alertscripts]# chmod +x dingding.py #添加执行权
- 测试
2.3 web页面操作
- 添加报警媒介类型
- 配置收件人
- 测试,创造一个新故障