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中成功配置微信报警功能。当系统出现异常时,你将能够及时通过微信收到告警信息,从而快速响应和处理问题,提升运维效率。
热门推荐
国产大模型加速迭代 开源渐成“必选项”
餐桌椅子尺寸标准及选购指南
儿童止咳的科学方法:从日常护理到专业治疗
深度:NBA各大奖项预测,以及对赛季剩余比赛的5个大胆预测
肺炎支原体又来了,咋办?
葵花籽油的营养价值
六字口号,运动精神的点睛之笔
货币通缩、期货和通胀对股市行情的影响
城市驾驶必备5 优秀习惯指南
判无罪释放后的后果:影响个体与社会的前进与成长
太阳光不同波段的作用及其利用
易学文化考试网:易学对职场发展的帮助?提升职业竞争力。
鼻子过敏治疗全攻略:西医、中医还是洗鼻?
甩脂机的危害有哪些?正在使用的人要注意
廉价机械键盘维修指南:使用电烙铁更换损坏的轴
五谷杂粮米糊热量高吗?营养科医生专业解读
律师为什么需要收取费用:法律服务的价值与收费机制解析
【图像分割】GrabCut算法
重庆大学2024年强基计划:招生专业、就业前景及录取分数线详解
机器人维护:修理工业机器人的完整指南
SPSS软件中缺失值分析的详细教程
职场培训:坚持的力量
猫咪会模仿人类行为
健身人士必读:科学饮食助力运动表现与肌肉恢复
小型休闲农庄规划方案
【加装电梯】消防安全攻略:四大举措,筑牢安全防线!
汽车玻璃壶裂了怎么办?修复方法及所需材料全攻略
资本公积转增股本个税缴纳的条件是什么
八字里的桃花:解读命理中的爱情运势
全面解析,人保车险理赔流程与法律规范