Zabbix7设置警告
如果你是Docker部署的Zabbix Server,需要确保容器能访问到外部的SMTP服务器、钉钉或企业微信的API。企业微信告警的原理和钉钉基本一样,也是通过脚本向一个“应用”或“机器人”发送消息,只是企业微信的配置步骤稍多。媒介类型选择你刚刚创建的“Email”,在“收件人”一栏输入接收告警的邮箱地址,启用后保存。:在用户配置的“报警媒介”里,添加钉钉媒介,“收件人”可以随便填(如钉钉群名)
🛠️ 准备工作:练习环境搭建
开始动手前,首先要有一个可用的Zabbix环境。你可以选择直接使用现有的,或者全新搭建一个。
-
使用Docker快速搭建(强烈推荐):这是最快的方式。根据官方指南,使用
git clone命令克隆项目后,用docker-compose up -d一键启动,整个环境几分钟就能就绪。 -
传统包安装:如果你想深入了解Zabbix,也可以参考官方文档,在CentOS/RHEL或Ubuntu系统上手动安装各个组件。
一个小建议:用Docker搭建一个干净的测试环境,能让你心无旁骛地专注于告警配置练习。
📧 第一阶段:邮件告警
邮件告警是Zabbix最基础的功能,练习过程可以帮助你掌握整个告警链路。
-
配置发件邮箱(媒介类型):
-
登录Zabbix前端,进入
告警 → 媒介类型。 -
点击“创建媒介类型”,选择类型为“电子邮件”。
[reference:5][reference:6] -
关键填写信息:
-
SMTP服务器:例如
smtp.163.com、smtp.qq.com。 -
SMTP服务器端口:建议使用SSL/TLS加密端口(如465)。
-
认证凭据:填写发件邮箱地址和授权码(不是邮箱登录密码)。
-
-
关键步骤:测试:配置好后,点击右侧的 测试 按钮。在弹出窗口中输入你的个人邮箱,点击“发送”。这是验证邮件配置是否正确的最直接方法。若收不到,应优先检查SMTP服务器、端口、授权码和安全连接设置。
-
-
关联用户并指定收件箱:
-
进入
用户 → 用户,点击你的管理员账号。 -
点击“报警媒介”标签页,选择“添加”。
-
媒介类型选择你刚刚创建的“Email”,在“收件人”一栏输入接收告警的邮箱地址,启用后保存。
[reference:12][reference:13]
-
-
创建告警动作:
-
进入
告警 → 动作 → 触发器动作,点击“创建动作”。 -
在“操作”标签页中,添加一个新的“操作”。
-
将“发送到用户”设置为
Admin或其他拥有接收权限的用户。
-
-
触发告警并验证:
-
模拟故障:一种简单的测试方法是停止一台被监控主机的Zabbix Agent服务或直接重启该主机。
[reference:14] -
检查结果:进入
告警 → 动作日志,查看动作是否执行成功。 -
最终验证:检查你的邮箱是否收到了告警邮件。如果成功,则证明你的邮件告警流程已打通。
-
💬 第二阶段:钉钉告警
钉钉告警的核心是Zabbix调用一个脚本,将告警信息转发到钉钉群里的自定义机器人。
-
钉钉端操作:
-
在电脑钉钉上创建一个群。
-
进入群设置 -> 机器人 -> 添加机器人 -> 选择“自定义”。
-
设置机器人的安全策略(如关键词“Zabbix”等),这样消息里必须包含这个词才能发出来。
-
保存后,记录下机器人的 Webhook地址。
-
-
Zabbix Server端操作(核心):
-
将Python脚本
dingtalk.py放到告警脚本目录:-
告警脚本目录通常在
/usr/lib/zabbix/alertscripts/。
-
-
修改脚本并授权:
-
你需要编辑这个脚本,把刚才在钉钉里复制的
Webhook地址和Secret(密钥)填进去。 -
给脚本加上执行权限:
chmod +x /usr/lib/zabbix/alertscripts/dingtalk.py。 -
将脚本所属用户改为
zabbix:chown zabbix.zabbix dingtalk.py。
-
-
依赖安装:脚本需要
requests库,如果脚本报错缺少该模块,用pip3 install requests装上就行。 -
命令行测试:在Zabbix Server上手动执行脚本,试试能不能往钉钉群里发消息。
-
-
Zabbix Web界面配置:
-
创建媒介:进入
告警 → 媒介类型,创建一个新的媒介,类型选择 脚本。 -
在“脚本名称”中填入
dingtalk.py。 -
添加脚本参数:添加三个参数:
{ALERT.SENDTO}、{ALERT.SUBJECT}、{ALERT.MESSAGE}。 -
创建动作:和邮件告警类似,在“动作”里配置,操作类型选择你刚创建的钉钉媒介。
-
用户关联:在用户配置的“报警媒介”里,添加钉钉媒介,“收件人”可以随便填(如钉钉群名),勾选启用。
-
👥 第三阶段:企业微信告警
企业微信告警的原理和钉钉基本一样,也是通过脚本向一个“应用”或“机器人”发送消息,只是企业微信的配置步骤稍多。
-
企业微信端操作:
-
注册并登录企业微信后台(
work.weixin.qq.com)。 -
方法一(推荐,更简单):在企业微信群里创建一个“群机器人”,拿到它的 Webhook地址。这种方式和钉钉机器人很像,更适合快速测试。
-
方法二(创建应用):在应用管理页面创建一个应用。创建后,你将得到三个关键信息:企业ID(CorpID)、应用ID(AgentId) 和 应用密码(Secret)。建议使用群机器人方式。
-
-
Zabbix Server端操作:
-
脚本放置与测试:同样在
/usr/lib/zabbix/alertscripts/目录下,创建Python脚本wechat.py。注意,如果是群机器人和应用,它们的脚本是不同的,需要自行修改。建议先手动执行脚本,确认能收到消息。 -
依赖安装:同样需要
requests库。
-
-
Zabbix Web界面配置:
-
创建媒介:操作和钉钉告警完全一样,创建一个类型为 脚本 的媒介,关联你的
wechat.py脚本。
-
💎 避坑指南:常见问题与解决思路
-
收不到告警消息? 这是练习时最常遇到的问题,可以从这几点排查:
-
检查基础配置:在Web界面,确认
告警 → 动作日志里有没有相关的执行记录。 -
检查用户权限:确认你创建的动作里,选择要通知的用户(如
Admin)有接收告警的权限。 -
检查媒介测试:邮件可以直接用测试功能。钉钉和企业微信则需要手动执行脚本来测试。
-
排查脚本:确保脚本的Webhook地址是准确的,且它在Zabbix Server上执行时不会报错。
-
权限问题:确保
/usr/lib/zabbix/alertscripts/下的脚本是zabbix用户所有,并且有执行权限(chown)。 -
网络隔离:如果你是Docker部署的Zabbix Server,需要确保容器能访问到外部的SMTP服务器、钉钉或企业微信的API。
-
安全策略:钉钉和企业微信机器人都有安全设置,比如“关键词”,请确保你的告警消息内容满足这个要求。
-
-
用好“手动触发”:自己手动模拟一个故障来测试告警,比如重启一台被监控的机器,或者创建一个假的监控项来触发告警。这比干等真实故障发生要高效得多。
从头到尾跟着这个计划练习一遍,应该就能比较熟练地掌握Zabbix 7中这三种告警方式的配置方法了。这三种方式的核心思路其实是一样的,主要是告警接收端的配置不同。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)