time-sync-diagnosis
面向 Linux 时间同步故障的结构化诊断技能。适用于时间漂移、同步失败、ntpq 查询异常、UDP 123 连通性异常、计时源不稳定、False Ticker、Panic 阈值触发等场景;当用户提到时间不同步、时钟漂移、NTP/chronyd 故障、时钟源或 Stratum 异常时应触发。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
面向 Linux 时间同步故障的结构化诊断技能。适用于时间漂移、同步失败、ntpq 查询异常、UDP 123 连通性异常、计时源不稳定、False Ticker、Panic 阈值触发等场景;当用户提到时间不同步、时钟漂移、NTP/chronyd 故障、时钟源或 Stratum 异常时应触发。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
通过分析服务器的【系统级离线日志】——iBMC/SEL 带外日志(磁盘在位/热插拔/错误事件)、OS 系统日志(dmesg、syslog、messages)、InfoCollect 采集日志(SMART 信息/RAID 卡日志/性能数据)——并在日志包含有希捷 FARM 底层遥测日志(farmlog)时执行【OS+FARM 联合底层定界】,诊断离线磁盘硬件、RAID 控制器及存储链路故障,做多源时序对齐、物理级根因溯源与冷存储根因定界(R1-R16 R 码:磁头信号退化/磁头飞行异常/盘片介质退化/振动致伤/固件异常/机械电机退化/链路/RAID/EXP/OS 域)。当用户提供 ibmc_logs / messages(dmesg、syslog)/ infocollect_logs / farmlog 等服务器日志包(任意组合),或询问 RAID 掉盘降级(Offline/Degraded)、I/O 超时阻塞(Timeout/Blocked)、SAS/SATA/NVMe 链路不稳定(PHY Reset/ICRC)、物理槽位异常、磁盘巡检/SMART 告警、文件系统因底层存储故障切只读(Read-only)、磁头级退化定位与 Depop 延寿评估需要从日志反查底层根因时,调用本技能。**双模式**:仅有 OS/iBMC/InfoCollect 系统日志时按纯 OS 侧流程定界根因;同时存在 farmlog 时 Step 5 必须执行,输出结合 OS+FARM 的联合分析报告(逐磁头底层细节 + R 码根因定界)。**若用户只提供希捷 FARM 底层日志(farmlog / openSeaChest .json / 华为 disktool .txt),而无任何 OS/iBMC/InfoCollect 系统日志,应改用 `seagate-farm-disktool-health-analysis` 技能。**
专门分析希捷 (Seagate) 硬盘的 FARM (Field-Accessible Reliability Metrics) 【单帧底层遥测日志】——这是本技能唯一的输入,不涉及 OS/iBMC/RAID 卡系统日志。基于 FARM 逐磁头遥测,判定磁盘健康、按 8 类故障部位 (盘片坏扇区 / 磁头读写通道 ECC / 机械马达伺服 / 接口传输 / 温度环境振动 / 寿命工况 / 固件服务区 / SSD 磨损) 定位问题、收敛到具体磁头,并给出机群级处置建议。当用户要做希捷盘 FARM 级健康巡检/多盘体检、定位磁头退化、坏扇区/重分配、不可恢复读、命令超时 (CTO)、飞高 (FAFH) 异常、Mach.2 双致动器 (如 Exos 2X18 / ST20000NM002H) 磁盘诊断时,必须使用本技能。**本技能只读 FARM 单帧遥测,不分析 OS dmesg/syslog/messages、iBMC SEL 或 RAID 卡日志;若需结合服务器系统日志做存储链路/RAID/文件系统只读的时序根因溯源,请改用 `offline-disk-fault-diagnosis` 技能。**
火焰图分析 Skill。当用户提供折叠栈(.folded)、火焰图SVG、perf script输出、Chrome cpuprofile、Go pprof、AsyncProfiler输出等性能采样数据,并提出"CPU为什么高"、"哪里是瓶颈"、"分析锁竞争"、"对比两次采样"、"GC压力"等分析意图时,必须使用此skill。支持多格式输入适配、SVG反向解析、自然语言意图识别、性能模式检测、On-CPU+Off-CPU联合分析,输出Markdown分析报告和可交互HTML火焰图。
页缓存与内存回收异常诊断技能。覆盖 kswapd 高 CPU(频繁回收)、direct reclaim 导致进程 延迟抖动(allocstall 计数飙升)、dirty page writeback 风暴(dirty_ratio/dirty_background_ratio 配置不当)、page cache 过度占用导致可用内存假告警、drop_caches 误用引发 I/O 风暴等场景。 当用户提到 kswapd CPU 高、内存回收、direct reclaim、allocstall、dirty page writeback、 page cache 过高、可用内存不足、drop_caches、I/O 风暴、内存压力、zone reclaim、 kswapd0 CPU 100%、内存抖动等问题时,必须使用此 skill。
块设备 / Device-Mapper / 软 RAID / LVM / multipath 诊断技能。 覆盖 LVM 层(thin pool 满、PV/VG/LV 缺失、snapshot 溢出)、 md 软 RAID 降级/重建/mismatch、multipath 路径失效/抖动与 failover、 块设备 IO 错误传播(EIO)、IO 调度器(mq-deadline/bfq)异常、 request queue 卡死、设备只读切换等场景。 采用"块层 → DM/MD 映射栈 → 物理设备"自上而下定位。 当用户提到磁盘 IO 慢、设备只读、RAID 降级、LVM 异常、multipath 路径失效、 IO 错误、dmesg I/O error、D 状态进程堆积、文件系统卡死怀疑块设备问题时, 必须使用本技能。
Netfilter / iptables / conntrack 防火墙与连接跟踪深度诊断技能(双轨:规则链 + conntrack)。 当用户提到 nf_conntrack 表满、防火墙丢包、iptables DROP、NAT 映射异常、conntrack INVALID 丢包、 nftables 规则误命中、SNAT/DNAT 失败、连接跟踪超时、ipset 匹配异常、ct helper/ALG 问题等关键词时, 必须使用本技能。覆盖场景:nf_conntrack_max 溢出丢包、iptables/nftables 规则误命中导致 DROP/REJECT、 NAT/SNAT/DNAT 映射异常、conntrack 状态(INVALID/UNREPLIED/UNESTABLISHED)丢包、TCP window tracking 异常、 ct timeout 超时、helper/ALG 协议辅助模块异常、ipset 匹配失效。诊断定位路径:规则链遍历 → conntrack 表状态 → NAT 映射验证 → 内核丢包计数点定界。与 network-diagnosis(通用 IP/路由/ARP/接口诊断)和 X-diagnosis-network-analysis(TCP 协议栈工具诊断)区隔。本技能聚焦 Linux 内核 Netfilter 框架本身的问题, 而非通用网络连通性。
| name | time-sync-diagnosis |
| description | 面向 Linux 时间同步故障的结构化诊断技能。适用于时间漂移、同步失败、ntpq 查询异常、UDP 123 连通性异常、计时源不稳定、False Ticker、Panic 阈值触发等场景;当用户提到时间不同步、时钟漂移、NTP/chronyd 故障、时钟源或 Stratum 异常时应触发。 |
在最短路径内给出可复现、可验证的时间同步故障结论,并输出清晰的时间链与根因链。
运行:
bash ./scripts/time_master_diag.sh
| 识别指纹(Step 1 关键输出) | 归属场景 | 诊断方法论 |
|---|---|---|
| 多个时间服务同时 active;UDP 123 被非目标服务占用;启动失败且配置可疑 | A 控制平面 | 服务唯一性原则(同类守护进程冲突优先) |
进程存在但 ntpq refused;本地查询失败;ACL 可疑 | B 管理通道 | 监听边界 + 访问控制审计(重点 loopback) |
域名解析失败;TIMEOUT;reach=0;上游不可达 | C 链路通断 | 端到端剥离(DNS -> 网络 -> 对端) |
steal time 高;hpet/低性能时钟源;时钟中断抖动 | D 内核与交付 | 计时源稳定性与调度干预分析 |
| False Ticker;Panic/Step 触发;可连但不被信任 | E 协议逻辑与安全 | 一致性与置信度校验 |
原则:先验证“是否成立”,再解释“为什么成立”,最后界定“影响范围”。
bash ./scripts/drill_down_control.sh依赖 -> 冲突 -> 配置
chronyd/ntpd/timesyncd 是否并存并抢占 UDP 123bash ./scripts/drill_down_mgmt.sh监听边界 -> ACL -> 工具路径
127.0.0.1 / ::1restrict/allow 是否允许本地查询bash ./scripts/drill_down_network.shDNS -> UDP123 -> 上游
nc/探测手段验证 UDP 123reach=0 时检查上游 stratum 与可用性bash ./scripts/drill_down_kernel.shclocksource -> steal -> 调度影响
clocksource(如 TSC/HPET)steal timebash ./scripts/drill_down_protocol.sh一致性比对 -> 离散度分析 -> 阈值保护
成立 / 不成立 / 待证实目标:防止“单证据误判”,确保结论经得起反事实挑战。
按以下模板输出最终结论,缺失项要显式标注“待补证据”。
## 时间同步故障根因分析结论
### 1) 基本信息
- 故障时间:<YYYY-MM-DD HH:MM:SS 时区>
- 发现时间:<...>
- 影响范围:<主机/集群/业务>
- 影响表现:<时钟漂移/同步失败/查询失败/...>
### 2) 故障事件时间链(Time Chain,按故障演进而非诊断步骤)
- T0 <时间>:<变更/触发事件,如升级、配置发布、网络策略变更>
- T1 <时间>:<首次异常出现,如 offset 突增、同步中断、告警触发>
- T2 <时间>:<故障扩大或稳定化表现,如 reach 持续为 0、业务受影响>
- T3 <时间>:<关键转折事件,如切源失败、服务重启无效、冲突加剧>
- T4 <时间>:<处置动作与恢复信号,如冲突解除后指标回归>
### 3) 故障根因链(Causal Chain)
- 直接原因:<例如 UDP 123 被 timesyncd 占用,chronyd 无法有效工作>
- 中间机制:<例如 进程冲突 -> 选源失败 -> reach 持续为 0>
- 深层原因:<例如 变更未执行服务唯一性校验>
- 触发条件:<例如 升级后默认启用 timesyncd>
### 4) 证据清单(支持 / 反证)
- 支持证据:
- <命令/日志/指标 1>
- <命令/日志/指标 2>
- 反证与排除:
- <被排除候选根因 1 + 理由>
### 5) 结论置信度
- 置信等级:<高/中/低>
- 置信依据:<跨服务/网络/时间三维一致性说明>
### 6) 修复与预防
- 即时修复:<已执行动作>
- 长期治理:<配置基线、巡检项、监控项、变更门禁>
- 验证结果:<恢复指标与观察窗口>