zabbix实现钉钉告警

一,申请钉钉账号,登录账号。

二,创建一个告警群组,添加一个机器人。

三,脚本配置

在/usr/local/zabbix/share/zabbix/alertscripts目录下面创建脚本,名称为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 = "此处添加刚才复制下来的webhook"

def msg(text):
    json_text= {
     "msgtype": "text",
        "text": {
            "content": text
        },
        "at": {
            "atMobiles": [
                "1xxxxxxxxxxxxx"
            ],
            "isAtAll": False
        }
    }
    print requests.post(api_url,json.dumps(json_text),headers=headers).content

if __name__ == '__main__':
    text = sys.argv[1]
    msg(text)

给脚本添加执行权限测试脚本

[root alertscripts]# chmod +x zabbix_dingding.py 
[root alertscripts]# ll
total 4
-rwxr-xr-x 1 zabbix zabbix 933 Aug 17 10:05 zabbix_dingding.py
[root alertscripts]# ./zabbix_dingding.py test
{"errmsg":"ok","errcode":0}
[root alertscripts]#

钉钉正确的收到了我们的测试告警,到此监控脚本完成,

四,告警配置

脚本参数  {ALERT.MESSAGE}

信息内容分别为:

操作

默认接收人:告警等级:{TRIGGER.SEVERITY}  主机:{HOSTNAME1} {TRIGGER.NAME}

默认信息: 
告警主机:{HOSTNAME1}

告警信息:{TRIGGER.NAME}

告警等级:{TRIGGER.SEVERITY}

告警项目:{ITEM.NAME} 

告警时间:{EVENT.DATE}_{EVENT.TIME}

当前状态:故障  值={ITEM.VALUE1}

故障已持续{EVENT.AGE},请尽快处理

事件ID:{EVENT.ID}

恢复操作

默认接收人:告警等级:故障恢复  主机:{HOSTNAME1} {TRIGGER.NAME}
默认信息:告警主机:{HOSTNAME1}

告警信息:{TRIGGER.NAME}

告警项目:{ITEM.NAME} 

告警时间:{EVENT.DATE}_{EVENT.TIME}

恢复时间:{EVENT.RECOVERY.DATE}_{EVENT.RECOVERY.TIME}

当前状态:{TRIGGER.STATUS} 值={ITEM.VALUE1}

故障共持续{EVENT.AGE}

事件ID:{EVENT.ID}

确认操作

确认操作:
默认接收人:服务器:{HOST.NAME}: 报警确认
默认信息:
{
服务器:{HOST.NAME}发生: {TRIGGER.NAME}故障!
确认人:{USER.FULLNAME} 
时间:{ACK.DATE} {ACK.TIME} 
确认信息如下:
"{ACK.MESSAGE}"
问题服务器IP:{HOSTNAME1}
问题ID:{EVENT.ID}
当前的问题是: {TRIGGER.NAME}
}

告警添加完成,先关闭一台机器上面的agent

收到如下告警

确认告警,收到如下信息

启动agent,告警恢复,收到如下信息

告警信息,确认信息,恢复信息接收正常,到此,配置完成!

猜你喜欢

转载自blog.csdn.net/pufaqi/article/details/81779511