一、为什么服务器时间必须准
日志时间错乱会导致排障无从下手,证书校验失败导致 HTTPS 告警,数据库主从复制报错,定时任务在错误的时间点执行。IDC 机房服务器时间同步是上线前必须做的基础项。
二、NTP 与 Chrony 怎么选
传统方案是 ntpd,长时间运行后时钟漂移会被平滑校正,不会出现时间跳变。Chrony 是新一代实现,同步速度快(冷启动几十秒内完成)、对网络抖动容忍度高、支持本地时钟作为备用源,CentOS 8 / Ubuntu 20.04+ 默认自带。新机器建议直接用 Chrony。
三、Chrony 安装与配置实战
# CentOS / RHELyum install -y chronysystemctl enable --now chronyd# Ubuntu / Debianapt install -y chronysystemctl enable --now chrony
配置文件 /etc/chrony.conf 核心项:
# 上游时间服务器,IDC 环境建议用内网 NTP 源或就近公网源server ntp.aliyun.com iburstserver ntp1.aliyun.com iburstserver ntp.tencent.com iburst# 允许本机作为内网其他机器的 NTP 服务器allow 10.0.0.0/8# 即使连不上外网,也用本地时钟兜底local stratum 10# 日志与漂移文件driftfile /var/lib/chrony/driftlogdir /var/log/chrony
改完配置重启并验证:
systemctl restart chronyd# 查看同步状态:^* 表示已同步chronyc sources -v# 查看时间偏移,正常应在几十毫秒以内chronyc tracking
四、ntpd 老机器迁移要点
CentOS 7 默认 ntpd,配置 /etc/ntp.conf 同样写 server 行,重启后 ntpq -p 查看同步。注意 ntpd 对时间偏差超过 1000 秒的机器默认拒绝校正,需要先手动对时:
# 停掉服务后强制对时systemctl stop ntpdntpdate -u ntp.aliyun.comsystemctl start ntpd
五、生产环境常见坑
- 云主机时间被宿主机强制校准:阿里云/腾讯云默认开启时钟源,/etc/chrony.conf 里会注入内网 NTP 源,不要删掉它,否则漂移反而变大。
- 防火墙挡了 UDP 123:NTP 走 UDP 123 端口,机房安全组或 iptables 忘记放行会导致同步失败,排查时先
chronyc sources -v看是否都是^?不可达。 - 时区与 UTC 混淆:同步只解决"走时准",不解决"显示对"。记得
timedatectl set-timezone Asia/Shanghai,并用timedatectl确认 Local time 和 Universal time 都正常。 - 虚拟机漂移严重:KVM/VMware 虚机建议开启时钟虚拟化特性(如 KVM 的 kvm-clock),并缩短同步间隔。
- 内网机器没有外网权限:搭一台内网 NTP 服务器,其他机器全部指向它,同时内网源要加 iburst 参数加快初始同步。
六、监控与巡检建议
把时间偏差纳入监控:Zabbix 采集系统时间偏移量,超过 500ms 告警;每周巡检一次 chronyc tracking,确认 System time 偏差在正常范围。数据库集群、日志采集链路对时间一致性要求最高,建议单独盯。
评论