查看之前笔记没有记录过ntp时间同步相关的笔记,今天我们再重新温习下目前主流的时间同步配置和相关配置的软件
目前同步时间主要使用chrony,之前一直是使用ntpd server/client来做,使用chrony对比之前的方案有以下几个优点
1.时间同步的速度比ntpd更快
2.chrony很好的处理了同步延迟以及网络延迟
3.即使出现网络降级,chrony仍然能正常工作
4.本地机器可以作为时间服务器,其他机器从这台服务器上同步时间
我们本地的现状是一台节点192.168.1.72作为内网时间服务器源,其他节点连接此节点进行时间同步,同时我们192.168.1.72这个节点可以连接外网,其他节点不能连接外网,也会从外网时间源服务器校准时间。
我们本地集群信息如下
192.168.1.72 master1 #内部时间服务器源 192.168.1.73 node1 #普通节点
我们接着来看看具体的安装配置,安装前需要注意chrony和其他时间同步工具有冲突,建议如果要安装这个先卸载其他时间同步工具
首先在192.168.1.72节点进行软件的安装
yum install -y chrony libsepol policycoreutils-python
然后他会自动创建systemctl服务,我们可以使用系统服务管理的方法进行管理
systemctl start chronyd #启动 systemctl stop chronyd #停止 systemctl restart chronyd #重启 systemctl status chronyd #状态
设置开机启动
systemctl enable chronyd systemctl daemon-reload
接着我们进行服务端的配置
mv /etc/chrony.conf /etc/chrony.conf_bak cat /etc/chrony.conf_bak | grep -ivE "^$|#" >/etc/chrony.conf
编辑/etc/chrony.conf文件,添加允许客户通过的地址和服务器同步时间,这里其实就是服务器本机的IP地址,同时修改server地址为时间服务IP地址
cat /etc/chrony.conf server 0.centos.pool.ntp.org iburst server 1.centos.pool.ntp.org iburst server 2.centos.pool.ntp.org iburst server 3.centos.pool.ntp.org iburst driftfile /var/lib/chrony/drift makestep 1.0 3 rtcsync logdir /var/log/chrony allow 192.168.1.0/24
上述配置一些说明
server 外部的时间同步服务器,为本地时间同步服务器提供时钟源 driftfile 记录系统时钟获得/丢失时间的速率至drift文件中 makestep 如果系统时钟由于某种原因与启动后的服务器时间相差甚远,允许chronyd通过步进而不是回转来快速纠正它 rtcsync 启用RTC(实时时钟)的内核同步 logdir 指定存放日志文件的目录 allow 只允许某个IP或者网段的客户端进行时间同步
上述配置好以后重启下chronyd服务
systemctl restart chronyd
可以使用以下命令查看时间同步源
chronyc sources -v
查看时间同步源状态的命令如下
chronyc sourcestats -v
接着我们配置客户端,我们登录192.168.1.73节点操作
客户端是通过我们上面自建的时间服务器来同步时间
首先客户端也是需要安装chrony
yum install -y chrony
接着也是和时间服务器一样配置/etc/chrony.conf文件,清空并写入以下内容
cat >/etc/chrony.conf<<EOF server 192.168.1.72 iburst driftfile /var/lib/chrony/drift makestep 1.0 3 rtcsync logdir /var/log/chrony EOF
接着重启chronyd服务
systemctl restart chronyd
接着在客户端节点执行以下命令查看时间同步源和状态
chronyc sources -v chronyc sourcestats -v
如果查看源状态Reacch一栏是0的话需要检查网络联通性,如果是开启了防火墙可以添加端口的访问,使用的是udp协议
firewall-cmd --permanent --add-port=123/udp #如果需要删除可以使用以下命令 firewall-cmd --permanent --remove-port=123/udp #重新载入配置 firewall-cmd --reload
在时间服务器端可以使用命令查看客户端连接情况
chronyc clients