news 2026/7/28 8:33:18

【Zabbix 多渠道报警全攻略(附图文教程):钉钉 / 企微 / 飞书 / 邮箱配置,含前置环境搭建(监控项、触发器、脚本与动作创建)、完整配置流程(脚本添加、媒介创建、关联授权)与功能测试】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Zabbix 多渠道报警全攻略(附图文教程):钉钉 / 企微 / 飞书 / 邮箱配置,含前置环境搭建(监控项、触发器、脚本与动作创建)、完整配置流程(脚本添加、媒介创建、关联授权)与功能测试】

提示:本文原创作品,良心制作,干货为主,简洁清晰,一看就会

Zabbix钉钉/企微/飞书/邮箱报警

  • 一、前置环境
    • 1.1 实验环境介绍
    • 1.2 创建监控项
    • 1.3 创建触发器
    • 1.4 创建脚本
    • 1.5 创建动作
    • 1.6 测试nginx能否重启
  • 二、钉钉报警
    • 2.1 创建机器人
    • 2.2 添加脚本
    • 2.3 创建媒介
    • 2.4 用户关联媒介
    • 2.5 动作关联媒介
    • 2.6 测试报警
  • 三、企微/飞书报警
    • 3.1 创建机器人
    • 3.2 添加脚本
    • 3.3 创建媒介
    • 3.5 用户关联媒介
    • 3.6 动作关联媒介
    • 3.7 测试报警
  • 四、邮箱报警
    • 4.1 邮箱开启授权
    • 4.2 创建媒介
    • 4.3 动作关联媒介
    • 4.4 测试报警

一、前置环境

1.1 实验环境介绍

我先说一下我的环境

IP地址主机名部署软件节点作用及职责安装配置状态
192.168.136.134zabbix-server1. Zabbix Server
2. Zabbix Agent
3. MySQL
4. Apache
监控系统核心节点,负责接收各被监控节点上报的数据,同时承担数据存储、告警触发及监控面板展示的核心职责已完成安装与配置
192.168.136.135zabbix-node11. Zabbix Agent
2. 业务被监控软件
业务侧被监控节点,通过Zabbix Agent采集本地系统资源与业务软件运行状态数据,并实时上报至Zabbix Server已完成安装与配置

我的环境比较简单,这里我不再演示怎么搭建环境,不清楚的小伙伴可以看我这篇文章https://blog.csdn.net/m0_63756214/article/details/156421867?spm=1001.2014.3001.5501

什么时候我们有报警需求?当监控指标出现异常,需要 Zabbix 及时推送告警通知时,需先创建对应监控项,再为该监控项配置触发器;触发器触发后,将执行预设动作(如运行指定命令或发送告警消息)

接下来我会做的事如下:

  1. 创建监控项;2. 配置触发器,在监控项数据异常时触发;3.创建脚本,执行重启nginx的命令;4.创建媒介发送消息;5. 创建动作,关联媒介,触发器触发后自动执行命令并发送告警消息

本次将以监控 Nginx 80 端口为例进行实操演示


1.2 创建监控项

新增一个监控项


1.3 创建触发器




1.4 创建脚本

这一步的作用是,当nginx宕机后会执行脚本重启nginx



1.5 创建动作

这里我们可以先创建动作,之后再关联媒介




1.6 测试nginx能否重启

手动关闭nginx模拟故障,看动作能不能正确触发
点击“问题”中可以看到,我们手动关闭后nginx被zabbix自动重启

确认上述配置无误后,即可开始配置消息报警。本实验核心是讲解告警配置方法,即便不添加上述脚本也能完成演示;但为了内容更详尽,这里还是对脚本做了说明



二、钉钉报警

2.1 创建机器人





2.2 添加脚本

