【免费下载链接】community-templatesZabbix Community Templates repository项目地址https://gitcode.com/gh_mirrors/co/community-templates点击查看免费下载导读本篇文章围绕 Zabbix Community Templates 仓库中的VEEAM SMTP trapper模板位于 Applications/Backup/template_veeam_backup_and_replication_by_smtp展开。该模板利用 Veeam Backup ReplicationVBR自带的邮件通知能力配合 zbxsmtptrap 工具把邮件主题/正文转换为 Zabbix trapper 数据从而在不依赖 PowerShell 脚本、不轮询、不消耗额外资源的前提下完成备份作业状态监控甚至连 VBR 自身的备份数据库Backup Database备份也能被监控到。读完本文你将掌握模板的目录结构与各版本差异、宏与发现规则LLD的配置细节、三个核心触发器的判定逻辑以及如何把它接入真实的 VBR 与 Veeam Free Agent 环境。一、设计思路为什么用邮件而不是 PowerShell传统上Zabbix 集成 Veeam 通常依赖在被监控主机上运行 PowerShell 片段把作业状态写入文件再由 Zabbix agent 读取。这类方案存在两个明显短板资源开销大需要维护脚本、定时执行、处理权限与执行策略覆盖面有限多数脚本方案只能监控常规备份作业难以覆盖 VBR 备份数据库自身的备份状态。VEEAM SMTP trapper 模板的设计出发点完全不同VBR 本来就会在每次备份作业结束后发送结果邮件Success / Warning / Failed模板只是把收件箱换成 Zabbix 侧的 SMTP 陷阱SMTP trap入口。正如模板 README 所述这种方式与其他集成方案效率相当甚至更高而所需资源却少得多且能够监控到备份数据库备份README.md。整套方案依赖两个关键组件zbxsmtptrap一个把收到的 SMTP 邮件转换成 Zabbix trapper 数据的小工具该工具源自 Zabbix 论坛上的一个思路负责完成邮件 → Zabbix 监控项的桥接veeamrun可选当 Veeam Free Agent不经过 VBR 服务器、独立运行时用于代替 VBR 把作业结果邮件发送出去。如果你有 VBR 服务器且 Free Agent 已纳入 VBR 管理则 VBR 会直接发邮件无需该脚本。也就是说本模板本身是被动接收架构Veeam 发邮件 → zbxsmtptrap 收邮件 → 写入 Zabbix trapper 监控项 → 模板中的发现规则与触发器完成归类与告警。二、仓库结构与各版本文件本模板在仓库中按 Zabbix 大版本分目录存放结构如下Applications/Backup/template_veeam_backup_and_replication_by_smtp/ ├── 5.0/ │ ├── README.md │ └── template_veeam_backup_and_replication_by_smtp.xml # Zabbix 5.0 原生 XML 导出 ├── 5.4/ │ ├── README.md │ └── template_veeam_backup_and_replication_by_smtp.yaml # Zabbix 5.4 YAML 导出 └── 6.0/ ├── README.md └── template_veeam_backup_and_replication_by_smtp.yaml # Zabbix 6.0 YAML 导出模板名称为VEEAM SMTP trapper作者为 Raynald de Lahondès。从导出文件看5.0 版本使用原生 XML 格式template_veeam_backup_and_replication_by_smtp.xml5.4 与 6.0 使用 YAML 格式5.4 版 YAML、6.0 版 YAML。三份文件的模板定义内容一致发现规则、监控项、触发器、宏全部相同主要差异体现在触发器表达式的书写语法上详见下文版本差异一节。使用时请选择与你的 Zabbix 版本匹配的文件导入。三、宏{$BACKUP_PERIODICITY}模板仅定义一个用户宏5.4 版 YAML 的 macros 段名称描述默认值类型{$BACKUP_PERIODICITY}备份作业的预期周期52hText 宏这个宏用于作业超时未执行类触发器。Zabbix 触发器中宏与 LLD 宏上下文配合使用即{$BACKUP_PERIODICITY:{#VEEAMJOB}}允许为每个具体备份作业单独覆盖周期在主机或模板层面给某个作业设置专属周期值例如一周一次的作业可以设为170h避免频繁误报默认52h则是按约两天一次的常见备份频率给出的保守值。在 5.0 的 README 触发器表中该宏被直接替换为52h字面量5.0 README而在 5.4/6.0 的 YAML 中则正式以宏形式引用便于集中调整。四、发现规则与采集项详解模板没有关联任何其他模板链接There are no template links全部监控能力由一条发现规则加两个监控项原型构成所有监控项类型均为Zabbix trapperTRAP更新间隔delay为0——即不做任何主动轮询数据完全依赖 zbxsmtptrap 推送。4.1 发现规则Job Discovery名称类型Key更新间隔Job DiscoveryZabbix trappersmtp.trap.subject.discovery[veeamjob]0该发现规则的 Key 是smtp.trap.subject.discovery[veeamjob]。它从收到邮件的**主题subject**中按veeamjob前缀提取备份作业名为每个作业动态创建监控项LLD 宏为{#VEEAMJOB}即作业名称。由于是 trapper 类型新作业出现时由推送方zbxsmtptrap触发发现无需人工添加。4.2 监控项原型名称描述类型Key值类型趋势Job {#VEEAMJOB} message作业消息正文Zabbix trappersmtp.trap.subject.match.body[veeamjob,{#VEEAMJOB}]TEXT不保存Job {#VEEAMJOB} status作业状态Zabbix trappersmtp.trap.subject.match[veeamjob,{#VEEAMJOB},status]TEXT不保存两个监控项原型的关键区别smtp.trap.subject.match[veeamjob,{#VEEAMJOB},status]提取并保存作业状态如Success、Warning、Failed是三个触发器全部依赖的核心监控项smtp.trap.subject.match.body[veeamjob,{#VEEAMJOB}]保存邮件正文/消息用于人工排障时查看作业失败的具体原因。细节上两者均被标记为value_type: TEXT、trends: 0文本值不保存趋势数据并被贴上Application: VEEAM Backup Recovery job(s)标签YAML 中两个监控项均声明request_method: POST5.4 版 YAML。你可以直接在 Zabbix 最新数据Latest data页面看到每个作业最近一次的状态与消息正文。五、触发器三类告警的判定逻辑模板的触发器全部是原型trigger prototype随 LLD 发现自动为每个{#VEEAMJOB}生成。以 5.4/6.0 YAML 中的表达式为准共三类6.0 版 YAML 的 trigger_prototypes 段触发器名称表达式优先级说明Failure of job {#VEEAMJOB}find(/VEEAM SMTP trapper/smtp.trap.subject.match[veeamjob,{#VEEAMJOB},status],,like,Failed)1high状态文本中包含Failed即告警Job {#VEEAMJOB} did not occur last {$BACKUP_PERIODICITY:{#VEEAMJOB}}nodata(/VEEAM SMTP trapper/smtp.trap.subject.match[veeamjob,{#VEEAMJOB},status],{$BACKUP_PERIODICITY:{#VEEAMJOB}})1high在{$BACKUP_PERIODICITY}周期内没有任何新数据作业未执行即告警Warning on job {#VEEAMJOB}find(/VEEAM SMTP trapper/smtp.trap.subject.match[veeamjob,{#VEEAMJOB},status],,like,Warning)1warning状态文本中包含Warning即告警三条告警的判定逻辑拆解失败即告警Failedfind()函数在状态文本中做包含匹配只要 VBR 邮件报告的状态含Failed立即产生 high 级告警静默超时告警nodata由于 trapper 监控项本身没有轮询若作业正常执行状态监控项会在每次邮件到达时获得新数据反之当超过{$BACKUP_PERIODICITY:{#VEEAMJOB}}时间仍无任何新数据nodata()返回 1触发 high 级告警——这是备份根本没跑这种最危险场景的兜底检测警告Warning状态含Warning时产生 warning 级告警。值得注意的依赖关系在 YAML 导出中Warning on job 触发器声明了对作业未在周期内执行nodata触发器的依赖dependency5.4 版 YAML。这意味着如果作业已经因为超时未执行而进入 high 级告警就不会再叠加一条 Warning 告警从而避免同一作业同时弹出两条通知的告警风暴。版本差异触发器表达式语法5.0 与 5.4/6.0 的触发器逻辑相同但表达式写法随 Zabbix 版本演进发生了变化这也是仓库按版本拆分文件的原因**5.0XML**使用旧式函数表达式5.0 XML{str(Failed)}1失败{nodata({$BACKUP_PERIODICITY:{#VEEAMJOB}})}1超时未执行{str(Warning)}1警告**5.4/6.0YAML**使用新版find()与nodata()函数式表达式如find(/VEEAM SMTP trapper/smtp.trap.subject.match[veeamjob,{#VEEAMJOB},status],,like,Failed)1。在 5.0 README 中nodata周期写成了硬编码的52h5.0 README 触发器表而 5.4/6.0 已统一改为引用{$BACKUP_PERIODICITY:{#VEEAMJOB}}宏。因此如果你使用的是 5.0建议手动把52h替换为宏引用便于统一调整周期。六、部署与接入步骤步骤 1导入模板从仓库下载对应 Zabbix 大版本的文件5.0 用 XML5.4/6.0 用 YAML在 Zabbix Web 界面Configuration → Templates → Import中导入。导入后模板名为VEEAM SMTP trapper归属于Templates组。步骤 2搭建 zbxsmtptrap 邮件桥接这是整套方案的最后一公里。zbxsmtptrap 扮演 SMTP 收件服务器角色把收到的邮件解析后通过 Zabbix sender/trapper 协议推送到 Zabbix server 或 proxy。部署要点让 VBR 的通知邮件发送到 zbxsmtptrap 监听的 SMTP 地址可以配置为 VBR 的邮件服务器/中继目标或直接把 zbxsmtptrap 作为收件端点推送时写入的监控项 Key 必须与模板中的 trapper Key 完全一致包括发现smtp.trap.subject.discovery[veeamjob]状态smtp.trap.subject.match[veeamjob,{#VEEAMJOB},status]消息smtp.trap.subject.match.body[veeamjob,{#VEEAMJOB}]由于 Zabbix trapper 是按 Key 收数只要 Key 匹配数据就会落到对应作业的监控项上{#VEEAMJOB}由邮件主题中解析出的作业名填充。步骤 3配置 VBR 邮件通知在 Veeam Backup Replication 控制台启用邮件通知确保每个备份作业含 Backup Database 备份在结束后发送结果邮件。邮件主题需包含作业名称以便 zbxsmtptrap 完成veeamjob前缀匹配与 LLD 宏提取。步骤 4Free Agent 场景可选如果你在没有 VBR 服务器的环境中使用 Veeam Free Agent注意若 Free Agent 已纳入 VBR 管理VBR 会统一发邮件无需额外处理则需要借助 veeamrun 这个小脚本由它在备份完成后把结果邮件发送到 zbxsmtptrap从而让 Free Agent 也能接入同一套监控链路。步骤 5挂到主机并调整宏在目标主机上应用VEEAM SMTP trapper模板并根据备份作业的实际频率覆盖{$BACKUP_PERIODICITY}宏如每日备份可保持52h每周备份应调大。LLD 宏上下文{$BACKUP_PERIODICITY:{#VEEAMJOB}}允许你针对单个作业单独设置周期。七、注意事项与已知问题多行主题问题README 明确指出近期修复了一个 Veeam 发送多行邮件主题multiline subjects的 bug。触发场景通常是主机名过长且 Veeam 恰好处于技术支持过期状态此时主题开头会被附加一些垃圾字符导致主题被拆成多行。因此建议保持主机名简洁并确保 VBR 许可证处于有效状态纯被动数据模型监控项 update 间隔为 0、trends 关闭告警完全依赖邮件是否送达。若 zbxsmtptrap 与 VBR 之间的邮件链路中断你会收到 nodata 告警而非失败告警——这是设计使然排查时先确认邮件是否真的发出文本匹配的容错性触发器采用find(...,like,Failed)的包含式匹配只要状态文本含Failed即告警对 VBR 不同语言/格式的邮件主题具有较好的兼容性但若邮件主题格式被 VBR 更新改动需要同步核对匹配关键字。总结VEEAM SMTP trapper 模板为 Zabbix 监控 Veeam 备份体系提供了一条零轮询、零 PowerShell、低资源的集成路径VBR 的通知邮件本身已经是现成的状态载体zbxsmtptrap 负责收件与推送模板负责发现作业、归类状态并在失败/超时/警告三种场景下精准告警。无论是带 VBR 服务器的传统部署还是纯 Free Agent 的轻量环境这套方案都具备直接落地的实战价值。模板的完整定义宏、发现规则、监控项原型、触发器原型及其依赖关系可在仓库中 5.4 版 YAML 与 6.0 版 YAML 中逐行核对按需微调{$BACKUP_PERIODICITY}即可投入使用。赞分享【免费下载链接】community-templatesZabbix Community Templates repository项目地址https://gitcode.com/gh_mirrors/co/community-templates点击查看免费下载相关推荐Zabbix 监控 Veeam Backup Replication基于 SMTP trapper 的邮件告警集成方案Zabbix 监控 Veeam Backup Replication基于 SMTP trapper 的邮件告警集成方案 本文讲解 community teZabbix 8.0 监控 Veeam Backup Replication基于 HTTP 官方模板的完整部署与原理指南Zabbix 8.0 监控 Veeam Backup Replication基于 HTTP 官方模板的完整部署与原理指南 本指南以 Zabbix 官方模板指标监控可观测性告警运维基于 Zabbix 事件日志监控 Veeam Backup Agent for Microsoft WindowsVEEAM-Agents 模板全解析基于 Zabbix 事件日志监控 Veeam Backup Agent for Microsoft WindowsVEEAM Agents 模板全解析 本文深上一篇终极RevokeMsgPatcher使用指南3分钟掌握微信/QQ防撤回神器下一篇5分钟掌握Grafana k6失败标记功能让性能问题无所遁形的终极指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考