
【免费下载链接】community-templatesZabbix Community Templates repository项目地址https://gitcode.com/gh_mirrors/co/community-templates点击查看免费下载本篇技术指南围绕 Zabbix 社区模板仓库中的template_sap_backup_tenant_systemdbSAP Backup展开讲解如何基于 shell script hdbsql Zabbix agent UserParameter 实现对 SAP 备份执行状态SYSTEMDB 与 TENANT的自动化监控。读完本文你将掌握该模板的宏定义、监控项键结构、值映射与告警触发器设计并能独立完成模板导入、参数配置与配套采集脚本的落地部署。模板定位与技术路线template_sap_backup_tenant_systemdb是 Zabbix Community Templates 仓库中Applications/Backup分类下的一个应用级模板README其设计目标非常聚焦监控由 SAP 自身执行的备份作业。原文档明确列出三个核心监控维度备份执行的日期/时间Data da execucão do backupSYSTEMDB 备份状态TENANT租户库备份状态该模板不依赖 SNMP、不依赖 JMX而是采用一条非常典型的被动式 agent技术路线在 SAP 主机上放置一个 shell 脚本通过 SAP HANA 自带的命令行客户端hdbsql查询备份目录backup catalog再把结果通过 Zabbix agent 的UserParameter机制暴露给 Zabbix server 轮询。整个项目由 Zabbix Brasil Telegram 社区用户 Wilson Fernandes 与 Eduardo Freitas 发起作者为 wilsonwers。在仓库中该模板同时提供了面向不同 Zabbix 大版本的三套导出文件内容完全一致、仅是导出格式不同Zabbix 版本导出文件5.0template_sap_backup_tenant_systemdb.xml5.4template_sap_backup_tenant_systemdb.yaml6.0template_sap_backup_tenant_systemdb.yaml从 YAML 导出文件头zabbix_export: version: 5.4日期2021-11-21可以看出模板发布于 2021 年底属于该模板最早的一批社区实现之一。模板宏Macros定义与含义模板通过三个文本宏Text macro把与具体环境相关的信息全部参数化链接模板到主机后只需覆盖宏即可适配不同 SAP 系统。原文档的宏定义表如下宏名描述默认值类型{$BCO}-PRDText macro{$ID}-00Text macro{$PASS}-passwdText macro在 5.4 YAML 导出 的macros段中可以看到同样的默认值定义即{$BCO}PRD、{$ID}00、{$PASS}passwd。结合监控项键check_backup[{$ID},{$PASS},{$BCO},...]的传参位置可以推断其职责{$ID}SAP HANA 实例号instance number默认00。该值决定 hdbsql 连接端口如 SYSTEMDB 端口一般为3ID13实例 00 即 30013也常用于脚本拼接连接参数{$PASS}执行备份查询所需的口令默认passwd实际部署时应通过主机/模板级宏覆盖为真实凭据{$BCO}业务/系统标识前缀默认PRD在监控项名称中作为前缀出现如{$BCO} - STATUS INDEXSERVER TENANT同时作为脚本参数传入用于区分被监控的 SAP 系统或备份配置。安全提示{$PASS}以明文宏形式存储于模板与主机配置中。建议在主机级而非模板级覆盖该宏并限制 Zabbix server 与 agent 之间的传输链路若追求更高安全性可改为让脚本从受保护文件中读取凭据宏只负责传递标识性参数。监控项Items结构与键约定模板共采集 6 个监控项全部为Zabbix agent类型被动模式。原文档给出的监控项清单如下名称类型键Key更新间隔{$BCO} - LAST XSENGINE TENANTZabbix agentcheck_backup[{$ID},{$PASS},{$BCO},backup_last,xsengine]21600s{$BCO} - STATUS NAMESERVER SYSTEMDBZabbix agentcheck_backup[{$ID},{$PASS},{$BCO},backup,nameserver]3600s{$BCO} - STATUS INDEXSERVER TENANTZabbix agentcheck_backup[{$ID},{$PASS},{$BCO},backup,indexserver]3600s{$BCO} - LAST INDEXSERVER TENANTZabbix agentcheck_backup[{$ID},{$PASS},{$BCO},backup_last,indexserver]21600s{$BCO} - STATUS XSENGINE TENANTZabbix agentcheck_backup[{$ID},{$PASS},{$BCO},backup,xsengine]3600s{$BCO} - LAST NAMESERVER SYSTEMDBZabbix agentcheck_backup[{$ID},{$PASS},{$BCO},backup_last,nameserver]21600s所有监控项共用同一个 UserParameter 键check_backup通过五个位置参数区分不同查询其约定可以拆解为check_backup[实例号, 密码, 系统标识, 查询类型, 服务类型]第 4 个参数查询类型backup表示返回备份状态0/1backup_last表示返回最近一次备份的日期/时间信息第 5 个参数服务类型nameserver对应 SYSTEMDBnameserver 是 HANA 系统的主控服务SYSTEMDB 即由其承载indexserver与xsengine对应 TENANT 租户库indexserver 承载行/列存储xsengine 承载扩展引擎。从 5.4 YAML 的完整定义可以进一步看到两类监控项的属性差异STATUS 类backupdelay: 3600s每小时采集一次trends: 180d保留 180 天趋势数值类型为默认的数字类型并挂接SAP_BACKUP值映射LAST 类backup_lastdelay: 21600s每 6 小时采集一次trends: 0不保存趋势value_type: CHAR字符串类型用于承载日期/时间文本同样挂接SAP_BACKUP值映射。两类监控项均带有标签Application: SAP Backup并隶属于SAP Backup应用application。值映射0 OK1 ERRO为了把脚本返回的原始数值翻译成人类可读的状态模板定义了一个名为SAP_BACKUP的值映射valuemap在 5.4/6.0 的 YAML 与 5.0 的 XML 导出中均有完整定义原始值显示值0OK1ERRO即约定0 表示备份成功OK1 表示备份失败ERRO。该值映射被全部 6 个监控项引用因此在最新数据界面中看到OK/ERRO字样时其语义即对应最近一次备份作业的成功与否。告警触发器备份失败即 DISASTER值得注意的一个细节是README 文档中写着There are no triggers in this template但实际导出文件XML/YAML中明确包含 3 个触发器——这是 README 与导出文件之间的一处不一致部署时请以导出文件为准。三个触发器全部针对 STATUS 类监控项触发器名称表达式优先级{HOSTNAME} - Backup Fail INDEXSERVER TENANTlast(/SAP Backup/check_backup[{$ID},{$PASS},{$BCO},backup,indexserver])0DISASTER{HOSTNAME} - Backup Fail NAMESERVER SYSTEMDBlast(/SAP Backup/check_backup[{$ID},{$PASS},{$BCO},backup,nameserver])0DISASTER{HOSTNAME} - Backup Fail XSENGINE TENANTlast(/SAP Backup/check_backup[{$ID},{$PASS},{$BCO},backup,xsengine])0DISASTER5.0 XML 中表达式以{last()}0的简写形式出现语义相同。表达式逻辑非常直白只要对应服务最近一次返回的备份状态值大于 0即值映射中的ERRO/1立即触发告警且优先级直接拉满为DISASTER灾难级——这正是备份监控的应有姿态备份失败是最高等级事件需要在第一时间告警。配合 STATUS 监控项每小时一次的采集频率最坏情况下备份失败后 1 小时内即可被发现。内置图形{$BCO} - SAP Backup模板还内置了一个名为{$BCO} - SAP Backup的图形graph将三个 STATUS 类监控项叠加在同一张图上YAML 定义图项顺序监控项键绘制方式颜色0默认check_backup[...backup,indexserver]GRADIENT_LINE1A7C11绿1check_backup[...backup,xsengine]GRADIENT_LINEF63100红2check_backup[...backup,nameserver]GRADIENT_LINE0000BB蓝由于 STATUS 监控项是 0/1 数值该图形以三条渐变曲线直观呈现 SYSTEMDBnameserver与两个 TENANT 服务indexserver、xsengine的备份状态在时间轴上的变化任何一条线跳升到 1 即代表对应服务发生备份失败。部署实战脚本 hdbsql UserParameter 的完整落地原文档明确说明了整套方案的技术构成——shell script hdbsql Zabbix agent UserParameter。虽然仓库未附带脚本本身脚本由社区在 Zabbix Brasil Telegram 群组中分享但模板的键约定已经把脚本的输入输出契约定义得非常清楚。下面给出与模板键约定完全一致的参考实现思路。第 1 步在 SAP 主机上放置采集脚本脚本接收与监控项键一一对应的参数用hdbsql查询 HANA 备份目录并按查询类型输出。参考实现骨架如下#!/bin/bash # check_backup.sh - SAP HANA 备份状态采集脚本参考实现 # 用法: check_backup.sh 实例号 密码 系统标识 backup|backup_last nameserver|indexserver|xsengine ID$1 PASS$2 BCO$3 TYPE$4 SERVICE$5 # SYSTEMDB 端口约定: 3实例号13实例 00 即 30013 HDBSQLhdbsql -n localhost:3${ID}13 -u SYSTEM -p ${PASS} -d SYSTEMDB -j -o case ${TYPE} in backup) # 查询最近一次备份作业状态: 成功输出 0失败输出 1 STATUS$( ${HDBSQL} SELECT ... FROM M_BACKUP_CATALOG WHERE ... ) if [ ${STATUS} SUCCESSFUL ]; then echo 0 else echo 1 fi ;; backup_last) # 输出最近一次备份的日期/时间字符串 ${HDBSQL} SELECT TOP 1 BACKUP_ID, START_TIME, STATE_NAME FROM M_BACKUP_CATALOG ORDER BY START_TIME DESC ;; esac说明以上脚本为与本模板键约定一致的一种参考实现思路具体 SQL 需根据实际 HANA 版本如M_BACKUP_CATALOG系统视图的列结构与备份策略调整hdbsql所在目录、-j等参数亦需按现场环境确认。脚本中查询类型backup/backup_last与服务类型nameserver/indexserver/xsengine的分支设计正是为了匹配模板中 6 个监控项的调用形态。第 2 步注册 UserParameter在 Zabbix agent 配置目录Linux 下通常为/etc/zabbix/zabbix_agentd.conf.d/新建 userparameter 配置文件内容如下UserParametercheck_backup[*],/usr/local/bin/check_backup.sh $1 $2 $3 $4 $5Zabbix agent 收到形如check_backup[00,passwd,PRD,backup,indexserver]的请求时会把方括号内的 5 个参数依次传给脚本脚本输出即作为监控项的值回传 server。这正好与模板监控项的键check_backup[{$ID},{$PASS},{$BCO},backup,indexserver]一一对应——宏展开后填入的正是 UserParameter 的参数位。配置完成后使用zabbix_get -s SAP主机 -k check_backup[00,passwd,PRD,backup,nameserver]即可在 Zabbix server 侧手动验证取值链路是否打通。第 3 步导入模板并挂接主机从仓库下载对应 Zabbix 版本的导出文件5.0 用 XML5.4/6.0 用 YAML在 Zabbix Web 界面数据采集 → 模板 → 导入选择下载的文件完成导入模板名称为SAP Backup归入Templates组创建或编辑 SAP 主机在模板页签链接SAP Backup在主机级宏页签覆盖{$BCO}如实际系统标识、{$ID}实例号与{$PASS}真实口令并确保主机使用被动模式 agent 接口等待若干采集周期后在最新数据中即可看到 6 个监控项STATUS 类显示OK/ERRO经SAP_BACKUP值映射翻译LAST 类显示最近备份的日期/时间文本。采集频率与告警时效设计小结模板对两类监控项采用差异化采集频率值得在实际部署中体会其设计意图STATUSbackup3600s1 小时一次——备份状态属于低频变化数据小时级轮询足够且配合 180 天趋势保留可以回溯历史状态LASTbackup_last21600s6 小时一次——最近备份时间戳只需低频刷新且trends: 0不保存趋势、CHAR字符串存储避免无意义的数据膨胀。告警则完全由 STATUS 类监控项驱动0即触发 DISASTER保证失败必告警、告警即最高级。与仓库中其他 SAP 模板的分工社区模板仓库中还收录了另外两个 SAP 相关模板与本模板恰好形成互补template_sap_host_agent基于 SAP Host Agent覆盖主机层面的可用性、服务与资源监控template_sap_process监控 SAP 关键进程/服务的存活状态SAP Availability Linux。本模板则专注于备份结果这一数据保护维度备份是否执行、执行是否成功、最近一次备份发生在何时。三者结合即可拼出一套覆盖进程存活 → 主机健康 → 备份成功的完整 SAP 运维监控闭环。若在 Production 环境中同时使用建议将本模板与其他 SAP 模板一并链接到同一主机并统一规划宏命名与告警接收人。小结template_sap_backup_tenant_systemdb是一个体量精简但设计清晰的 Zabbix 社区模板它用 3 个宏参数化环境差异用 6 个监控项3 个状态 3 个最近时间覆盖 SYSTEMDB 与 TENANT 的备份监控需求用SAP_BACKUP值映射统一 0/1 语义并用 3 个 DISASTER 级触发器保证备份失败即时可见。其shell script hdbsql UserParameter的实现路径不依赖任何商业插件完全基于 SAP HANA 原生工具链非常适合在已有 Zabbix 与 SAP HANA 的混合环境中快速落地作为备份数据保护的最后一道自动化防线。赞分享【免费下载链接】community-templatesZabbix Community Templates repository项目地址https://gitcode.com/gh_mirrors/co/community-templates点击查看免费下载相关推荐使用 Zabbix 模板监控 SAP HANA SYSTEMDB 与 Tenant 数据库备份状态community-templates 实战指南使用 Zabbix 模板监控 SAP HANA SYSTEMDB 与 Tenant 数据库备份状态community templates 实战指南 本文以 ZZabbix 监控 restic 备份template_restic_backup 模板从状态文件到告警的全链路实战解析Zabbix 监控 restic 备份template_restic_backup 模板从状态文件到告警的全链路实战解析 本文基于 Zabbix Communrestic 备份监控 Zabbix 模板实战基于 resticprofile 状态文件实现失败与超时告警restic 备份监控 Zabbix 模板实战基于 resticprofile 状态文件实现失败与超时告警 本文面向 Zabbix 管理员与备份运维工程师深上一篇5分钟快速上手猫抓Cat-Catch浏览器资源嗅探扩展完全指南下一篇Obsidian-i18n终极指南3分钟让英文插件变中文的完整教程创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考