Bootstrap

zabbix使用webhook 实现告警

zabbix可以使用webhook来实现告警通知。Webhook是一种在事件发生时自动触发HTTP POST请求的机制,可以将告警信息发送到指定的URL.


目录

一、脚本部署

1、首先将脚本上传至zabbix server端

2、给脚本赋予执行权限

二、zabbix web界面配置

1、配置报警媒介类型

1.1、新建报警媒介

1.2、告警媒介模板

1.2.1、发送告警消息得模板

1.2.2、告警恢复消息模板

2、添加用户

2.1、新建用户

2.2、配置用户链接报警媒介

2.3、给用户权限

3、创建动作

3.1、创建动作

3.2、创建得动作链接到主机群组

3.3、配置动作由哪个用户完成

三、验证


一、脚本部署

1、首先将脚本上传至zabbix server端

查看脚本应该部署得目录位置

cat /etc/zabbix/zabbix_server.conf 
AlertScriptsPath=/usr/lib/zabbix/alertscripts

将脚本存在到 /usr/lib/zabbix/alertscripts 目录下,脚本更换机器人更改 key 就行

vim /usr/lib/zabbix/alertscripts/webhook.py
#!/usr/bin/python
#-*- coding: utf-8 -*-

import requests
import json
import sys
import os



#api_url="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=7550122e-9f95-4dfc-9d8b-3d47204fc254"
api_url="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=40d6be84-f457-43ef-b915-90691c678f88"
headers = {'Content-Type': 'application/json;charset=utf-8'}

def msg(user,subject,text):
    json_text = {
        "msgtype": "text",
        "text": {
            "content": subject + '\n' + text

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

if __name__ == '__main__':
    user = str(sys.argv[1])
    subject = str(sys.argv[2])
    text = str(sys.argv[3])
    #user = "tt"
    #subject = "test"
    #text = "hello zjh-zabbix-wechat-webhook "
msg(user,subject,text)

2、给脚本赋予执行权限

二、zabbix web界面配置

1、配置报警媒介类型

1.1、新建报警媒介

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

类型选择脚本,名称自己填写,脚本名称zabbix 部署得脚本名称,脚本参数如下

{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

1.2、告警媒介模板

1.2.1、发送告警消息得模板
主题:
服务故障: {EVENT.NAME}


消息:
告警主机: **{HOST.NAME}**
主机地址: **{HOST.IP}**
监控项目: {ITEM.NAME}
当前取值: {ITEM.LASTVALUE}
告警等级: {TRIGGER.SEVERITY}
告警时间: {EVENT.DATE}-{EVENT.TIME}
事件ID: {EVENT.ID}

1.2.2、告警恢复消息模板
主题:
故障恢复: {EVENT.NAME}
    
消息:
主机名称: **{HOST.NAME}**
主机地址: **{HOST.IP}**
告警名称: {EVENT.NAME}
持续时长: {EVENT.DURATION}
恢复时间: {EVENT.RECOVERY.DATE}-{EVENT.RECOVERY.TIME} 
当前状态: {TRIGGER.STATUS}
当前取值: {ITEM.LASTVALUE}
事件ID: {EVENT.ID}

2、添加用户

2.1、新建用户

2.2、配置用户链接报警媒介

2.3、给用户权限

3、创建动作

3.1、创建动作

3.2、创建得动作链接到主机群组

3.3、配置动作由哪个用户完成

三、验证

;