Linux集群配置ntp时间同步服务

 

集群中时间不同步有可能会让应用程序运行混乱,造成不可预知的问题,当时间差别过大时就会挂掉,所以在服务器集群中,ntp服务,应该作为一种基础的服务,以下在演示在CentOS 7.2集群上配置ntp服务的过程。

1.安装ntp包 (时间服务器、客户机都要安装)

首先检查系统中是否安装ntp包: rpm -q ntp

然后,执行命令在线安装ntp: yum -y install ntp 

安装成功之后,再次执行 rpm -q ntp 可以看到对应的包:

这个时候可以使用命令查看ntp是否设置为开启启动状态:

systemctl is-enabled ntpd

可以看到默认是disable禁用开机启动的

现在设置开机启动执行: chkconfig ntpd on 

                                 或者systemctl enable ntpd

设置成功后,ntp服务并不能立即启动,而是在下次重启之后启动,所以现在手动启动ntp:

systemctl start ntpd.service 

启动之后,执行: netstat -an | grep 123  可以看到ntp服务的123端口已经使用:

执行:

ps -ef | grep ntpd  #可以看到ntp进程也已经启动

默认情况下ntp是从外网时间服务器来更新时间的,在集群中使用只要保证集群中所有的服务器时间一致即可,所以先配置其中一台服务器为时间服务器,其他服务器相对来说为这台时间服务器的客户端,从时间服务器上获取时间数据,从而避免联网,可用性更高。

2.配置时间服务器

时间服务器的IP:120.78.59.103

打开ntp配置文件,找到server指定时间服务器的位置,这些条都注释掉;然后添加下面2行固定配置:

vim /etc/ntp.conf
server 127.127.1.0
fudge 127.127.1.0 stratum 10

然后在restrict指定的两行下面追加一行: 

restrict 172.10.254.110 mask 255.255.252.0 nomodify notrap 

这个配置根据自己的网关和网段配置,只要能保证局域网主机通信就可以,比如这里子网掩码为255.255.252.0那么网段配置192.168.0.0也可以,只是通信的范围不太一样,总之这个配置就是授权局域网内能从本地同步时间的主机范围

配置好之后,保存并退出,执行 systemctl restart ntpd.service  重启ntp服务即可

3.客户机配置

同样执行上面的一些命令对ntp进行安装、启动、自启配置、状态查看等操作,配置文件依然是:/etc/ntp.conf,打开进行如下配置:

同样注释默认的server服务器,添加一行指定时间服务器位置: server 120.78.59.103 因为上面时间服务器地址是120.78.59.103

配置好之后,保存,重启ntp服务即可

所有客户端都进行以上配置,都启动之后,集群会自动定期进行服务的同步,这样集群的时间就保持一致了

另外如果想要手动同步某一台机器的时间,那么可以依次执行下面命令实现:

systemctl stop ntpd  # 先停止服务,否则ntp socket会被占用
ntpdate 192.168.0.157  # 手动执行同步
systemctl start ntpd  # 继续启动服务

同步时,会看到如下结果表示同步成功:(如失败,请关闭防火墙或者打开123端口 ,开启端口:firewall-cmd --zone=public --add-port=123/tcp --permanent,: firewall-cmd --reload 重新载入配置,关闭防火墙: systemctl stop firewalld.service  )

4.设置自动同步更新时间的脚本

 定时执行常用命令

#crontab -l 定时任务列表
#crontab -e 编辑定时任务
#/sbin/service crond start //启动服务
#/sbin/service crond stop //关闭服务
#/sbin/service crond restart //重启服务
#/sbin/service crond reload //重新载入配置

脚本文件需要注意的地方 
1.脚本中涉及文件路径时写全局路径。 
2.脚本执行要用到php或其他环境变量时,通过source命令引入环境变量,(需要注意)如: 
在脚本文件写入

#!/bin/bash
source /etc/profile
..写你的脚本命令..

 

以上是参考知识,下面我们来编写自动同步时间脚本,结果输出到日志文件/root/ntp.log中

执行 crontab -e  插入以下命令:
*/1 * * * * source /etc/profile&&ntpdate 120.78.59.103 >> /root/ntp.log   #每分钟执行在全局变量命令并输出到ntp.log文件中
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
将计划任务设为自动,默认是启动的【可选】 
chkconfig crond on
# 启动计划任务服务 
service crond restart

 查看日志文件,配置成功。

 systemctl stop ntpd.service   本机去同步服务器

 systemctl start ntpd.service   下一台客户机来同步本机

 

转载于:https://www.cnblogs.com/killall007/p/8527062.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值