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、配置动作由哪个用户完成

三、验证

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ZabbixWebhook告警是一种通过Webhook机制发送告警通知的方式。在Zabbix中,我们可以使用JavaScript来编写自定义的Webhook媒介类型,以实现发送钉钉或企业微信等报警通知。\[2\]\[3\] 为了方便使用JavaScript的预处理和使用Webhook的媒介类型,Zabbix官方特意封装了一些对象供我们使用。其中,写入Zabbix日志的对象可以使用Log(loglevel, message)方法将日志按照指定的日志级别写入Zabbix日志文件,日志级别可以参考Zabbix的配置文件。这样可以方便我们在调试过程中查找错误原因。\[1\]\[2\] 在Zabbix 5.0中,对于告警(报警媒介)进行了扩展和优化,直接支持Webhook类型的报警媒介。因此,我们可以通过JavaScript语言编写脚本来实现在企业微信发送告警信息。这样的告警脚本具有通用性和灵活性,得到了Zabbix的原生支持。\[3\] 如果你想使用ZabbixWebhook告警功能,首先需要注册企业微信机器人。具体的注册步骤可以参考相关文档或官方指南。一旦注册完成,你就可以在Zabbix中配置Webhook媒介类型,并编写相应的JavaScript脚本来实现告警通知的发送。\[3\] #### 引用[.reference_title] - *1* *2* [Zabbix使用JavaScript配置webhook发送告警通知](https://blog.csdn.net/wanger5354/article/details/118725564)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Zabbix 5.0 企业微信 WebHook 实现故障文本告警](https://blog.csdn.net/weixin_53971298/article/details/113619936)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值