美文网首页
zabbix利用python脚本发送报警脚本

zabbix利用python脚本发送报警脚本

作者: 大胖孩 | 来源:发表于2019-07-08 20:44 被阅读0次

在zabbix报警媒介中,能够使用脚本、邮件、短信去发送告警通知,今天我们就来说一下如何利用python去发送告警通知。



1.首先我们需要查看zabbix-server配置文件中,关于存放监控脚本的目录存放在哪里?
cat zabbix_server.conf |grep -Ev "^$|[#;]"
...
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
...

那么我们就可以看到目录是存放在/usr/lib/zabbix/alertscripts下的,那么我们就在这个目录下创建python脚本吧。

#!/usr/bin/python
# -*- coding: utf-8 -*-
import requests
import json
import sys
import os
   
headers = {'Content-Type': 'application/json;charset=utf-8'}
api_url = "https://oapi.dingtalk.com/robot/send?access_token=e580dbc9d992b790f86136601d95582630afb345ebbf55b373ef5e2fdc92dd6b"
   
def msg(text):
    json_text= {
     "msgtype": "text",
        "at": {
            "atMobiles": [
                "all"
            ],
            "isAtAll": False
        },
        "text": {
            "content": text
        }
    }
    print requests.post(api_url,json.dumps(json_text),headers=headers).content
       
if __name__ == '__main__':
    text = sys.argv[1]
    msg(text)

脚本的有两点需要注意的是:
1.api_url中使用的是自己测试用的token,那么如果你用你自己的,就需要在钉钉上面创建一个机器人;
2.atMobiles中定义的是all,其意味着将@钉钉群里所有人,如果你指向单独@某个人的话,可以使用手机号的方式,填写方式为"13003000000",多个的话需要用,分割开,格式如下:

"atMobiles": [
    "130xxxxxxxx",
    "135xxxxxxxx"
],


那么当我们都配置完成后还需要做什么设置呢,我们需要在web端配置报警媒介:

第一步:打开浏览器进入到zabbix的web界面然后找到管理->报警媒介类型


image.png

第二步:设置报警媒介名称,类型选择脚本,脚本名称选择在脚本目录下一样名字的脚本名,脚本参数需要添加以下参数:

{ALERT.MESSAGE}
image.png

第三步:那我们就需要配置动作,当触发器示警度大于等于信息的时候开始报警,仅发送到脚本中


image.png

然后就可以使用python脚本正常发送告警信息了。

相关文章

网友评论

      本文标题:zabbix利用python脚本发送报警脚本

      本文链接:https://www.haomeiwen.com/subject/dyxzhctx.html