侧边栏壁纸
博主头像
爱运维 博主等级

行动起来,活在当下

  • 累计撰写 197 篇文章
  • 累计创建 143 个标签
  • 累计收到 21 条评论

目 录CONTENT

文章目录

zabbix报警之利用钉钉机器人报警

Administrator
2018-03-23 / 0 评论 / 0 点赞 / 4 阅读 / 0 字

效果图:


 

     发送日志图:

 


环境需求:

    zabbix需要能连接互联网

    python 2 3,requests模块


钉钉配置

    需要新建一个钉钉群,群里面添加一个机器人即可。
    点击加入一个自定义机器人


    这里需要记住webhook,脚本后面需要


zabbix配置

    进入zabbix自定义脚本目录,在zabbix server安装目录定义的


    这里我的conf配置文件在/usr/local/zabbix/etc/zabbix_server.conf  

    里面定义的脚本执行目录是

        AlertScriptsPath=/usr/local/zabbix/alertscripts

    在/usr/local/zabbix/alertscripts下面新建一个dingding.py,这里修改

   webhook="你的钉钉机器人地址"


vim /usr/local/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()
    赋予权限:chmod +x /usr/local/zabbix/alertscripts/dingding.py

zabbix web 设置

    创建一个报警媒介

    管理-->报警媒介类型-->创建媒介类型

    新建一个钉钉的报警,脚本名称就是我们脚本名dingding.py




    用户添加报警媒介

    收件人是钉钉上的手机号码


添加报警动作


这里就完成了

    

问题:如果一条多个报警,且提示报警失败,请将/tmp/zabbix_dingding.log设置为zabbix用户和用户组


脚本测试:

    python dingding.py 报警手机号码 test "报警类容"

0

评论区