Zabbix微信报警程序实战指南
创作时间:
2025-01-22 08:12:40
作者:
@小白创作中心
Zabbix微信报警程序实战指南
在IT运维领域,监控系统的报警功能至关重要。Zabbix作为一款开源监控系统,提供了丰富的报警方式,其中微信报警因其便捷性和普及性而广受欢迎。本文将详细介绍如何在Zabbix中配置微信报警程序,让你能够及时通过微信接收系统告警信息。
01
环境准备
在开始配置之前,确保你已经具备以下环境:
- Zabbix服务器:已安装并运行Zabbix Server和Web界面。
- 企业微信账号:拥有管理员权限的企业微信账号。
- 网络连通性:Zabbix服务器能够访问企业微信API。
02
配置企业微信机器人
登录企业微信管理后台:打开企业微信官网(https://work.weixin.qq.com),使用管理员账号登录。
创建群聊:在企业微信中创建一个新的群聊,或者选择一个现有的群聊。
添加群机器人:
- 打开群聊界面,点击右上角的三个点。
- 选择“群管理” > “机器人管理”。
- 点击“添加机器人”,按照提示完成创建。
- 保存生成的Webhook地址,这是后续配置的关键信息。
03
配置Zabbix微信报警
1. 创建媒介类型
- 登录Zabbix Web界面,进入“配置” > “报警媒介类型”。
- 点击“创建媒介类型”。
- 填写以下信息:
- 名称:例如“企业微信”
- 类型:选择“Webhook”
- 脚本:粘贴以下代码:
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=YOUR_WEBHOOK_KEY';
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') {
throw "Failed to send message: " + response.errmsg;
}
},
};
try {
var params = JSON.parse(value);
if (typeof params.Key === "undefined") {
throw 'Incorrect value is given for parameter "Key": parameter is missing';
}
Wechat.token = params.Key;
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 + ".";
}
- 参数配置:
- Key:企业微信机器人的Webhook地址中的key值。
- To:接收消息的用户ID或群聊ID。
- Subject:消息标题。
- Message:消息内容。
2. 配置用户媒介
- 进入“管理” > “用户”。
- 选择需要接收报警的用户,点击“编辑”。
- 在“媒介”选项卡中,点击“添加”。
- 填写以下信息:
- 类型:选择刚才创建的“企业微信”。
- 发送到:输入企业微信的UserID或群聊ID。
- Key:企业微信机器人的Webhook地址中的key值。
3. 创建动作
- 进入“配置” > “动作”。
- 点击“创建动作”。
- 填写以下信息:
- 名称:例如“微信告警”
- 条件:根据需要设置触发条件。
- 操作:选择“发送消息”。
- 媒介类型:选择“企业微信”。
- 主题:输入消息标题,例如“{TRIGGER.SEVERITY} - {TRIGGER.NAME}”。
- 消息:输入消息内容,可以使用Zabbix的宏变量,例如:
故障信息:{TRIGGER.STATUS}
服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
04
测试与验证
- 在Zabbix中触发一个测试告警,例如通过创建一个临时的触发器。
- 检查企业微信是否收到告警信息。
- 确认消息内容是否正确,包括标题、时间、主机名等信息。
05
注意事项
- 安全性:企业微信的Webhook地址包含敏感信息,务必妥善保管,避免泄露。
- 网络访问:确保Zabbix服务器能够访问企业微信API,否则可能导致报警失败。
- 消息格式:支持Markdown格式,可以使用标题、列表等格式化消息内容,使信息更清晰易读。
- 错误处理:在脚本中添加了错误处理逻辑,如果发送失败会记录日志,方便排查问题。
通过以上步骤,你就可以在Zabbix中成功配置微信报警功能。当系统出现异常时,你将能够及时通过微信收到告警信息,从而快速响应和处理问题,提升运维效率。
热门推荐
痛风的七个征兆有哪些
2024年西安各区县GDP出炉:西咸新区升至第5,增量第1
2025年普通话考试第四题——50篇“命题说话”题目、范文及解题思路
银行存贷比的调控目标是什么?
威派格:公司股票击鼓传花效应明显 股价六连板后“一字”跌停
被攻击后如何迅速进行自卫
高三英语28分,怎么学可以提分?有1-2个月足以提分到及格线
4月份适合种植什么蔬菜?
专家解读:老年人腿肿的科学应对方法
熊果苷不能和什么混用
柠檬泡水喝的9大禁忌
东方甄选和小杨哥卖过的西梅汁,居然非法添加了泻药?
脾阴虚的症状及调理 脾阴虚和脾阳虚的区别
沃尔夫冈·阿马德乌斯·莫扎特
新发现!莫扎特一首弦乐三重奏,在德国图书馆重见天日
如何制定职业健康安全管理体系的实施计划?
电脑自动锁屏怎么设置?让你安心使用电脑
Windows和Mac电脑快速锁屏技巧
一文详解上下文无关文法:概念、应用与重要性
中国音乐剧演唱风格与技巧分析
人工智能入门 数学基础 线性代数 笔记
概率论与数理统计:机器学习的基石
水泵压力下降?快速排除故障的技巧
探究燕窝滋阴功效及其对健康的全面影响
氯化钴(六水)的性质、制法、用途及安全性
哪些因素影响失业保险金和失业补助金的选择?
2025 必看!儿童床垫挑选全攻略:安全、舒适、实用
注销营业执照怎么办理注销
胆囊炎发作的症状、治疗方法及预防建议
急性胆囊炎的并发症有哪些?