#在zabbix-server中操作root@zabbix-server:~# python3 -V #先看一下有没有python3的环境;如果你是centos7系统要另外去配置python的环境Python3.6.9 root@zabbix-server:~# apt -y install python3-pip #安装python3-pip工具root@zabbix-server:~# pip3 install requests #安装requests库root@zabbix-server:~# cd /usr/lib/zabbix/alertscripts/ #这个目录是专门用来放脚本的root@zabbix-server:/usr/lib/zabbix/alertscripts# lsroot@zabbix-server:/usr/lib/zabbix/alertscripts# vim dingding.py#!/usr/bin/env python3importrequests,json,sys,os,datetime# 钉钉机器人webhook地址webhook="粘贴webhook地址"# 处理参数:兼容测试和Zabbix调用场景user=sys.argv[1]iflen(sys.argv)>=2else""# 测试时如果只传1个参数,文本用第一个参数;Zabbix调用时用第3个参数text=sys.argv[3]iflen(sys.argv)>=4elsesys.argv[1]# 构建钉钉消息体data={"msgtype":"text","text":{"content":text},"at":{"atMobiles":[user],"isAtAll":False}}headers={'Content-Type':'application/json'}# 发送请求x=requests.post(url=webhook,data=json.dumps(data),headers=headers)# 确保日志目录存在log_dir="/var/log/zabbix"ifnot os.path.exists(log_dir): os.makedirs(log_dir)# 写入日志(UTF-8编码避免中文乱码)log_file=os.path.join(log_dir,"dingding.log")with open(log_file,"a+",encoding="utf-8")as f: f.write("\n"+"--"*30)ifx.json()["errcode"]==0: f.write(f"\n{datetime.datetime.now()} {user} 发送成功\n{text}")else: f.write(f"\n{datetime.datetime.now()} {user} 发送失败\n{text}")root@zabbix-server:/usr/lib/zabbix/alertscripts# chmod +x dingding.pyroot@zabbix-server:/usr/lib/zabbix/alertscripts# ./dingding.py "问题" #测试一下脚本

查看钉钉收到消息


2.3 创建媒介

去zabbix界面上操作

消息模板中一定要包含我们刚才在钉钉中创建的关键字,不然会收不到消息


2.4 用户关联媒介

待会我们需要一个用户去发送消息,所以该用户需要有媒介的权限



2.5 动作关联媒介

选择我们刚才创建的动作



2.6 测试报警

手动停掉nginx模拟故障,然后去"问题"中查看,可以看到执行了两部动作:执行重启命令和发送消息



三、企微/飞书报警

企微和飞书的设置方式一样,这里我拿企微做例子

3.1 创建机器人



3.2 添加脚本

root@zabbix-server:/usr/lib/zabbix/alertscripts# cd /usr/lib/zabbix/alertscripts/root@zabbix-server:/usr/lib/zabbix/alertscripts# vim weixi.py#!/usr/bin/env python3importrequests, json, sys, os, datetime# ==================== 替换成你的企业微信机器人webhook ====================WEBHOOK_URL="替换成你的企业微信机器人webhook"# ======================================================================# 处理告警文本参数(无参数用默认值,有参数则拼接所有传入的参数)alert_text="Zabbix默认告警:无具体信息"iflen(sys.argv)>=2: alert_text=" ".join(sys.argv[1:])# 拼接所有传入的参数作为告警文本# 构建企业微信纯文本消息体(移除所有@人相关字段)data={"msgtype":"text","text":{"content":alert_text# 仅保留告警文本,无@人逻辑}}headers={'Content-Type':'application/json;charset=utf-8'}response_result={"errcode":-1,"errmsg":"未发送请求"}# 发送请求(保留UTF-8编码解决中文问题)try: json_str=json.dumps(data,ensure_ascii=False)json_bytes=json_str.encode('utf-8')resp=requests.post(url=WEBHOOK_URL,data=json_bytes,headers=headers,timeout=10)resp.raise_for_status()response_result=resp.json()except Exception as e: response_result["errmsg"]=f"请求失败:{str(e)}"# 确保日志目录存在log_dir="/var/log/zabbix"ifnot os.path.exists(log_dir): os.makedirs(log_dir,exist_ok=True)# 写入日志(移除手机号相关记录)log_file=os.path.join(log_dir,"weixin.log")with open(log_file,"a+",encoding="utf-8")as f: f.write("\n"+"--"*35)log_content=(f"\n时间:{datetime.datetime.now()}"f"\n告警文本:{alert_text}"f"\n发送结果:{'成功' if response_result['errcode'] == 0 else '失败'}"f"\n错误信息:{response_result['errmsg']}")f.write(log_content)root@zabbix-server:/usr/lib/zabbix/alertscripts# chmod +x weixi.pyroot@zabbix-server:/usr/lib/zabbix/alertscripts# ./weixi.py "Zabbix告警:Nginx 80端口异常" #测试一下脚本能不能发送

