前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【运维篇】zabbix4.0添加钉钉报警

【运维篇】zabbix4.0添加钉钉报警

作者头像
学一学大数据
发布2019-06-03 14:44:26
4.2K5
发布2019-06-03 14:44:26
举报

环境

  • zabbix4.0
  • server端 ubuntu14.04 agent端 centos7
  • zabbix控制面板 没有动作日志。解决:同步系统时间。
步骤
  1. 添加钉钉群机器人,获取webhook地址
  2. zabbix-server.conf 中配置脚本路径并编写脚本
  3. web界面添加报警媒介、动作、授权报警用户
  • 第一步很easy 如图
  • 第二部配置zabbix脚本

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,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()

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界面配置报警媒介 动作 授权用户
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 学一学大数据 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 步骤
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档