chrony时间同步服务

1.什么是时间同步

  • 将本地时间与互联网的时间服务器进行同步

2.为什么需要同步时间

  • 计算机本身用 “晶体振荡器” 这个电子原件的振荡频率来计算时间 但是受到环境的影响 主要是温度 振动的频率会受到影响
  • 各种服务需要精确的时间来记录软件及服务器的运行状态 例如zabbix服务器时间滞后 当服务出现问题后不能根据时间点进行判断
  • https的证书服务 时间不准确浏览器会有提示

3.linux时间同步的三种方法

假设服务器启动起来后,发现时间慢了24小时,那么他如何将自己的时间调整正确呢

  • 使用date命令(直接跳跃时间,跳跃的过程中造成部分文件出现空白段)
  • NTP时间服务(centos6):
    逻辑:让时间校对像手表一样波动的快一点,而不是像date命令直接跳跃过去:其他服务器一分钟60s,而ntp一分钟30s,来实现时间的校对;
    问题:为了赶上慢的24小时,可能需要消耗非常长的时间来进行校对;
  • Chrony时间服务:
    逻辑:Chrony是NTP的替代品,能更精确、更快的同步时钟,传统ntp需要几小时,而chrony仅需要数秒种或数毫秒即可完成时间同步;调整时间的速度就像波动表针的速度一样快;

4.chrony时间服务

4.1chrony介绍

  • chrony 是基于 ntp 协议的实现时间同步服务,它既可以当做服务端,也可以充当客户端;
    1、chrony 是 NTP 的替代品,能更精确的时间和更快的速度同步时钟;
    2、chrony 占用系统资源少,只有被唤起时才占用少部分CPU,chrony兼容ntpdate;
    3、chrony 允许本地网络其他主机像本地进行时间同步

4.2为何需要Chrony

所有服务器直接同步公网上的时间不就可以了吗,为何需要自己搭建一台时间服务器呢?
如果每台服务器都去同步公网时间服务器,且服务器较多,会带来如下问题:
1、造成延迟
2、浪费带宽
解决方法:搭建内网时间服务器,来同步公网时间,然后所有服务器来与这台服务器进行时间同步
1、减小服务器之间的误差,提升同步速度
2、减少网络带宽损耗

4.3安装chrony

[root@vpn60 ~]# yum install  chrony  -y
[root@vpn60 ~]# rpm -qc chrony
/etc/chrony.conf               #主配置文件
/etc/chrony.keys
/etc/logrotate.d/chrony
/etc/sysconfig/chronyd
  • 主配置文件:/etc/chrony.conf
  • 客户端程序:/usr/bin/chronyc
  • 服务端程序:/usr/sbin/chronyd

4.4配置chrony服务端

默认配置

[root@chrony ~]# 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
#如果系统时钟的偏移量大于1秒,则允许系统时钟在前三次更新中步进
makestep 1.0 3
#启用实时时钟(RTC)的内核同步
rtcsyn

#通过使用 hwtimestamp 指令启用硬件时间戳
#hwtimestamp *
#增加调整所需的可选择源的最小数量
#minsources 2
# 允许指定网络的主机同步时间,不指定就是允许所有,默
认不开启。
allow 192.168.0.0/16
# 默认情况下本地服务器无法同步互联网时间时,可能会出现不精确,所以会拒绝提供授时服务;
# 开启此选项,则表示允许接受不精确时间,继续为客户端提供授时服务;
local stratum 10
#指定包含 NTP 身份验证密钥的文件
#keyfile /etc/chrony.keys
#指定日志文件
logdir /var/log/chrony
#选择日志文件要记录的信息
log measurements statistics tracking

配置chrony服务端

  • 配置公网时间服务器
  • 配置允许同步的网段
  • 配置连接不上公网时间服务器 也继续提供时间同步服务
[root@jumpserver ~]# cat /etc/chrony.conf 
# These servers were defined in the installation:
server ntp1.aliyun.com iburst
server ntp2.aliyun.com iburst
server ntp3.aliyun.com iburst
server ntp5.aliyun.com iburst

# Allow NTP client access from local network.
allow 172.16.1.0/24

# Serve time even if not synchronized to a time source.
local stratum 10

重启服务systemctl restart chronyd

4.5配置client客户端

同步方式
1.客户端使用 ntpdate 或 chronyc 命令的方式进行手动同步

[root@chrony ~]# yum install ntpdate -y
[root@chrony ~]# ntpdate 172.16.1.62
# chronyc
[root@chrony ~]# chronyc -a makestep
200 OK

2.客户端使用 chrony 守护进程方式进行时间自动化同

[root@chrony ~]# yum install chrony -y
[root@chrony ~]# vim /etc/chrony.conf
# 指向至服务端
server 172.16.1.62 iburst
[root@chrony ~]# systemctl restart chronyd

3.查看时间同步是否正常

[root@chrony ~]# chronyc sources
210 Number of sources = 1
MS Name/IP address Stratum Poll
Reach LastRx Last sample
===========================================
====================================
^* 172.16.1.5 3 6
77 24 -926us[-2077us] +/- 19ms
[root@chrony ~]# chronyc sources -v

5.问题

配置好后 调整client的时间发现并没有同步server的时间

posted @ 2022-05-07 10:50  老夫聊发少年狂88  阅读(1347)  评论(1编辑  收藏  举报