🛠️ 准备工作:练习环境搭建

开始动手前,首先要有一个可用的Zabbix环境。你可以选择直接使用现有的,或者全新搭建一个

  • 使用Docker快速搭建(强烈推荐):这是最快的方式。根据官方指南,使用git clone命令克隆项目后,用docker-compose up -d一键启动,整个环境几分钟就能就绪。

  • 传统包安装:如果你想深入了解Zabbix,也可以参考官方文档,在CentOS/RHEL或Ubuntu系统上手动安装各个组件。

一个小建议:用Docker搭建一个干净的测试环境,能让你心无旁骛地专注于告警配置练习。

📧 第一阶段:邮件告警

邮件告警是Zabbix最基础的功能,练习过程可以帮助你掌握整个告警链路。

  1. 配置发件邮箱(媒介类型)

    • 登录Zabbix前端,进入 告警 → 媒介类型

    • 点击“创建媒介类型”,选择类型为“电子邮件”。[reference:5][reference:6]

    • 关键填写信息

      • SMTP服务器:例如 smtp.163.comsmtp.qq.com

      • SMTP服务器端口:建议使用SSL/TLS加密端口(如465)。

      • 认证凭据:填写发件邮箱地址和授权码(不是邮箱登录密码)。

    • 关键步骤:测试:配置好后,点击右侧的 测试 按钮。在弹出窗口中输入你的个人邮箱,点击“发送”。这是验证邮件配置是否正确的最直接方法。若收不到,应优先检查SMTP服务器、端口、授权码和安全连接设置。

  2. 关联用户并指定收件箱

    • 进入 用户 → 用户,点击你的管理员账号。

    • 点击“报警媒介”标签页,选择“添加”。

    • 媒介类型选择你刚刚创建的“Email”,在“收件人”一栏输入接收告警的邮箱地址,启用后保存。[reference:12][reference:13]

  3. 创建告警动作

    • 进入 告警 → 动作 → 触发器动作,点击“创建动作”。

    • 在“操作”标签页中,添加一个新的“操作”。

    • 将“发送到用户”设置为Admin或其他拥有接收权限的用户。

  4. 触发告警并验证

    • 模拟故障:一种简单的测试方法是停止一台被监控主机的Zabbix Agent服务或直接重启该主机[reference:14]

    • 检查结果:进入告警 → 动作日志,查看动作是否执行成功。

    • 最终验证:检查你的邮箱是否收到了告警邮件。如果成功,则证明你的邮件告警流程已打通。

💬 第二阶段:钉钉告警

钉钉告警的核心是Zabbix调用一个脚本,将告警信息转发到钉钉群里的自定义机器人。

  1. 钉钉端操作

    • 在电脑钉钉上创建一个群。

    • 进入群设置 -> 机器人 -> 添加机器人 -> 选择“自定义”。

    • 设置机器人的安全策略(如关键词“Zabbix”等),这样消息里必须包含这个词才能发出来。

    • 保存后,记录下机器人的 Webhook地址

  2. Zabbix Server端操作(核心)

    • 将Python脚本dingtalk.py放到告警脚本目录

      • 告警脚本目录通常在 /usr/lib/zabbix/alertscripts/

    • 修改脚本并授权

      • 你需要编辑这个脚本,把刚才在钉钉里复制的Webhook地址Secret(密钥)填进去。

      • 给脚本加上执行权限:chmod +x /usr/lib/zabbix/alertscripts/dingtalk.py

      • 将脚本所属用户改为zabbixchown zabbix.zabbix dingtalk.py

    • 依赖安装:脚本需要requests库,如果脚本报错缺少该模块,用pip3 install requests装上就行。

    • 命令行测试:在Zabbix Server上手动执行脚本,试试能不能往钉钉群里发消息。

  3. Zabbix Web界面配置

    • 创建媒介:进入 告警 → 媒介类型,创建一个新的媒介,类型选择 脚本

    • 在“脚本名称”中填入dingtalk.py

    • 添加脚本参数:添加三个参数:{ALERT.SENDTO}{ALERT.SUBJECT}{ALERT.MESSAGE}

    • 创建动作:和邮件告警类似,在“动作”里配置,操作类型选择你刚创建的钉钉媒介。

    • 用户关联:在用户配置的“报警媒介”里,添加钉钉媒介,“收件人”可以随便填(如钉钉群名),勾选启用。

👥 第三阶段:企业微信告警

企业微信告警的原理和钉钉基本一样,也是通过脚本向一个“应用”或“机器人”发送消息,只是企业微信的配置步骤稍多。

  1. 企业微信端操作

    • 注册并登录企业微信后台(work.weixin.qq.com)。

    • 方法一(推荐,更简单):在企业微信群里创建一个“群机器人”,拿到它的 Webhook地址。这种方式和钉钉机器人很像,更适合快速测试。

    • 方法二(创建应用):在应用管理页面创建一个应用。创建后,你将得到三个关键信息:企业ID(CorpID)应用ID(AgentId) 和 应用密码(Secret)建议使用群机器人方式

  2. Zabbix Server端操作

    • 脚本放置与测试:同样在 /usr/lib/zabbix/alertscripts/ 目录下,创建Python脚本wechat.py。注意,如果是群机器人应用,它们的脚本是不同的,需要自行修改。建议先手动执行脚本,确认能收到消息

    • 依赖安装:同样需要requests库。

  3. Zabbix Web界面配置

    • 创建媒介:操作和钉钉告警完全一样,创建一个类型为 脚本 的媒介,关联你的wechat.py脚本。

💎 避坑指南:常见问题与解决思路

  • 收不到告警消息? 这是练习时最常遇到的问题,可以从这几点排查:

    1. 检查基础配置:在Web界面,确认告警 → 动作日志里有没有相关的执行记录。

    2. 检查用户权限:确认你创建的动作里,选择要通知的用户(如Admin)有接收告警的权限。

    3. 检查媒介测试:邮件可以直接用测试功能。钉钉和企业微信则需要手动执行脚本来测试。

    4. 排查脚本:确保脚本的Webhook地址是准确的,且它在Zabbix Server上执行时不会报错。

    5. 权限问题:确保/usr/lib/zabbix/alertscripts/下的脚本是zabbix用户所有,并且有执行权限(chown)。

    6. 网络隔离:如果你是Docker部署的Zabbix Server,需要确保容器能访问到外部的SMTP服务器、钉钉或企业微信的API。

    7. 安全策略:钉钉和企业微信机器人都有安全设置,比如“关键词”,请确保你的告警消息内容满足这个要求。

  • 用好“手动触发”:自己手动模拟一个故障来测试告警,比如重启一台被监控的机器,或者创建一个假的监控项来触发告警。这比干等真实故障发生要高效得多。

从头到尾跟着这个计划练习一遍,应该就能比较熟练地掌握Zabbix 7中这三种告警方式的配置方法了。这三种方式的核心思路其实是一样的,主要是告警接收端的配置不同。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