【免费下载链接】community-templates
Zabbix Community Templates repository
本文围绕 Zabbix Community Templates 仓库(community-templates)中的App TSM Journal Service模板展开,讲解如何利用 Zabbix Windows agent 的内置service_state键持续探测 IBM Spectrum Protect(原 Tivoli Storage Manager)的 "TSM Journal Service" Windows 服务运行状态,并在服务停止时通过 Action 远程命令自动拉起。读完本文,你将掌握该模板的监控项与触发器设计、5.0/5.4/6.0 各版本模板文件的差异,以及一套可直接落地的"监控 + 自动恢复"配置方案。
模板定位:为 IBM Spectrum Protect 备份链路保驾护航
在 IBM Spectrum Protect(历史上称为 Tivoli Storage Manager,简称 TSM)的备份体系中,TSM Journal Service承担着日志(journal)相关的后台服务职责,服务于客户端日志式备份与增量数据跟踪。一旦该服务意外停止,备份作业与日志归档流程将直接受影响,因此对其运行状态进行 7×24 小时监控是备份运维的基本诉求。
community-templates 仓库中的 App TSM Journal Service 模板正是为此设计,其 5.0 版 README 开篇即明确模板用途:
Template for check if "TSM Journal Service" is running.
模板仅围绕一个监控项展开,却配套了完整的告警触发与(可选的)自动恢复动作,由作者 Haim Cohen 于 2017 年贡献。仓库根 README.md 的模板索引中,它被收录在Applications/Backup分类下,与同作者的 App TSM Client Scheduler 模板相邻,两者构成对 TSM 客户端侧关键服务的监控组合。
模板的监控项设计:一个 key 完成服务状态探测
整个模板的数据采集非常精简——只有一个监控项,其定义如下表(取自 5.0 版 README 的 "Items collected" 章节):
| 名称 | 描述 | 类型 | Key 及附加信息 |
|---|---|---|---|
| Service State - TSM Journal Service | - | Zabbix agent | service_state[TSM Journal Service],Update: 30 |
对照模板文件可以还原该监控项的完整实现:
- 监控项类型为
Zabbix agent(被动模式),即由 Zabbix server 周期性向 Windows 主机上的 Zabbix agent 发起取值请求; - key为
service_state[TSM Journal Service],这是 Zabbix Windows agent 内置的服务状态检查键,方括号内传入 Windows 服务名(Service Name)"TSM Journal Service"; - **更新间隔(delay)**为 30 秒。在 5.0 XML 模板 中对应
<delay>30</delay>;在 5.4 YAML 模板 与 6.0 YAML 模板 中对应delay: '30'; - 应用分组:5.0 XML 中该监控项归属于 application
TSM Journal Service;5.4/6.0 中则采用 tag 形式,tag: Application、value: 'TSM Journal Service',便于在最新版 Zabbix 中按标签筛选。
原文档特别强调 "Note that trigger service name is: 'TSM Journal Service'"(此处"trigger service name"应理解为被探测的 Windows 服务名),提醒使用者 key 中填写的服务名必须与 Windows 服务管理器中实际的服务名称严格一致——若服务名拼写错误或与系统显示名(Display Name)混淆,service_state将无法正确返回运行状态。在 Windows 服务管理器 或 PowerShell 中通过Get-Service -Name "TSM Journal Service"可以核对确切的服务名。
触发器:README 与模板文件之间的细节出入
阅读 5.0 版 README 时,其 "Triggers" 章节声明 "There are no triggers in this template",但实际导出的模板文件中明确包含一个触发器,README 与模板文件存在出入,实际部署应以模板文件为准:
- 触发器名称:
TSM Journal Service Stopped - 优先级:
WARNING - 触发表达式(5.0 XML):
{last(1)}>0 - 触发表达式(5.4 YAML 与 6.0 YAML):
last(/App TSM Journal Service/service_state[TSM Journal Service])>0
两个版本表达式语义一致:{last(1)}是 5.0 时代对当前监控项最近一次取值的简写语法,last(/模板名/监控项key)则是 5.4 之后引入的完整路径写法,两者都判断"最近一次返回值是否大于 0"。
结合 Zabbix Windows agentservice_state键"0 表示服务运行中"的取值约定,可以推断:当监控项返回值大于 0(即服务不处于正常运行状态,如已停止、启动中或状态未知)时,触发器进入 PROBLEM 状态并产生一条名为 "TSM Journal Service Stopped" 的 WARNING 级告警。模板以此实现"服务一停、立即告警"的效果。
自动恢复:基于 Action 的 NET START 远程命令
除了被动告警,原文档还给出了一套手动创建 Action、在服务停止时自动拉起服务的恢复方案,这是本模板最具实战价值的部分。操作入口为 Zabbix 前端Configuration → Actions,新建动作后配置如下:
Conditions(匹配条件)
- Maintenance status not in maintenance:仅当主机不在维护期内才生效,避免维护窗口误触发恢复操作;
- Trigger value = PROBLEM:只在触发器进入 PROBLEM(即服务停止)时匹配;
- Trigger name like TSM Journal Service Stopped:精确圈定本模板的触发器,防止其他告警误触发该动作。
Operations(执行操作)
- Operation type:Remote command(远程命令)
- Commands:
NET START "TSM Journal Service"
动作匹配后,Zabbix 会通过被监控主机上的 agent 执行NET START "TSM Journal Service",尝试用 Windows 原生服务控制命令重启该服务,从而实现"告警即恢复"的闭环。
需要说明的是,远程命令由 agent 在 Windows 主机本地执行,实际落地通常还依赖以下前提(属于 Zabbix 通用运行机制,并非模板自带配置):
- 被监控主机安装并运行 Zabbix Windows agent,且 agent 配置允许执行远程命令;
- 执行
NET START的账户(agent 服务运行账户)具备启动该 Windows 服务的权限,必要时需以管理员权限运行 agent 服务; - Zabbix server 与 agent 之间网络连通,且主机在 Zabbix 中被正确配置了 agent 接口。
若环境不允许远程命令,也可将 Operation 改为发送通知(如邮件、脚本),至少保证服务异常时第一时间触达运维人员。
模板版本对照与导入部署
该模板随 Zabbix 版本演进提供了三个版本的导出文件,结构对比如下:
| Zabbix 版本 | 模板文件 | 格式 | 关键差异 |
|---|---|---|---|
| 5.0 | template_tsm_journal_service.xml | XML | 触发器表达式为{last(1)}>0简写语法;application 分组 |
| 5.4 | template_tsm_journal_service.yaml | YAML | 表达式升级为last(/模板/监控项)>0完整路径;tag 替代 application |
| 6.0 | template_tsm_journal_service.yaml | YAML | 与 5.4 内容一致,适用于 6.0 系列 |
部署步骤参考仓库根 README.md 的通用说明:
- 下载与目标 Zabbix 版本匹配的模板文件(5.0 选 XML,5.4/6.0 选 YAML);
- 在 Zabbix 前端Data collection → Templates中通过导入向导上传模板文件;
- 将模板链接到承载 IBM Spectrum Protect 的 Windows 主机(主机需已安装 Zabbix agent,类型选择 Zabbix agent);
- 等待 30 秒更新周期过后,检查 "Service State - TSM Journal Service" 监控项是否开始产生数据,并在 Windows 服务管理器手动停止该服务验证触发器 "TSM Journal Service Stopped" 是否按预期进入 PROBLEM;
- 如需自动恢复,再按上文在 Configuration → Actions 中创建远程命令动作。
同类模板联动与扩展思路
IBM Spectrum Protect 环境通常不止一个关键 Windows 服务,可结合同仓库的同类模板扩展监控面:
- App TSM Client Scheduler(同为 Haim Cohen 2017 年贡献):通过
service_state[TSM Client Scheduler]与service_state[TSM Client Schedule]两个监控项覆盖 TSM 客户端调度器及调度作业服务,更新间隔同为 30 秒,与 Journal Service 模板形成客户端侧服务监控组合; - 同属 Backup 分类的 Arcserve UDP VM Backup Check 也大量使用
service_state[...]键监控备份相关服务,但其触发器表达式采用last(...)<>0 and last(...)<>255的形式——可以推断,该写法是为了排除255这一特殊返回值(如服务不存在或 agent 无法解析服务名),相比本模板的>0判断更为保守。对比可见:本模板把任何非 0 状态都视为服务异常,判定更直接、告警更灵敏,适合服务名固定且确已注册的场景。
小结
App TSM Journal Service 是一个"小而精"的 Zabbix 社区模板:以service_state[TSM Journal Service]一个监控项、30 秒更新间隔完成服务状态探测,内置 WARNING 级触发器TSM Journal Service Stopped,再配合 Configuration → Actions 中的NET START "TSM Journal Service"远程命令实现自动恢复。部署时只需注意三点:服务名拼写准确、按 Zabbix 版本选择对应的 XML/YAML 导入文件、为远程命令预留 agent 执行权限。对于运行 IBM Spectrum Protect(TSM)备份体系的运维团队,这是一个开箱即用、可快速上手的服务守护方案。
【免费下载链接】community-templates
Zabbix Community Templates repository
相关推荐
Zabbix 监控 IBM TSM / Spectrum Protect 客户端调度服务:App TSM Client Scheduler 模板深度解析
Zabbix 监控 IBM TSM / Spectrum Protect 客户端调度服务:App TSM Client Scheduler 模板深度解析 本文围
使用 Zabbix 模板监控 IBM TSM/Spectrum Protect Client Scheduler 服务状态(community-templates 实战指南)
使用 Zabbix 模板监控 IBM TSM/Spectrum Protect Client Scheduler 服务状态(community template
Zabbix 监控 BackupPC:community-templates 中 App BackupPC by Zabbix agent 模板全解
Zabbix 监控 BackupPC:community templates 中 App BackupPC by Zabbix agent 模板全解 本篇技术指
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考