Zabbix chrony 精度监控模板(日语版)实战:基于 chronyc 采集与依赖项解析实现 NTP 时间同步质量监控 【免费下载链接】community-templatesZabbix Community Templates repository项目地址https://gitcode.com/gh_mirrors/co/community-templates点击查看免费下载导读本文围绕 community-templates 仓库中Applications/NTP/template_chrony_accuracy_japanese目录下的 Zabbix 监控模板展开该模板是 chrony accuracy 英文版模板的日语本地化版本用于对安装了 Zabbix Agent 与 chrony 时间服务的主机进行 NTP 同步精度监控。读完本文你将掌握该模板的导入前提zabbix_agentd.conf 远程命令开关、13 个监控项的采集链路设计master item dependent item 的数据流架构、REGEX/RTRIM/MULTIPLIER/OCTAL_TO_DECIMAL 预处理器的解析原理以及源码中实际定义的三条告警触发器与一张精度趋势图并可据此按需调整宏阈值投入生产使用。模板概览它监控什么、数据从哪里来该模板的定位非常聚焦完整采集chronyc tracking与chronyc sources命令输出中的全部精度信息并量化为可绘制曲线、可触发告警的数值指标。模板定义文件 template_chrony_accuracy_japanese.yamlZabbix 6.0 导出格式显示模板内部标识chrony_Monitoring-Japanese显示名chronyテンプレート所属模板组自宅ラックテンプレートHome Rack 模板组作者个人化分组导入后可按需移动导出时间2021-11-21面向 Zabbix 6.0与英文原版一一对应英文版位于 Applications/NTP/template_chrony_accuracy_english/6.0/README.md原文档中指向cat-app/ntp/chrony-accuracy-template-english的链接是作者个人站点路径在仓库内对应的真实位置即上述英文版目录。从数据源看模板围绕 chrony 的两个核心诊断命令构建chronyc tracking显示本机与 NTP 服务器的同步跟踪状态当前偏移、长期平均偏移、系统时间差、根延迟、层级、同步状态等chronyc sources显示所有配置的 NTP 源及其可达性、延迟、偏移、抖动chronyc -v显示 chrony 客户端版本。部署前置条件必须开启 Agent 远程命令原文档README.md明确强调模板依赖 Zabbix Agent 的远程命令system.run能力使用前必须修改zabbix_agentd.confEnableRemoteCommands1 UnsafeUserParameters1两个参数的作用与注意事项EnableRemoteCommands1允许 Zabbix Agent 执行system.run[...]远程命令。模板的全部 master item 都基于此机制若未开启所有监控项会直接返回 Not supportedUnsafeUserParameters1允许定义包含特殊字符管道符、通配符、重定向等的用户参数/远程命令。模板中如system.run[chronyc sources|grep \* |awk {print$5}]这类带管道与*的命令必须依赖此开关否则 Agent 会拒绝执行。此外还有两点环境要求目标主机必须安装 Zabbix Agent且建议使用active主动模式——YAML 中chronyc tracking、chronyc sources、chronyバージョン、chronyReach四个采集项的类型均为ZABBIX_ACTIVE需要 Agent 主动向 Server/Proxy 上报请确保 Server 端对应配置了主动检查监听目标主机必须安装 chrony 与 chronyc 客户端并且执行命令的系统用户通常是 zabbix 用户需要具备读取 chrony 状态的权限。由于EnableRemoteCommands会放开命令执行面建议仅在受控的内网监控环境开启并关注该配置带来的安全暴露面。导入与关联三分钟接入监控仓库为该模板提供了三个 Zabbix 版本的定义文件按你的 Zabbix 版本选择Zabbix 版本文件5.0template_chrony_accuracy_japanese.xml5.4template_chrony_accuracy_japanese.yaml6.0template_chrony_accuracy_japanese.yaml导入流程与常规 Zabbix 模板一致在 Zabbix 前端依次进入Data collection → Templates → Import上传对应版本的定义文件即可。随后将模板链接到受监控主机Configuration → Hosts → 主机 Templates 栏添加chronyテンプレート并确保该主机配置了正确的 Zabbix Agent 主动检查参数。模板不含任何 Template links 与 Discovery rules低级别自动发现因此导入后无需额外等待发现规则运行监控项会直接开始采集。核心架构一条主采集链 九路依赖解析该模板最值得借鉴的设计是master item主采集项与 dependent item依赖项相结合的数据流架构。YAML 中chronyc trackingsystem.run[chronyc tracking]更新间隔 10 分钟TEXT 类型保留 60 天历史作为唯一主数据源一次性拉取整份 tracking 报告其余九个精度指标全部注册为DEPENDENT类型、delay: 0不单独轮询通过 master item 的 key 挂载在其下system.run[chronyc tracking]10m 拉取一次 ├── Lastoffset NTPオフセット当前偏移 ├── RMSoffset NTPオフセット(長期平均)长期平均偏移 ├── Rootdelay ネットワーク合計遅延根延迟 ├── Systemtime_ms NTP時刻差(ms)系统时间差 ├── Systemtime NTP時刻差(方向)时间差方向 ├── LeapStatus 同期状態闰秒状态 ├── Reference NTP同期サーバ参考源 ID ├── Stratum NTP階層层级 └── Updateinterval NTPポーリング間隔轮询间隔这一设计的收益在于一次命令执行、一次网络传输即可在 Server 端通过预处理器切分出多个独立指标极大降低 Agent 端执行负担与网络开销同时各指标可独立设置值类型、单位、趋势保留与告警阈值。其余三条采集链system.run[chronyc sources]10 分钟TEXT保留完整的 NTP 源列表原始输出便于事后人工排查system.run[chronyc sources|grep \* |awk {print$5}]10 分钟通过管道提取当前同步源*标记行的第 5 列 reach 值并做八进制转十进制预处理见下文system.run[chronyc -v]1 小时CHAR采集 chronyc 版本号便于版本溯源。宏Macros详解与阈值调整README 的宏表完整列出模板定义的两个宏宏名说明默认值类型{$NTP_OFFSET}偏移阈值小50Text macro{$NTP_OFFSET_LARGE}偏移阈值大5000Text macro两个宏默认值分别对应50ms与5000ms的偏移告警边界。需要特别留意一个源码级细节可从 template_chrony_accuracy_japanese.yaml 的触发器表达式推断NTPオフセットLastoffset的小阈值触发器表达式引用的是{$NTP_OFFSET_SMALL}而宏表中并未定义该宏只定义了{$NTP_OFFSET}默认 50与{$NTP_OFFSET_LARGE}默认 5000。也就是说模板作者在设计上以{$NTP_OFFSET}作为小偏移参考值但触发器实际书写的是{$NTP_OFFSET_SMALL}——若你的环境未在模板级或主机级补充定义{$NTP_OFFSET_SMALL}该 INFO 级触发器可能因宏未解析而无法正常触发。建议在主机宏或模板宏中显式补充{$NTP_OFFSET_SMALL} 50以与{$NTP_OFFSET}的语义保持一致并根据实际业务对时间精度的要求调整如金融、日志审计类场景可将小阈值收紧到 5~10ms。监控项Items全表与预处理器原理以下是模板采集的 13 个监控项全景对齐 README 表格并补充源码中的值类型、单位与预处理器信息监控项名称说明类型Key 与补充信息NTP同期サーバ当前参考同步源Reference IDDependent itemReferenceUpdate: 0chronyバージョンchronyc 版本号Zabbix agent (active)system.run[chronyc -v]Update: 1hNTP時刻差(ms)NTP 时间与系统时间的差值Dependent itemSystemtime_msFLOAT单位 msUpdate: 0NTPオフセット(長期平均)与 NTP 服务器的长期平均偏移Dependent itemRMSoffsetFLOAT单位 msUpdate: 0NTP時刻差(方向)NTP 时间与系统时间差的方向fast/slowDependent itemSystemtimeCHARUpdate: 0NTPポーリング間隔与 NTP 服务器的同步轮询间隔Dependent itemUpdateintervalFLOAT单位 sUpdate: 0同期状態闰秒/同步状态Dependent itemLeapStatusCHARUpdate: 0NTP階層本机所处的 stratum 层级Dependent itemStratumUpdate: 0NTPオフセット与 NTP 服务器的当前偏移Dependent itemLastoffsetFLOAT单位 msUpdate: 0ネットワーク合計遅延到 stratum-1 的总网络延迟Dependent itemRootdelayFLOAT单位 msUpdate: 0chronyReach用 8 位二进制表示过去 8 次查询成功次数Zabbix agent (active)system.run[chronyc sources\|grep \* \|awk {print$5}]Update: 10mchronyc sourceschronyc sources 完整输出Zabbix agent (active)system.run[chronyc sources]TEXTUpdate: 10mchronyc trackingchronyc tracking 完整输出主数据源Zabbix agent (active)system.run[chronyc tracking]TEXTUpdate: 10m全部依赖项都带有Application: chrony标签便于按应用维度筛选与权限控制。预处理器从文本到数值的关键转换依赖项的数据解析完全由 Zabbix 预处理器完成理解这些步骤是调优该模板的前提。以LastoffsetNTPオフセット为例YAML 中依次定义了三个处理步骤REGEX 提取Last offset : (.*)→ 捕获组\1。chronyc tracking输出中该行为Last offset : 0.000123 seconds正则从冒号后捕获数值部分RTRIM 裁剪参数seconds去掉值尾部残留的seconds文本单位MULTIPLIER 放大参数1000把 chrony 输出的秒单位乘以 1000 转为毫秒与监控项单位ms对齐。其余依赖项遵循同一套路仅正则模式与裁剪参数不同全部可从 YAML 定义 中核对监控项 keyREGEX 模式后续处理LastoffsetLast offset : (.*)RTRIMseconds→ MULTIPLIER 1000RMSoffsetRMS offset :(.*)RTRIMseconds→ MULTIPLIER 1000RootdelayRoot delay :(.*)RTRIMseconds→ MULTIPLIER 1000Systemtime_msSystem time :(.*)RTRIMseconds {fast\|slow} of NTP time→ MULTIPLIER 1000SystemtimeSystem time : (.*)再匹配(fast\|slow)用第二条 REGEX 二次提取方向词LeapStatusLeap status :(.*)直接输出ReferenceReference ID : (.*)LTRIMReference ID :去前缀StratumStratum : (.*)直接输出UpdateintervalUpdate interval :(.*)RTRIMsecondschronyReach则是唯一使用算术类预处理器的监控项命令chronyc sources|grep \* |awk {print$5}提取当前同步源行的 reach 字段如377为八进制表示的 8 位可达性位图每位代表过去一次查询的成败随后经OCTAL_TO_DECIMAL预处理器转为十进制377→255供趋势与告警使用。README 对该字段的释义为以 8 位二进制表示过去 8 次查询的成功次数。说明Systemtime_ms与Systemtime共享同一行System time的原始数据但通过不同的正则与处理链分别产出数值ms与方向fast/slow两个指标是一份原始数据多路解析的典型示例。触发器TriggersREADME 未记载的告警逻辑需要指出的是README 的 Triggers 一节写的是There are no triggers in this template但这是文档滞后于实现的描述——实际 YAML 定义文件中明确包含 3 条触发器导入后即可生效。从源码结构看触发器全部挂载于依赖项之上NTPオフセットLastoffset大阈值告警WARNINGlast(/chrony_Monitoring-Japanese/Lastoffset){$NTP_OFFSET_LARGE} or last(/chrony_Monitoring-Japanese/Lastoffset)-{$NTP_OFFSET_LARGE}名称上位NTPとのずれが{$NTP_OFFSET_LARGE}msを超えました与上级 NTP 的偏差超过 5000ms。采用双向判断偏移过大或过小均告警。NTPオフセットLastoffset小阈值告警INFOlast(/chrony_Monitoring-Japanese/Lastoffset){$NTP_OFFSET_SMALL} or last(/chrony_Monitoring-Japanese/Lastoffset)-{$NTP_OFFSET_SMALL}名称上位NTPとのずれが{$NTP_OFFSET_SMALL}msを超えました。且该触发器在定义中显式依赖dependency于大阈值触发器——即小偏移告警会继承大偏移告警的故障状态避免同一偏移异常同时触发 INFO 与 WARNING 两级告警造成通知轰炸只有大阈值未触发时 INFO 才会独立告警。这也再次印证上文对{$NTP_OFFSET_SMALL}宏需手动补充的分析。同期状態LeapStatus失同步告警WARNING类型 MULTIPLEfind(/chrony_Monitoring-Japanese/LeapStatus,,regexp,Not synchronized)0名称NTPサーバーと同期していません。未与 NTP 服务器同步。find函数对Not synchronized做正则匹配一旦同步状态变为未同步即触发。MULTIPLE类型意味着该触发器允许多次触发周期性问题场景下每次出现都会重新告警。LeapStatus 的取值含义模板描述原文Normal正常、Insert second插入闰秒、Delete second删除闰秒、Not synchronized未同步。图表Graphs精度三线趋势图YAML 末尾定义了一张名为chrony NTP精度情報的图表将三个核心偏移指标叠加展示曲线监控项线型颜色NTPオフセット当前偏移LastoffsetBOLD_LINE粗线1A7C11绿NTPオフセット(長期平均)RMSoffsetBOLD_LINEF63100红NTP時刻差(ms)Systemtime_msBOLD_LINE2774A4蓝将当前瞬时偏移Lastoffset与长期平均偏移RMSoffset以及系统时间差Systemtime_ms放在同一坐标系中可以直观判断瞬时值抖动是否收敛于长期均值、系统时间与 NTP 时间的偏离趋势是判断 chrony 驯服disciplining质量最常用的可视化手段。同目录模板选型何时用 chrony何时用 ntpqApplications/NTP 目录下还提供了多个功能相近的模板明确各自的适用边界有助于正确选型模板目录数据源适用场景template_chrony_accuracy_japanese本文chronyc tracking / sources主机运行 chrony 且装有 Zabbix Agenttemplate_chrony_accuracy_englishchronyc tracking / sources同上英文界面/命名偏好template_chrony_accuracychronyc trackinggrep awk 逐项采集同上但每个指标独立执行命令并附带proc.num[,chrony]进程数监控template_chrony_accuracy_1chronyc tracking / sources同上较早的逐项采集实现无 dependent item 架构template_ntp_accuracyntpq -p主机运行 ntpd传统 NTP 守护进程template_ntp_accuracy_japanesentpq -pntpd 场景的日语版另含基于{$NTP_IP}宏的远程 NTP 设备监控模式可见chrony 系列与 ntpq 系列的抉择本质上是chrony 与 ntpd 两种时间服务的抉择而日语版、英语版仅差在界面文案。本文模板的差异化优势在于以单一chronyc tracking命令为数据源、配合 dependent item 批量切分采集效率与历史数据一致性优于template_chrony_accuracy_1等逐项 grep/awk 的实现。常见问题与调优建议监控项显示 Not supported优先检查zabbix_agentd.conf中EnableRemoteCommands1与UnsafeUserParameters1是否生效修改后需重启 zabbix-agent 服务其次确认主机上存在chronyc可执行文件且 zabbix 用户对其有执行权限。主动检查数据不更新确认 Agent 的主动检查ServerActive/Server 配置指向正确的 Server/Proxy且模板监控项类型与 agent 模式匹配。INFO 级小阈值告警不触发按上文分析补充定义{$NTP_OFFSET_SMALL}宏建议取值与{$NTP_OFFSET}一致如 50或直接在主机级覆盖为业务所需精度。阈值个性化不同业务的时钟精度要求差异很大——日志审计、数据库主从、证书有效性校验等场景对偏移敏感可在主机宏中单独覆盖{$NTP_OFFSET}/{$NTP_OFFSET_LARGE}无需改动模板。安全加固远程命令 非安全参数属于高权限配置建议限制system.run的使用范围如通过用户参数白名单或仅对内网监控网段开放并定期核查被监控主机上 chrony 配置/etc/chrony.conf的源列表与日志与模板指标互为印证。长期运维视角结合RMSoffset长期平均与Rootdelay根延迟判断是本地时钟漂移还是网络路径劣化结合Stratum判断层级是否异常跳变chronyReach持续低于255时说明查询存在丢失应排查网络或源服务器健康度。总结chronyテンプレート日语版 chrony 精度监控模板通过一条chronyc tracking主采集链加九路依赖解析将 NTP 同步质量拆解为偏移、长期均值、系统时间差、根延迟、层级、轮询间隔、同步状态与可达性等多维指标并内置大小阈值两级偏移告警与失同步告警配合三线精度趋势图构成一套低成本、可告警、可溯源的时钟同步监控方案。结合本文对 YAML 源码 的逐项拆解读者既可以开箱即用地部署监控也能在理解预处理器与触发器机制后针对自身业务灵活调整阈值与扩展监控维度。赞分享【免费下载链接】community-templatesZabbix Community Templates repository项目地址https://gitcode.com/gh_mirrors/co/community-templates点击查看免费下载相关推荐Zabbix chrony 精度监控模板template_chrony_accuracy_english实战指南基于 chronyc 采集 NTP 偏移、Stratum 与同步状态Zabbix chrony 精度监控模板template_chrony_accuracy_english实战指南基于 chronyc 采集 NTP 偏移、Zabbix 监控实践基于 chronyc 命令的 chrony NTP 精度监控模板详解Zabbix 监控实践基于 chronyc 命令的 chrony NTP 精度监控模板详解 本文以 Zabbix Community Templates 仓库mathjs表达式解析器实战一行代码求值任意数学公式支持单位换算与复数运算mathjs表达式解析器实战一行代码求值任意数学公式支持单位换算与复数运算 mathjs表达式解析器 Expression Parser是开源数学库 m上一篇如何在5分钟内使用Gradio为BentoML AI模型构建专业Web界面下一篇彻底搞懂Vue.js实现原理从响应式到虚拟DOM的完整指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考