Zabbix6.0使用企业微信告警教程Zabbix5.x版本皆可参考

环境准备

#修改主机名(非必做操作,可以不做,为了方便)
#Zabbix-Server
[root@localhost ~]# hostnamectl set-hostname zabbix

#Zabbix-Agent
[root@localhost ~]# hostnamectl set-hostname agent

#Zabbix-Server
[root@zabbix ~]# vim /etc/hosts
10.128.0.0 zabbix
10.128.0.1 agent

#复制到agent节点
[root@zabbix ~]# scp /etc/hosts agent:/etc/hosts

#临时关闭+永久关闭
#Zabbix-Server
[root@zabbix ~]# setenforce 0
[root@zabbix ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

#Zabbix-Agent
[root@agent ~]# setenforce 0
[root@agent ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

安装过程直接省略.....yum -y install 即可

一 企业微信部分

1-1 创建企业


1、如果没有测试的企业,可以选择注册一个企业,点开企业微信官网,选择企业微信注册

在这里插入图片描述


2、按照提示正常输入信息即可(创建完直接登录即可,什么认证都不需要)

在这里插入图片描述


3、登录后创建企业微信机器人

在这里插入图片描述

4、每个人的机器人信息都不一样,不要用我的,用自己的

二 Web服务部分

2-1 创建主机群组及主机


1、创建一个主机群组,名称随意

在这里插入图片描述
2、创建好监控主机(配置-主机-创建主机),名称随便写,点击下方的添加,写被监控节点的IP地址,端口默认是10050
在这里插入图片描述

2-2 创建模板


1、写好群组和名称即可

Enterprise Warrning

2-3 创建监控项

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述

点击测试,看看是否可以获取到数据

在这里插入图片描述

2-4 创建触发器

在这里插入图片描述

这个地方选择我们刚才创建好的监控项就可以,结果就是触发条件,大于等于多少告警,或者其他条件

在这里插入图片描述

选好严重性,点击添加即可

在这里插入图片描述

2-5 关联模板

在这里插入图片描述

2-6 测试模板的监控项及触发器


a.在被检测机器,让CPU负载高一些,测试触发器是否生效(可以直接输入yes命令)
b.此处仪表盘有数据更新,代表监控项及触发器设置正确


在这里插入图片描述


在这里插入图片描述

2-7 创建告警媒介


在这里插入图片描述

1、Token的位置一定要注意,写自己的企业微信的Key,参考企业微信部分,还有脚本的位置也需要修改成自己的Key

在这里插入图片描述
在这里插入图片描述

var Wechat = {
    token: null,
    to: null,
    message: null,
    parse_mode: null,

    sendMessage: function() {
        var params = {
            msgtype: "markdown",
            chat_id: Wechat.to,
            markdown: {
                content:Wechat.message
            },
            disable_web_page_preview: true,
            disable_notification: false
        },
        data,
        response,
        request = new CurlHttpRequest(),
        url = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=9bd583d5-96b3-49cc-8a9f-f2a01e7127e0';

        if (Wechat.parse_mode !== null) {
            params['parse_mode'] = Wechat.parse_mode;
        }

        request.AddHeader('Content-Type: application/json');
        data = JSON.stringify(params);

        // Remove replace() function if you want to see the exposed token in the log file.
        Zabbix.Log(4, '[Wechat Webhook] URL: ' + url.replace(Wechat.token, '<TOKEN>'));
        Zabbix.Log(4, '[Wechat Webhook] params: ' + data);
        response = request.Post(url, data);
        Zabbix.Log(4, '[Wechat Webhook] HTTP code: ' + request.Status());
        Zabbix.Log(4, '[Wechat Webhook] response: ' + response);

        try {
            response = JSON.parse(response);
        }
        catch (error) {
            response = null;
            Zabbix.Log(4, '[Wechat Webhook] response parse error');
        }

        if (request.Status() !== 200 ||  response.errcode !== 0 || response.errmsg !== 'ok') {
            if (typeof response.errmsg === 'string') {
                throw response.errmsg;
            }
            else {
                throw 'Unknown error. Check debug log for more information.'
            }
        }
    }
}

try {
    var params = JSON.parse(value);

    if (typeof params.Token === 'undefined') {
        throw 'Incorrect value is given for parameter "Token": parameter is missing';
    }

    Wechat.token = params.Token;

    if (['Markdown', 'HTML', 'MarkdownV2'].indexOf(params.ParseMode) !== -1) {
        Wechat.parse_mode = params.ParseMode;
    }

    Wechat.to = params.To;
    Wechat.message = params.Subject + '\n' + params.Message;
    Wechat.sendMessage();

    return 'OK';
}
catch (error) {
    Zabbix.Log(4, '[Wechat Webhook] notification failed: ' + error);
    throw 'Sending failed: ' + error + '.';
}


2、点击我们刚才创建好的报警媒介后方的测试,测试JavaScript是否有问题

在这里插入图片描述

现象如下图,证明测试成功

在这里插入图片描述

2-8 编辑用户的告警媒介

在这里插入图片描述

1、这里的收件人写群机器人的名字就可以,类型的话写我们刚才创建的告警媒介,最后点击添加(添加好一定要点更新)

在这里插入图片描述

2-9 配置动作

在这里插入图片描述

1、这个地方动作的条件写我们做好的触发器、模板、主机即可

在这里插入图片描述


2、操作部分选好群组、用户即可,仅发送这个位置是我们写的触发媒介。主题及消息按照如下配置即可

在这里插入图片描述

主题:

### 【监控告警】主机: <font color="warning">{HOST.NAME}</font>  IP地址:<font color="warning">{HOST.IP}</font>

消息:

>主机名称:**<font color="comment">{HOST.NAME}</font>**
>主机IP:<font color="comment">{HOST.IP}</font>
>告警时间:<font color="comment">{EVENT.DATE}-{EVENT.TIME}</font>
>问题名称:<font color="warning">{EVENT.NAME}</font>
>问题详情:<font color="comment">{ITEM.NAME}:{ITEM.VALUE}</font>
>目前状态:<font color="comment">{TRIGGER.STATUS}</font>
>操作数据:<font color="comment">{EVENT.OPDATA}</font>


其他两个一样的步骤

在这里插入图片描述


确保已启用即可

在这里插入图片描述

三 测试


终端执行yes命令,增强cpu负载

在这里插入图片描述

Web告警正常

在这里插入图片描述


查看Web页面告警

在这里插入图片描述


查看企业微信

在这里插入图片描述

### 配置 Zabbix 使用企业微信进行告警通知 #### 注册并配置企业微信 为了使 Zabbix 能够通过企业微信发送告警,需先完成企业微信的相关设置。 - **创建企业微信号**:按照官方指引注册企业微信账号[^1]。 - **添加部门及成员**:为企业内的不同团队建立相应的部门结构,并邀请相关人员加入。 - **创建自定义应用**:用于接收来自 Zabbix 的消息推送。此应用程序将作为两者之间的桥梁。 #### 安装与配置 Zabbix Server 接下来,在服务器端执行必要的更改来支持新的通信渠道: - **修改 `zabbix_server.conf` 文件**:确保启用了外部脚本功能(ExternalScripts),这允许运行第三方程序处理事件响应逻辑。 - **安装 Python Requests 库**:由于大多数情况下会采用 HTTP API 方式调用企微接口,因此需要确保系统中有可用的 requests 包以便于后续开发或部署现成的通知插件[^2]。 ```bash pip install --upgrade pip setuptools wheel pip install requests ``` - **编写或获取微信报警脚本**:可以自行编码实现或者利用社区贡献者分享过的成熟方案,比如 `wechat-webhook.py` 这样的工具可以帮助简化集成过程。 ```python #!/usr/bin/env python3 import json, sys, os from optparse import OptionParser import requests def send_message(webhook_url, content): headers = {'Content-Type': 'application/json'} data = {"msgtype": "text", "text": {"content": str(content)}} response = requests.post(url=webhook_url, headers=headers, data=json.dumps(data)) return response.status_code == 200 and not json.loads(response.text)['errcode'] if __name__ == '__main__': parser = OptionParser() parser.add_option("-u", "--url", dest="webhook_url", help="WebHook URL") parser.add_option("-m", "--message", dest="message", help="Message to be sent") (options, args) = parser.parse_args() if options.webhook_url is None or options.message is None: print('参数错误') exit(1) result = send_message(options.webhook_url, options.message) if not result: print('发送失败') exit(1) ``` - **验证脚本工作正常**:可以通过命令行直接调用上述脚本来初步确认其能否正确向指定的企业微信群组传递信息。 #### Web 界面操作指南 最后一步是在图形化管理界面上做相应调整以启用新特性: - **新增媒介类型**:进入“Administration -> Media types”,点击右上角绿色加号按钮,选择合适的模板或是手动输入名称、路径指向之前准备好的可执行文件位置等必要字段。 - **设定触发器动作**:转到 “Configuration -> Actions”,新建一条记录关联至特定情况下的自动反应机制,如当主机不可达时即刻发出警告给运维人员。 - **指派用户接受方式**:前往 “Users” 下找到目标联系人资料页签中的“Media”部分,勾选刚才定义好选项并填写额外所需参数(例如聊天室ID)。 - **最终检验整个流程有效性**:尝试人为制造一次异常状况观察是否能及时接收到预期形式的消息提醒[^4]。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值