zabbix 利用python脚本实现钉钉告警

时间:2021-09-18 08:51:28

Zabbix 利用python脚本实现钉钉告警

1、安装python3.6环境

2、创建python脚本

cd local/zabbix-4.0.3/share/zabbix/alertscripts/

新建一个zabbix_dingding.py文件

vi zabbix_dingding.py

//修改文件所有者为zabbix

chown zabbix.zabbix zabbix_dingding.py

//设置所有者为7权限

chmod 744 zabbix_dingding.py

文件内容如下:

#!/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=abec8a22f6fdfc458e9ecdd922ae2349bcbf862bfaa7f6b15c71f80fd6fc9ff1"

def msg(text):

    json_text= {

     "msgtype": "text",

        "text": {

            "content": text

        },

        "at": {

            "atMobiles": [

                "atMobiles":[13xxxxxxxx,186xxxxxxxx]  

            ],

            "isAtAll": False

        }

    }

    requests.post(api_url,json.dumps(json_text),headers=headers).content

if __name__ == '__main__':

    text = sys.argv[1]

    msg(text)

 

3、zabbix管理后台,创建一个新的媒介类型叫钉钉

 zabbix 利用python脚本实现钉钉告警

 

 脚本参数为{ALERT.MESSAGE}

4、为用户添加钉钉媒介类型

 zabbix 利用python脚本实现钉钉告警

 

 5为需要钉钉告警的触发器创建新的动作

 zabbix 利用python脚本实现钉钉告警

 

6、设置触发条件后,转“操作”

 zabbix 利用python脚本实现钉钉告警

消息内容为:

##告警
主机名称:{HOST.NAME}
IP地址 :{HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警信息:{TRIGGER.NAME}
告警级别:{TRIGGER.SEVERITY}
检查项 :{TRIGGER.KEY1}
当前状态:{TRIGGER.STATUS}
值={ITEM.LASTVALUE}
故障已持续{EVENT.AGE}

 

7、设置好”操作”后,再转”恢复操作”

zabbix 利用python脚本实现钉钉告警

 

  消息内容为:

##恢复

主机名称:{HOST.NAME}
IP地址 :{HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
故障时长:{EVENT.AGE}
告警信息:{TRIGGER.NAME}
告警级别:{TRIGGER.SEVERITY}
检查项 :{TRIGGER.KEY1}
当前状态:{TRIGGER.STATUS}
值={ITEM.VALUE}

 

动作设置完毕,就可以测试了

钉钉收到的效果

 zabbix 利用python脚本实现钉钉告警

 

zabbix 利用python脚本实现钉钉告警