企微接受消息成功


3.3 创建媒介

参考钉钉报警

3.5 用户关联媒介

参考钉钉报警

3.6 动作关联媒介

参考钉钉报警


3.7 测试报警

手动停掉nginx模拟故障,然后去"问题"中查看,可以看到执行了两部动作:执行重启命令和发送消息



四、邮箱报警

4.1 邮箱开启授权

去邮箱的设置中开启这两个服务,然后复制弹窗中的授权码


4.2 创建媒介

接下来我们创建媒介

添加完成后,可以测试一下邮件能不能发生成功

查看163邮箱,发现邮件接受成功


4.3 动作关联媒介

这个时候我们回到刚才创建的action_trigger_nginx_listen_80这个动作,然后添加两个操作


下面这一步是保证Admin和刚才我们创建的媒介关联


4.4 测试报警

接下来我们进行测试,验证 Nginx 启停状态是否能正常触发邮件通知
进入监测→问题查看状态,正常情况下 Nginx 无异常;手动停掉 Nginx 模拟故障,触发器会触发关联动作尝试重启服务
若重启失败,将通过问题模板发送告警邮件;若重启成功,则通过问题恢复模板发送通知邮件



注:
文中若有疏漏,欢迎大家指正赐教。
本文为100%原创,转载请务必标注原创作者,尊重劳动成果。
求赞、求关注、求评论!你的支持是我更新的最大动力,评论区等你~

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/25 16:40:54

从零搭建鲲鹏 HPC 环境:从朴素矩阵乘法到高性能实现

一、引言 高性能计算(HPC)是科学研究和工程应用的重要支撑,而矩阵运算是 HPC 领域最基础也最重要的操作之一。本文将通过一个简单但实用的案例,矩阵乘法的并行优化,从零开始在鲲鹏平台上进行 HPC 开发实践。 二、环境准…

作者头像 李华
网站建设 2026/7/25 16:41:43

独立IP服务器有哪些常见的应用场景?

独立IP服务器凭借其专属IP地址、高安全性和稳定性,在多个关键业务场景中发挥着重要作用。以下是独立IP服务器的主要应用场景:一、大型企业网站与电商平台独立IP服务器是大型企业官网和电商平台的首选方案。对于日均访问量百万级的企业网站,独…

作者头像 李华
网站建设 2026/7/25 16:40:23

DDACLSys.dll文件丢失找不到问题 免费下载分享

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…

作者头像 李华
网站建设 2026/7/25 17:43:31

【无宏恐惧】告别VBA禁用!用纯BAT脚本实现Excel复杂档案编号批量生成

当Excel弹出“宏已被禁用”的警告时,你的自动化方案是否就此夭折?面对单位严格的IT安全政策,VBA方案常常无法执行。但工作还得继续——1000份学生档案,每份1-5册不等,需要生成符合复杂规则的编号、索引号。本文提供一套…

作者头像 李华
网站建设 2026/7/26 3:15:18

深入理解es查询语法在Kibana中的实际应用与技巧

玩转Kibana:用好ES查询语法,让日志分析快准狠你有没有过这样的经历?线上服务突然报警,CPU飙升、接口超时,而你打开Kibana后却一脸茫然——成千上万条日志刷屏滚动,关键词满天飞,但关键线索像针一…

作者头像 李华