事情本身不复杂,线索都在日志里。监控显示时间偏差越来越大,同步源列表里所有服务器前面都是问号,系统时间靠本地时钟一点点漂。
把日志和配置对完,能解释这个现象的基本就这几处。授时用的端口被安全组或者防火墙挡住。还有一种是配置的授时服务器不可达或者已经停服。
另外,虚拟机的时钟源受宿主机影响。
第一件事是看同步源状态
chronyc sources -v
接着确认端口是否放行
ss -lun | grep 123
再往下换一组可用授时源
grep -E '^(server|pool)' /etc/chrony.conf
强制立即校正一次
chronyc makestep
同样的操作我在测试机上先走了一遍,线上只做验证过的部分。
恢复的判定其实很直接。源列表前面变成正常标记,时间偏差收敛到毫秒级并保持稳定。
补一句。云主机优先用厂商内网授时地址,走公网容易被限速;时间偏差大时证书校验也会跟着出问题。线上能稳定复现的问题都不算难,难的是只在大流量下才出现的那种。