我要提问
ARTICLE DETAIL

资讯详情

前沿编程新知与开发实战干货的深度解读。

Zabbix 监控 Nagios 运行状态:App Nagios stats 模板与 nagiostats 集成实战指南

Zabbix 监控 Nagios 运行状态:App Nagios stats 模板与 nagiostats 集成实战指南 【免费下载链接】community-templatesZabbix Community Templates repository项目地址https://gitcode.com/gh_mirrors/co/community-templates点击查看免费下载本文基于 Zabbix 社区模板仓库community-templates中的App Nagios stats模板6.0 README展开。该模板通过 Nagios 3.x 自带的nagiostats命令采集监控系统的内部运行统计并以 73 个监控项 22 张图表 1 个告警触发器的形态接入 Zabbix。读完本文你将掌握从权限配置、脚本与 UserParameter 部署、模板导入到监控项解读、告警与图表使用的完整落地方法并能理解其「Zabbix agentactive驱动采集 Zabbix trapper 收数」的混合数据链路设计。模板概览nagiostats 是什么模板解决什么问题nagiostats是 Nagios 3.x 内置的统计工具可直接输出 Nagios 守护进程内部的运行数据例如最近 1/5/15/60 分钟内完成检查的主机与服务数量Active / Passive 两类主机与服务检查的执行时间最小 / 平均 / 最大主机与服务的延迟Latency最小 / 平均 / 最大主机与服务的状态变化率State Change百分比外部命令External Commands处理数量命令缓冲区Command Buffers使用情况被纳管的主机与服务总量。本模板模板名App Nagios stats作者 sewata的作用就是把上述nagiostats输出逐字段映射为 Zabbix 监控项使运维人员可以在 Zabbix 前端统一查看 Nagios 自身的健康度与负载。模板对Nagios 3.x有效README 明确标注Nagios 3.x仓库中同时提供了 5.0XML、5.4YAML、6.0YAML三个格式版本本文以 6.0 版本模板定义 为主进行讲解。工作原理与数据链路从模板定义与 README 可以还原出如下数据流Nagios 守护进程 │ ▼ nagiostatsNagios 3.x 内置命令 │ ▼ get-nagiostats.sh部署在 /etc/zabbix/scripts/解析 nagiostats 输出 │ ├──► 由 Zabbix agentactive按 60 秒周期执行键为 get.nagiostats │ └──► 将各统计字段发送给 Zabbix server 上对应的 trapper 监控项 模板中 72 个类型为 Zabbix trapper 的监控项具体到模板内部73 个监控项被设计为两种角色get.nagiostatsZabbix agent (active)更新周期 60s它是整个采集流程的驱动器。agent 每隔 60 秒向 server 请求该活动检查并执行脚本脚本返回0表示成功、非0表示失败——模板据此实现告警。其余 72 个Zabbix trapper监控项更新周期 0它们不主动轮询只接收由get-nagiostats.sh通过 Zabbix trapper 协议通常为zabbix_sender推送上来的数值。从模板设计可以推断脚本在执行nagiostats后将解析出的每个字段以对应 item key 发送到本机 Zabbix server。需要说明的是仓库本身只包含 README 与模板导入文件get-nagiostats.sh脚本本体由原文档指向的外部项目提供部署时需自行获取并放到/etc/zabbix/scripts/下上述脚本使用 zabbix_sender 推送、以退出码反映成败的细节属于依据模板结构trapper 类型 非 0 告警触发器做出的合理推断实际以脚本实现为准。安装部署三步走README 给出了非常简洁的三步安装流程这里结合 Zabbix 常规操作展开。第一步将 zabbix 用户加入 nagios 组nagiostats需要读取 Nagios 的运行数据文件因此必须让运行 Zabbix agent 的系统用户通常是zabbix拥有相应权限。README 的原文要求是add zabbix user into nagios group to execute nagiostats.在基于 systemd 且使用标准用户/组的 Linux 发行版上可用如下命令实现具体以发行版用户管理方式为准usermod -aG nagios zabbix加入组后需要重启 Zabbix agent 服务使新的组成员关系生效systemctl restart zabbix-agent第二步部署脚本与 UserParameter将get-nagiostats.sh脚本放置到/etc/zabbix/scripts/目录并确保其可执行mkdir -p /etc/zabbix/scripts install -m 0755 get-nagiostats.sh /etc/zabbix/scripts/get-nagiostats.sh在 Zabbix agent 配置中注册 UserParameter详见下文UserParameter 配置详解一节然后重启 agent。第三步导入模板进入 Zabbix Web 前端Configuration配置→ Templates模板→ Import导入选择本仓库对应版本的导入文件Zabbix 6.0template_get_nagiostats.yamlZabbix 5.4template_get_nagiostats.yamlZabbix 5.0template_get_nagiostats.xml勾选需要导入的组默认Templates并完成导入将模板链接到运行 Nagios 的主机Host → Templates → Link new template等待一个采集周期即可看到数据。UserParameter 配置详解README 中给出的 UserParameter 定义原文为UserParameterget.nagiostats,/etc/zabbix/scripts/get-nagiostats.sh其语法遵循 Zabbix agent 的 UserParameter 格式UserParameterkey,command组成部分值说明keyget.nagiostats与模板中活动监控项的键完全一致用于被模板的Zabbix agent (active)检查调用command/etc/zabbix/scripts/get-nagiostats.sh脚本绝对路径脚本内部负责调用nagiostats并推送各字段该配置行通常写入/etc/zabbix/zabbix_agentd.conf全局主配置或/etc/zabbix/zabbix_agentd.d/*.confinclude 目录推荐以独立文件如userparameter_nagios.conf存放便于管理。配置完成后重启 agent并可在 Nagios 主机本机用以下命令验证脚本可执行性与返回码/etc/zabbix/scripts/get-nagiostats.sh echo $? # 0 表示成功非 0 表示失败采集项全景73 个监控项详解模板共定义 73 个监控项除get.nagiostats为活动检查外其余 72 个均为Zabbix trapper类型更新周期为0即完全由推送驱动不做轮询历史数据保留30d。数值型字段的类型与单位在 6.0 YAML 中定义明确执行时间 / 延迟value_type: FLOAT单位sec状态变化率value_type: FLOAT单位%各类计数默认数值类型无单位。所有监控项都带Application标签[nagiostats]5.0 XML 中体现为同名 application 分组便于按应用筛选。下面按语义分类完整列出全部监控项。采集驱动项1 个名称类型键附加信息get nagiostatsZabbix agent (active)get.nagiostatsUpdate: 60s返回非 0 触发告警主机与服务总量2 个名称类型键Total HostsZabbix trappertotal_hstsTotal ServicesZabbix trappertotal_srvs主机 / 服务数量最近 1 / 5 / 15 / 60 分钟16 个名称键名称键Active Hosts Last (1min)act_hsts_last_1minPassive Hosts Last (1min)psv_hsts_last_1minActive Hosts Last (5min)act_hsts_last_5minPassive Hosts Last (5min)psv_hsts_last_5minActive Hosts Last (15min)act_hsts_last_15minPassive Hosts Last (15min)psv_hsts_last_15minActive Hosts Last (60min)act_hsts_last_60minPassive Hosts Last (60min)psv_hsts_last_60minActive Services Last (1min)act_srvs_last_1minPassive Services Last (1min)psv_srvs_last_1minActive Services Last (5min)act_srvs_last_5minPassive Services Last (5min)psv_srvs_last_5minActive Services Last (15min)act_srvs_last_15minPassive Services Last (15min)psv_srvs_last_15minActive Services Last (60min)act_srvs_last_60minPassive Services Last (60min)psv_srvs_last_60min检查次数最近 1 / 5 / 15 分钟12 个名称键名称键Active Host Checks Last (1min)act_hst_checks_last_1minPassive Host Checks Last (1min)psv_hst_checks_last_1minActive Host Checks Last (5min)act_hst_checks_last_5minPassive Host Checks Last (5min)psv_hst_checks_last_5minActive Host Checks Last (15min)act_hst_checks_last_15minPassive Host Checks Last (15min)psv_hst_checks_last_15minActive Service Checks Last (1min)act_srv_checks_last_1minPassive Service Checks Last (1min)psv_srv_checks_last_1minActive Service Checks Last (5min)act_srv_checks_last_5minPassive Service Checks Last (5min)psv_srv_checks_last_5minActive Service Checks Last (15min)act_srv_checks_last_15minPassive Service Checks Last (15min)psv_srv_checks_last_15min延迟 Latency最小 / 平均 / 最大单位秒12 个名称键名称键Active Host Latency (Min)act_hst_latency_minPassive Host Latency (Min)psv_hst_latency_minActive Host Latency (Average)act_hst_latency_avePassive Host Latency (Average)psv_hst_latency_aveActive Host Latency (Max)act_hst_latency_maxPassive Host Latency (Max)psv_hst_latency_maxActive Service Latency (Min)act_srv_latency_minPassive Service Latency (Min)psv_srv_latency_minActive Service Latency (Average)act_srv_latency_avePassive Service Latency (Average)psv_srv_latency_aveActive Service Latency (Max)act_srv_latency_maxPassive Service Latency (Max)psv_srv_latency_max执行时间 Execution Time最小 / 平均 / 最大单位秒6 个名称键名称键Active Host Execution Time (Min)act_hst_exec_time_minActive Service Execution Time (Min)act_srv_exec_time_minActive Host Execution Time (Average)act_hst_exec_time_aveActive Service Execution Time (Average)act_srv_exec_time_aveActive Host Execution Time (Max)act_hst_exec_time_maxActive Service Execution Time (Max)act_srv_exec_time_max状态变化率 State Change最小 / 平均 / 最大单位 %18 个名称键名称键Active Host State Change (Min)act_hst_state_change_minPassive Host State Change (Min)psv_hst_state_change_minActive Host State Change (Average)act_hst_state_change_avePassive Host State Change (Average)psv_hst_state_change_aveActive Host State Change (Max)act_hst_state_change_maxPassive Host State Change (Max)psv_hst_state_change_maxActive Service State Change (Min)act_srv_state_change_minPassive Service State Change (Min)psv_srv_state_change_minActive Service State Change (Average)act_srv_state_change_avePassive Service State Change (Average)psv_srv_state_change_aveActive Service State Change (Max)act_srv_state_change_maxPassive Service State Change (Max)psv_srv_state_change_maxTotal Host State Change (Min)total_hst_state_change_minTotal Service State Change (Min)total_srv_state_change_minTotal Host State Change (Average)total_hst_state_change_aveTotal Service State Change (Average)total_srv_state_change_aveTotal Host State Change (Max)total_hst_state_change_maxTotal Service State Change (Max)total_srv_state_change_max外部命令 External Commands最近 1 / 5 / 15 分钟3 个名称键External Commands Last (1min)external_cmds_last_1minExternal Commands Last (5min)external_cmds_last_5minExternal Commands Last (15min)external_cmds_last_15min命令缓冲区 Command Buffers3 个名称键Command Buffers (Used)cmd_buffers_usedCommand Buffers (High)cmd_buffers_highCommand Buffers (Total)cmd_buffers_total以上表格完整覆盖了 README「Items collected」一节列出的全部 73 个监控项72 个 trapper 1 个 active键名、类型与更新周期均与 6.0 模板 YAML 中定义一致。告警触发器采集失败的探针README 中Triggers一节写着There are no triggers in this template但实际导入文件中存在一个触发器——README 属于早期生成的说明文档未随模板更新这一点以模板导入文件为准triggers: - name: get nagiostats failed expression: last(/App Nagios stats/get.nagiostats)0 priority: WARNING该触发器挂在get.nagiostats活动监控项上逻辑为只要最近一次脚本返回值非 0即判定采集失败并产生 WARNING 级告警。这一设计与脚本成功返回 0、失败返回非 0的约定配合构成了对整个数据链路的健康探针——如果脚本因权限不足、nagiostats不可用或解析失败等原因退出告警会立即提示避免数据静默缺失。在 5.0 XML 中该触发器同样存在表达式形式为{last()}0。图表与仪表盘开箱即用的可视化模板内置了 22 张图表graph把上述监控项按语义组合成可直接查看的曲线并统一采用一致的配色约定绿色00C800Average平均或 1min 序列红色C80000Max最大或 5min 序列蓝色0000C8Min最小或 15min 序列品红C800C860min 序列仅用于Last类四序列图表。22 张图表分别为Active Host Checks Last、Active Host Execution Time、Active Host Latency、Active Hosts Last、Active Host State Change、Active Service Checks Last、Active Service Execution Time、Active Service Latency、Active Services Last、Active Service State Change、Command Buffers、External Commands Last、Passive Host Checks Last、Passive Host Latency、Passive Hosts Last、Passive Host State Change、Passive Service Checks Last、Passive Service Latency、Passive Services Last、Passive Service State Change、Total Host State Change、Total Service State Change。例如Active Hosts Last图同时绘制 1/5/15/60min 四条曲线Active Host Latency图同时绘制 min/avg/max 三条曲线Command Buffers图同时绘制 used/high/total 三条曲线——导入模板后即可在图表中直接观察 Nagios 负载的短期与长期趋势。此外模板还提供了汇总视图6.0 版本内置名为Nagios stats的dashboard以 GRAPH_CLASSIC 组件按 12×5 网格排布total_hsts、total_srvs以及各 Active 系列图Checks Last、Latency、State Change、Execution Time 等导入即可直接打开查看5.0 版本对应的是一张名为Nagios stats的screen在 5.0 XML 的screens段定义同样聚合了 Total 图与各 Active 系列图。README 中标注的20161126 Added Graphs and Screen in the template即对应这次可视化增强。版本演进与仓库文件布局该模板在仓库中位于 Applications/Monitoring_System/template_get_nagiostats包含三个 Zabbix 版本分支版本导入文件说明5.0template_get_nagiostats.xmlXML 格式含 application 分组与 Screen5.4template_get_nagiostats.yamlYAML 格式使用 tagApplication[nagiostats]6.0template_get_nagiostats.yamlYAML 格式含 dashboard、22 张图与触发器三个版本的模板主体监控项集合、键名、触发器逻辑保持一致差异主要体现在导出格式与可视化载体5.0 的 Screen → 6.0 的 Dashboard。模板本身不依赖任何宏、不链接其他模板、不使用发现规则README 相应章节均标注 There are no ...因此导入成本极低、无外部依赖。常见问题与排障建议get nagiostats failed告警持续触发优先排查脚本退出码。在 Nagios 主机上手动执行/etc/zabbix/scripts/get-nagiostats.sh echo $?若返回非 0常见原因是 zabbix 用户不在 nagios 组、nagiostats命令不在 PATH 中或 Nagios 状态文件权限不足。确认usermod -aG nagios zabbix后已重启 agent。trapper 监控项长期无数据检查脚本是否成功通过 Zabbix trapper 协议如zabbix_sender推送数据以及 Zabbix server 的 trapper 端口默认 10051是否可达同时确认主机已链接App Nagios stats模板且监控项处于启用状态。由于 trapper 项更新周期为 0数据完全依赖推送任何推送失败都会表现为无数据。数据单位与取值异常延迟与执行时间项单位为secFLOAT状态变化率项单位为%FLOAT数量类项无单位。若出现单位不符或精度问题可对照 6.0 YAML 中各项的value_type与units定义逐一核对。README 与导入文件的差异以导入文件为准。例如 README 声称无触发器但 5.0/5.4/6.0 三个导入文件中均包含get nagiostats failedWARNING触发器README 的 Items 表格也未包含 6.0 中新增的图表与 dashboard 信息这些均以模板文件为权威来源。赞分享【免费下载链接】community-templatesZabbix Community Templates repository项目地址https://gitcode.com/gh_mirrors/co/community-templates点击查看免费下载相关推荐Rufus 启动盘10 分钟装好 Windows 11Rufus 启动盘10 分钟装好 Windows 11 旧笔记本想装 Windows 11安装程序嫌没有 TPM 2.0好不容易装完又逼你登录微软账户。基于 nagiostats 的 Nagios 3.x 统计监控Zabbix「App Nagios stats」模板部署与指标全解基于 nagiostats 的 Nagios 3.x 统计监控Zabbix「App Nagios stats」模板部署与指标全解 导读 本文围绕 communPageIndex 自托管部署三步在本地搭好无向量文档索引PageIndex 自托管部署三步在本地搭好无向量文档索引 PageIndex 是一个基于推理的文档索引系统它把长篇 PDF 变成层级树状目录再让大模型在人工智能大模型RAG上一篇从零开始构建BitTorrent系统基于ttorrent的完整开发教程下一篇Qt Go视频播放器开发从零构建跨平台媒体播放器创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表