时间同步是什么
监控数据的可比性建立在时间一致之上:指标、日志、链路三者的时间戳如果不在同一时刻基准,图表对不齐、按时间窗的关联查询落空、基于时间差的告警出现莫名误报。全链路应统一 NTP 源并持续监控偏移量,把时间同步当成基础设施而不是可选项——它本身很少直接故障,但会让所有其它监控结论变得不可信。
基本信息
| 适用平台 | Linux 主机(chrony 或 systemd-timesyncd)、Windows 时间服务 |
|---|---|
| 常用检查命令 | timedatectl status、chronyc tracking、chronyc sources |
| 监控指标 | node_timex_offset_seconds 等时钟偏移指标 |
| 容器环境 | 时间随宿主机,容器内不单独跑时间同步 |
典型使用场景
- 新主机上线:确认时区与 NTP 源已配置并完成同步
- 跨机房排障:核对多台主机时间差,避免把先后顺序搞反
- 虚拟机迁移后巡检:迁移与挂起会导致时钟跳变,恢复后重点检查
- 容器平台基线:统一宿主机时间源,避免各节点时间漂移
- 证书与鉴权排障:时间偏差过大时 TLS 校验与令牌校验会失败
检查与校正
检查与校正
timedatectl status # 查看时区、NTP 同步状态
chronyc tracking # 系统时钟偏移与频率偏差
chronyc sources -v # NTP 源列表与可达状态
sudo chronyc makestep # 手动立即校正一次(大偏差时用)
# 只看同步状态一句话结论
timedatectl show -p NTPSynchronized --value
# 结果 yes 表示已同步,no 需要继续排查源与网络策略输出逐列读法
| 字段 | 含义 | 正常与异常 |
|---|---|---|
| System clock synchronized | 是否已与源同步 | 应为 yes,no 时时间不受控 |
| NTP service | 时间同步服务是否启用 | 应为 active |
| Leap status | 闰秒状态 | 应为 Normal |
| Last offset | 最近一次校正的偏差 | 接近零为正常,毫秒级以上需关注 |
| RMS offset | 长期偏差均方根 | 持续偏大说明同步质量差 |
容器内不要单独运行时间同步守护进程:容器与宿主机共享内核时钟,在容器内改时间会影响宿主及同主机其它容器。
时间大幅回拨会让速率类查询出现负值或长时间空白,事后看到曲线断裂先核对那段时间是否发生过时钟调整。