centos7搭建NTP服务并实现机器间同步

1.前言

当管理集群服务器时,各个主机之间的时间统一是很有必要的,某些中间件也强依赖于系统的时间,因此研究了NTP服务的搭建。

2.安装NTP服务

2.1机器准备
机器名称 机器ip
授时机器 10.0.0.1
客户端1 10.0.0.2
客户端2 10.0.0.3
2.2各个机器安装NTP

一般机器都是未安装NTP的,所以直接用下面的命令安装
如果机器无法联网需要离线配置yum源参见 [https://www.jianshu.com/p/857e5e6b5db9](https://www.jianshu.com/p/857e5e6b5db9)

yum install -y ntp
2.3授时机器配置

编辑文件 /etc/ntp.conf 将下面的内容直接覆盖原内容记得修改为自己的ip段,或者将源文件备份新建文件

driftfile /var/lib/ntp/drift
restrict default kod nomodify notrap nopeer noquery
restrict -4 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict -6 ::1

## 此处为允许10.0.0网段的机器可以访问授时服务
restrict 10.0.0.0 mask 255.255.255.0 nomodify notr

## 由于机器禁止连接互联网因此将外部授时注释掉,直接从本地获取时间
# restrict time1.aliyun.com nomodify notrap noquery
# restrict ntp1.aliyun.com nomodify notrap noquery

## 表示从本机同步时间
server 127.127.1.0
fudge 127.127.1.0 stratum 8
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys

修改后重启ntp服务 systemctl restart ntpd.service

2.4客户端机器配置

直接编辑自动生成的配置文件 vim /ect/ntp.conf,直接将服务端地址更改为授时机器的ip即可

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 10.0.0.1 iburst

修改后重启ntp服务 systemctl restart ntpd.service

2.5检查配置是否成功

使用 ntpstat 命令来检查同步是否成功,成功提示如下:

synchronised to NTP server (10.0.0.1) at stratum 10 
   time correct to within 42 ms
   polling server every 1024 s

同步有一定延迟需要等几分钟,我的方法是重启后如果多次检查仍未同步时间,就再次重启ntp客户端,然后执行检查,一般几十秒内就同步成功了

2.6其他配置和指令

server 10.26.12.2 iburst minpoll 4 maxpoll 6
控制ntp的polling时间间隔,minpoll最小值(下限为4),maxpoll最大值(上线为17),两个值表示为2n次方,即最小是为16s,最大值为36小时。
watch ntpq -np 查看ntp的运行状态

image.png

  • remote 表示提供时间来源的服务器地址。

  • refid 表示提供时间来源的服务器的上层时间来源服务器地址。

  • st 表示stratum,即remote的层级。

  • t 表示类型 (u: unicast(单播) 或 manycast(选播) 客户端, b: broadcast(广播) 或 multicast(多播) 客户端, l: 本地时钟, s: 对称节点(用于备份), A: 选播服务器, B: 广播服务器, M: 多播服务器。

  • when 表示最后一次同步距离现在过去了多长时间 (默认单位为秒, “h”表示小时,“d”表示天)。

  • poll 表示同步的频率,根据rfc5905建议在 ntp版本4系列,这个值的范围在 4 (16秒) 至 17 (36小时) 之间(即2的指数次秒)。

  • reach 一个8位的左移移位寄存器值,用来测试能否和服务器连接,每成功连接一次它的值就会增加,以 8 进制显示。

  • delay 表示本地到remote的延迟,即建立通信往返所用的时间,单位是毫秒。

  • offset 表示本地与remote的时间偏移量,offset 越接近于0,本地与remote的时间越接近,单位为毫秒。

  • jitter 表示本地与remote同步的时间源的平均偏差(多个时间样本中的 offset 的偏差,单位是毫秒),这个数值的绝对值越小,主机的时间就越精确。

3.参考文章

centos7.6 实现ntp时间同步服务
ntp的基础知识
ntp的中级知识
【NTP】关于ntp配置详解

你可能感兴趣的:(centos7搭建NTP服务并实现机器间同步)