我们在钉钉上建立群聊,然后在群聊上添加钉钉机器人:

编写,脚本需要放在zabbix 的alertscripts目录下(如果不知道该目录的位置,可以使用find命令查找)

find / -iname alertscripts

脚本

vim /usr/local/zabbix/alertscripts/dingding.py
#!/usr/bin/env python
#coding:utf-
#zabbix钉钉报警
import requests,json,sys,os,datetime
webhook="上面创建钉钉机器人的webhook地址"
user=sys.argv[]
text=sys.argv[]
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"+"--"*)
if x.json()["errcode"] == :
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()

脚本创建的时候最好在服务器端新建,不要在windows主机上创建完后再上传到服务器上,很有可能出现无法调用脚本的问题(在服务器上能使用脚本发送测试信息,log日志也可以看到,但是zabbix server 无法调用脚本,动作日志看已经发送,但钉钉收不到信息,log日志也查看不到该信息),我猜测可能是windows和Linux的编码问题

脚本和log授权

chmod +x /usr/local/zabbix/alertscripts/dingding.py
chown zabbix.zabbix /usr/local/zabbix/alertscripts/dingding.py
chmod +x /tmp/zabbix_dingding.log
chown zabbix.zabbix /tmp/zabbix_dingding.log

操作

默认接收人 : 
服务器:{HOST.NAME}发生: {TRIGGER.NAME}故障!
默认信息 :
{
报警主机:{HOST.NAME}
主机地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
报警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
报警信息:{TRIGGER.NAME}
报警时间:{EVENT.DATE} {EVENT.TIME}
事件ID:{EVENT.ID}
}

恢复操作

默认接收人:
服务器:{HOST.NAME}: {TRIGGER.NAME}已恢复!
默认信息:
{
报警主机:{HOST.NAME}
主机地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
报警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
报警信息:{TRIGGER.NAME}
报警时间:{EVENT.DATE} {EVENT.TIME}
恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
持续时间:{EVENT.AGE}
事件ID:{EVENT.ID}
}

日子查看

[root@JumpFency alertscripts]# more /tmp/zabbix_dingding.log 

参考:https://blog.51cto.com/m51cto/2051945

最新文章

  1. 上标、下标~不常用的 html 标签
  2. DNS错误 事件4000 4013
  3. English Snippets
  4. 简单使用SQLite 的增删改查
  5. SVN 获取源码一直没绿色打勾的标识原因。
  6. ext3grep
  7. JLINK V8 升级5.12E 在MDK5.20不变砖
  8. 【CSS系列-选择器优先级总结】
  9. 通过替换frm文件方式修改表结构
  10. Phalcon 的 bootstrap.php 自动加载完成;非常人性化的设计
  11. wcf 给net.tcp 加mex
  12. 不调用库函数实现 strCpy
  13. 分区工具PQ
  14. [原] inline operator delete & DLL boundary
  15. DNN原理探究系列之目录与序章篇
  16. springboot 学习之路 6(定时任务)
  17. JAVA调用外部安装7-Zip压缩和解压zip文件
  18. Android Frame动画demo
  19. 关于emoji表情
  20. js 实现数组元素交换位置

热门文章

  1. [Split The Tree][dfs序+树状数组求区间数的种数]
  2. win10企业版2016长期服务版本激活
  3. Tomcat报异常:Too many open files 的解决之路
  4. github与github网站push神器
  5. ab压力测试nginx
  6. visual studio2017----编码和行尾
  7. Twitter的雪花算法(snowflake)自增ID
  8. 黄聪:如何扩展Chrome DevTools来获取页面请求
  9. phpcms基础循环
  10. 20165312 实验一 Java开发环境的熟悉