使用NTP配置时间同步
操作场景
为了保证时间误差在30秒以内,推荐使用NTP(Network Time Protocol)来自动同步各主机上的系统时间,使云数据库GaussDB管理平台(TPOPS)各服务器之间的时间保持正确和一致。可参考以下操作步骤进行配置。
操作步骤
通常使用系统自带的NTP服务可以同步时间。如果当前机器环境有稳定可靠的NTP服务器,则选它作为所有服务器的NTP源。
如果没有,则选固定的一台服务器,把它作为NTP源。
- 在每台机器上通过yum包管理器安装NTP。
yum install ntp ntpdate -y
- 配置ntp.conf文件,配置前做好备份。
【NTP服务器的搭建】
在NTP服务端/etc/ntp.conf文件的最后,添加如下内容,其中:
restrict 192.168.0.0 mask 255.255.0.0中:192.168.0.0需要替换为所配置NTP服务端IP地址对应的网段。
[root@* /]# vi /etc/ntp.conf restrict default ignore restrict 127.0.0.1 restrict 192.168.0.0 mask 255.255.0.0 driftfile /var/lib/ntp/drift pidfile /var/run/ntpd.pid #logfile /var/log/ntp.log # local clock server 127.127.1.0 fudge 127.127.1.0 stratum 10【NTP客户端的搭建】
在NTP客户端/etc/ntp.conf文件的最后,添加如下内容,其中:
- restrict 192.168.0.0 mask 255.255.0.0中:192.168.0.0需要替换为所配置NTP客户端IP地址对应的网段。
- server 192.168.*.* iburst minpoll 4 maxpoll 6中:192.168.*.*需要替换为上述所配置的NTP服务端的IP地址。
- fudge 192.168.*.* stratum 10中:192.168.*.*需要替换为上述所配置的NTP服务端的IP地址。
[root@* /]# vi /etc/ntp.conf restrict default [ignore] restrict 127.0.0.1 restrict 192.168.0.0 mask 255.255.0.0 driftfile /var/lib/ntp/drift pidfile /var/run/ntpd.pid #logfile /var/log/ntp.log # local clock server 192.168.*.* iburst minpoll 4 maxpoll 6 fudge 192.168.*.* stratum 10参数解释:
- restrict:用于指定IP地址的相关时间同步命令权限。
restrict [客户端IP] mask [netmask_IP] [parameter]
其中parameter包括ignore、nomodify、noquery、notrap和notrust等。
- ignore:默认指拒绝所有类型的NTP同步。
- nomodify:客户端不能更改服务端的时间参数,但是客户端可以通过服务端进行网络校时。
- notrust:客户端除非通过认证,否则该客户端来源将被视为不信任子网。
- noquery:不提供客户端的时间查询:用户端不能使用ntpq,ntpc等命令来查询NTP服务器。
- notrap:不提供trap远端登录:拒绝为匹配的主机提供模式6控制消息陷阱服务。陷阱服务是ntpdq控制消息协议的子系统,用于远程事件日志记录程序。
- server:用于指定上层NTP源服务器。
server [IP or hostname] [prefer]
如果没有上层NTP源服务器,可以设置为127.127.1.0,即本机作为NTP源服务器。
- 重启NTP同步服务。
systemctl restart ntpd
systemctl status ntpd
- 检查NTP同步状态。
ntpq -p
回显如下:remote refid st t when poll reach delay offset jitter ======================================================================== LOCAL(0) .LOCL. 10 l 589 64 0 0.000 0.000 0.000 *192.168.*.* 10.10.10.1 2 u 18 64 377 1.591 0.249 0.054其中:
- remote:表示使用的NTP服务器。
- *表示目前选择的NTP服务器。
- LOCAL表示本机。
- x表示已不再使用。
- -表示已不再使用。
- +良好的优先考虑的。
- #良好的但未使用的。
- refid:远程NTP服务器使用的更高一级NTP服务器。INIT表示还在获取。
- st:远程NTP服务器的Stratum(级别)。
- when:最后一次同步到现在的时间(默认为秒,h表示小时,d表示天)。
- poll:同步的频率,单位:秒。
- delay:从本机到远程NTP服务器的往返时间(单位毫秒)。
- offset:本机与远程NTP服务器的时间偏移量(单位毫秒)。
- jitter:本机与远程NTP服务器的时间偏移量平均偏差(单位毫秒)。
- remote:表示使用的NTP服务器。
- 最终检查方法。
在客户端与服务端分别使用如下命令查询,如服务端与客户端时间保持一致说明时钟源配置成功。
date
回显如下:
Thu Sep 14 02:03:11 UTC 2023 - (可选)手动同步方法。
如果时间总是有很大误差,可以使用以下命令手动订正时间。这个与自动同步服务是冲突的,需要先停掉NTP服务。
systemctl stop ntpd
ntpdate -u 192.168.*.*
回显如下:
18 Apr 14:54:20 ntpdate[108001]: adjust time server 192.168.*.* offset -0.000180 sec如果这个方法有效,则配置到系统的crontab下。
crontab -e
回显如下:
* * * * * root /sbin/ntpdate -u 192.168.*.* 2>&1 1>>/tmp/ntpupdate.log
浙公网安备 33010602011771号