[技术干货] 【运维篇】zabbix4.0添加钉钉报警

[复制链接]
乐维 发表于 2020-7-29 16:19:52 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
环境
  • zabbix4.0
  • server端 ubuntu14.04   agent端 centos7
  • zabbix控制面板 没有动作日志。解决:同步系统时间。

步骤
  • 添加钉钉群机器人,获取webhook地址
  • zabbix-server.conf 中配置脚本路径并编写脚本
  • web界面添加报警媒介、动作、授权报警用户

  • 第一步很easy 如图

1.png
2.png
3.png

  • 第二部配置zabbix脚本
    4.png


1.进入zabbix server 配置文件目录 /etc/zabbix/zabbix_server.conf 安装方式不同所在目录不同。可以用 find / -name zabbix_server.conf 命令查找
2.查看脚本执行目录,并在目录下创建如下脚本
vim /usr/lib/zabbix/alertscripts/dingding.py#!/usr/bin/env python#coding:utf-8#zabbix钉钉报警import requests,json,sys,os,datetimewebhook="上面创建钉钉机器人的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()vim /usr/lib/zabbix/alertscripts/dingding.py#!/usr/bin/env python#coding:utf-8#zabbix钉钉报警import requests,json,sys,os,datetimewebhook="上面创建钉钉机器人的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()
3.赋予脚本可执行权限:chmod +x /usr/lib/zabbix/alertscripts/dingding.py
踩过的坑:切换到/usr/lib/zabbix/alertscripts 目录下 chmod -x dingding.py还是纯文本  
测试脚本可用性方法:python dingding.py 18710140128 "这是一条测试文字"
脚本使用文档https://open-doc.dingtalk.com/microapp/serverapi2/qf2nxq
        
  • 第三步                  web界面配置报警媒介 动作 授权用户

5.png
6.png
7.png
8.png
至此,监控警报工程已完工。



技术交流欢迎加入Q群:177428068



5.png




上一篇:Zabbix通过XCC监控联想服务器状态
下一篇:Zabbix“专家坐诊”第70期问答汇总
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝0

帖子230

发布主题

乐维社区

微信公众号

版权所有 © 2016-2019 九一乐维丨粤ICP备17007026号