不致命但会连带出错
时间不同步不会立刻导致故障,却会让日志时间线错乱、证书与令牌校验失败、分布式组件的顺序判定异常。巡检要确认三件事:同步服务是否真的在同步、当前偏差有多大、同步源是否可信。发现偏差时应先查同步源与网络,而不是直接手工改时间。
基本信息
| 检查对象 | 同步服务状态、当前偏差、同步源层级 |
|---|---|
| 常见实现 | NTP、Chrony、systemd-timesyncd、云平台时间服务 |
| 阈值设定 | 按业务分别设定,鉴权与日志关联要求更严 |
| 漂移来源 | 虚拟化时钟漂移、负载过高、同步源不可达 |
| 关联风险 | 证书校验、令牌有效期、日志关联、集群一致性 |
典型使用场景
- 日志关联:多主机排查要求时间线可比,偏差过大会让因果顺序看似颠倒
- 证书与令牌:偏差超出校验窗口会导致验证失败,表现为随机鉴权错误
- 集群一致性:分布式组件依赖时间判定顺序,偏差引发难以复现的问题
- 虚拟化环境:虚拟机时钟易漂移,需确认宿主与客户机都正确同步
- 同步源治理:巡检内部时间服务器的层级与可达性,避免全部依赖单一源
检查项与判读
| 检查项 | 判读依据 | 异常表现 |
|---|---|---|
| 服务状态 | 同步服务是否运行且已完成同步 | 未同步时偏差持续累积 |
| 当前偏差 | 本地时间与参考时间的差值 | 超出业务允许的窗口 |
| 同步源 | 层级与可达性 | 源不可达时逐步失去同步 |
| 漂移趋势 | 单位时间内的偏差变化 | 持续单向漂移指向时钟源问题 |
同步状态与偏差检查
同步状态与偏差检查
# 查看同步服务是否已同步以及当前偏差(Chrony 环境)
chronyc tracking
# 查看同步源层级与可达状态,确认没有只依赖单一来源
chronyc sources -v
# 通用方式:查看时间同步服务状态与最近一次同步结果
timedatectl status
# 非管理侧可做大致比对:本地时间与远端响应头中的时间
# date -u && curl -sI https://example.com | grep -i '^date:'时间偏差的影响具有选择性:日志关联通常容忍秒级偏差,证书与令牌校验的容忍窗口更窄,一致性协议对偏差最为敏感。因此阈值应按业务分别设定,而不是全局采用同一个数字。
不要用手工设置时间的方式掩盖同步故障。直接向前或向后调整系统时间会打乱日志顺序、影响依赖时间的定时任务,甚至造成任务重复执行或整段跳过;应优先排查同步源与网络。