在面对服务集群时,部署在不同的Linux服务器上的应用可能因为时间不一致,造成数据出问题。因此需要将多台服务器的时间同步成一致!
由于当前环境为内网环境,需要将其中的一台服务器设置成时间同步服务器(服务端),其他的服务器则为客户端。客户端的时间根据服务端时间进行同步。
1.首先安装ntp。
内网环境下只能去官方下载对应的包,上传至服务器,在进行安装!
官网地址:https://centos.pkgs.org/7/centos-x86_64/ntp-4.2.6p5-29.el7.centos.2.x86_64.rpm.html
访问该页面后,来到下方,往下滚动会看到下载的地方,如图2.
下载位置:将BinaryPackage对应的url复制,在新的浏览器窗口访问,自动下载!
下载好该安装包后上传至服务器上。然后进行安装
安装命令:rpm -ivh ntp-4.2.6p5-29.el7.centos.2.x86_64.rpm
执行安装命令后,出错;
发现缺少libopts.so.25()(64bit)和ntpdate = 4.2.6p5-29.el7.centos.2 此时,需要下载这两个安装依赖包,并上传至服务器上。
缺少的安装依赖包在刚刚官网访问的界面下方一点。点击对应的安装包名称,下载方法参照上方图片操作!
如果你安装时,还缺少什么 依赖包,可以在上方图片中查找。将刚刚缺少的包上传后,
上传后,再次将这些包安装,注意先将缺失的依赖包进行安装后,在安装ntpd
2.修改 /etc/ntpd.conf文件
在修改任何配置文件之前,建议先备份一份。命令: cp /etc/ntp.conf /etc/ntp_20220715_back.conf
然后执行 vi /etc/ntp.conf
上方红色部分是新增的内容。
restrict 127.18.132.0 mask 255.255.0.0 nomodify notrap
授权127.18.132.0 - 127.18.132.255 网段上的所有机器可以从这台机器上查询和同步时间
由于集群在局域网中,不使用其他互联网上的时间。所以需要将这四行注释
server 127.127.1.0
fudge 127.127.1.0 stratum 10
上方两行表示:当该节点丢失网络连接,依然可以采用本地时间作为时间服务器为集群中的其他节点提供时间同步
修改后退出保存。
3.为保证BIOS与系统时间同步,配置以下内容
vim /etc/sysconfig/ntpd
在内容中添加
SYNC_HWLOCK=yes
4.开放ntp默认端口123,设置UDP端口123的完全双向访问:
还需要对ntp的默认端口123进行放行,这个一定要配,除非你关了防火墙,否则会报错,no server suitable for synchronization found
iptables -I INPUT -p tcp --dport 123 -j ACCEPT
iptables -I INPUT -p udp --dport 123 -j ACCEPT
5.启动ntpd服务
执行service ntpd start 启动
并且设置成开机自启动 chkconfig ntpd on
以上均是在配置服务端,现在该配置客户端了。
在多个客户端服务器上设置定时任务,定时去向时间服务器进行同步时间
crontab -e
*/1 * * * * /usr/sbin/ntpdate 172.18.132.136
每分钟进行一次同步 ,上面的ip是指服务端的ip。
可以使用date 查看客户端的时间和服务端时间是否一致!
如果不一致,多等一会(最多一分钟),再看看。
如果还是不一致,那可能是该服务器未安装下方软件!