【支持Ubuntu22】Ambari3.0.0+Bigtop3.2.0——Step4—时间同步(Chrony)
注意事项
本文基于 Ubuntu 22.04 LTS 适配,部分包名和配置与 RedHat/Rocky/CentOS 有差异,请勿直接复用其它系统命令。如遇疑难欢迎在
VX 或 QQ 群与作者交流。
附录:完整内容和源代码下载请参照
https://doc.janettr.com/
1. 为什么要做时间同步?
- 保证各节点日志时间一致,方便排查分析
- 防止调度与数据库事务异常
- 避免安全协议(如 Kerberos)因时间漂移而失效
Ubuntu 22.04 默认推荐 Chrony(取代 ntpd),同步快,资源占用低,对云主机/虚拟化友好。
2. 推荐集群时间同步架构
角色 | IP | 说明 |
---|---|---|
Chrony 服务器(主) | 192.168.3.1 | 直接同步公网时间源 |
Chrony 客户端(从) | 192.168.3.2 | 仅同步 192.168.3.1 |
Chrony 客户端(从) | 192.168.3.3 | 仅同步 192.168.3.1 |
- 推荐1 台主节点连公网,其他所有节点仅同步主节点,提升一致性。
3. 安装 Chrony(所有节点)
sudo apt update
sudo apt install -y chrony
与 RedHat/CentOS 完全不同,请勿使用
yum
、dnf
、rpm
等命令,Ubuntu 必须用apt
体系。
4. Chrony 服务器端配置(以 192.168.3.1 为例)
4.1 编辑配置文件
sudo vim /etc/chrony/chrony.conf
配置文件路径与 RedHat 系严重不同!
Ubuntu 是/etc/chrony/chrony.conf
,RedHat/CentOS 多为/etc/chrony.conf
或/etc/chrony/chronyd.conf
。
4.2 推荐配置内容
server ntp.ntsc.ac.cn iburst
server ntp1.aliyun.com iburst
server ntp2.aliyun.com iburst
server ntp3.aliyun.com iburstallow 192.168.3.0/24local stratum 10driftfile /var/lib/chrony/chrony.drift
logdir /var/log/chrony
allow 192.168.3.0/24
必须加,客户端才能访问本机时间服务,当然写0.0.0.0/0 也行
4.3 重启服务
sudo systemctl restart chrony
sudo systemctl enable chrony
Ubuntu 的服务名称为 chrony,不是 chronyd,启动/管理命令和 RedHat/CentOS 有区别。
4.4 验证主节点同步状态
chronyc tracking
-
正常输出应包含
Leap status : Normal
。 -
验证同步源:
chronyc sources -v
5. Chrony 客户端配置(192.168.3.2/3.3等所有从节点)
5.1 编辑配置文件
sudo vim /etc/chrony/chrony.conf
配置文件路径与 RedHat/CentOS 不一样,Ubuntu 必须是
/etc/chrony/chrony.conf
。
5.2 推荐配置内容
注释掉所有其他 server 或 pool,只保留如下内容:
server 192.168.3.1 iburst
driftfile /var/lib/chrony/chrony.drift
logdir /var/log/chrony
5.3 重启服务
sudo systemctl restart chrony
sudo systemctl enable chrony
5.4 客户端验证同步状态
chronyc sources -v
- 输出中
^* 192.168.3.1
说明同步正常。
6. 常见问题与 Ubuntu 专属注意点
- Ubuntu 的 chrony 服务名称为 chrony(不是 chronyd)
- 所有安装、重启、配置命令都用
apt
和systemctl ... chrony
- 配置文件路径为
/etc/chrony/chrony.conf