【chrony】CentOS7.2 上chrony的安装与配置

【chrony】CentOS7.2 上chrony的安装与配置,第1张

NTP:Network Time Protocol 网络时间协议

Chrony 应用本身已经有几年了,其是是网络时间协议的 (NTP) 的另一种实现。

Chrony可以同时做为ntp服务的客户端和服务端

一直以来众多发行版里标配的都是ntpd对时服务,自rhel7/centos7 起,Chrony做为了发行版里的标配服务,不过老的ntpd服务依旧在rhel7/centos7里可以找到 。

Chrony有两个核心组件:

chronyd:是守护进程,主要用于调整内核中运行的系统时间和时间服务器同步。它确定计算机增减时间的比率,并对此进行调整补偿。

chronyc:提供一个用户界面,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的计算机上工作,也可以在一台不同的远程计算机上工作。

chrony用来同步时间,来代替ntp服务,优点是很精巧的时间同步工具,更快响应时钟变化,在应对延时提供更好的稳定性能,不会出现时间空白,跨越互联网同步时间只需要几毫秒。

操作系统: CentOS7.x

chronyServer  192.168.1.106

chronyClient  192.168.1.100

在chronyServer 和chronyClient 服务器:

# yum -y install chrony

# rpm -ql chrony

开启防火墙

#  firewall-cmd --add-service=ntp  --permanent

# firewall-cmd --reload

关闭selinux

# setenforce 0

# sed -i 's/^SELINUX=.*/SELINUX=permissive/g'  /etc/selinux/config

在chronyServer服务器:

# vim /etc/chrony.conf

#########################

server pool.ntp.org iburst prefer

server 192.168.1.106 iburst

driftfile /var/lib/chrony/drift

makestep 1.0 3

rtcsync

allow 192.168.1.0/24

local stratum 10

logdir /var/log/chrony

bindaddress 192.168.1.106

port 123

###############################

# systemctl start chronyd

# systemctl enable chronyd

#  systemctl status  chronyd

查看服务端绑定的IP和端口监听

# ss  -uan 

chronyd默认监听两个端口: 123/udp   323/udp

123/udp  ,是供客户端通讯连接用的,安全起见,请绑定服务端socket的IP,而不是0.0.0.0

323/udp,供chronyc连接用,安全起见,默认绑定的本地socket的IP为 127.0.0.1

在chronyClient服务器:

# vim /etc/chrony.conf

################################

server 192.168.1.106 iburst

driftfile /var/lib/chrony/drift

makestep 1.0 3

rtcsync

logdir /var/log/chrony

bindacqaddress  192.168.1.100

acquisitionport  1234

#######################################

# systemctl start chronyd

# systemctl enable chronyd

#  systemctl status  chronyd

# ss -uan

注意:chrony作为客户端是采用随机的udp端口与服务端进行通讯的,但是我们可以绑定客户端socket的的IP和端口,以便于相应的防火墙管理控制,,本客户端,我们配置的与服务端通讯的端口为 1234。

#  watch chronyc tracking

Chrony Introduction

https://chrony.tuxfamily.org/

https://wiki.archlinux.org/index.php/Chrony

chrony.conf(5) Manual Page

https://chrony.tuxfamily.org/doc/3.4/chrony.conf.html

CentOS / RHEL 7 : Chrony V/s NTP (Differences Between ntpd and chronyd)

https://www.thegeekdiary.com/centos-rhel-7-chrony-vs-ntp-differences-between-ntpd-and-chronyd/

CHAPTER 17. CONFIGURING NTP USING THE CHRONY SUITE

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system_administrators_guide/ch-configuring_ntp_using_the_chrony_suite

CentOS 7.x中正确设置时间与时钟服务器同步

https://linux.cn/article-4764-1.html

https://www.jianshu.com/p/a8cc55c894e9?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

chronyd Can't synchronise: no majority

https://forums.fedoraforum.org/showthread.php?298929-Automatic-time-set

CentOS / RHEL 7 : How to sync chrony to local clock

https://www.thegeekdiary.com/centos-rhel-7-chrony-how-to-sync-to-local-clock/

Manage NTP with Chrony

https://opensource.com/article/18/12/manage-ntp-chrony

Chrony:一个类 Unix 系统上 NTP 客户端和服务器替代品

https://linux.cn/article-10250-1.html

How to Install and Use Chrony in Linux

https://www.tecmint.com/install-chrony-in-centos-ubuntu-linux/

一般会默认安装 chrony 软件包

[root@kube-master-5 ~]# rpm -qa | grep chrony

chrony-3.4-1.el7.x86_64

设置开机启动并查看状态

systemctl enable chronyd.service

systemctlstartchronyd.service

systemctl status chronyd.service

服务端和客户端chrony配置

1. 服务端配置

配置文件修改vi /etc/chrony.conf   a、修改第22行,Allow NTP client access from local network,配置允许访问的客户端列表,支持CIDR,例如:allow 192.168/16

         b、修改第29行设置同步,Serve time even if not synchronized to any NTP server.,打开注释即可,即:

local stratum 10

重启下服务端chrony服务,使用systemctl restart chronyd.service重启即可。

2、客户端配置

配置文件修改vim  /etc/chrony.conf   a、修改server即可,删掉其他的,添加要同步时间的源服务器ip,格式如下:

server x.x.x.x iburst

重启下客户端chrony服务,使用systemctl restart chronyd.service重启即可。

客户端使用chronyc sources -v命令完成同步即可

查看同步状态

命令行模式查看时间同步源

chronyc sources-v

查看时间同步源状态

chronyc sourcestats-v

timedatectl status

Local time: Thu2020-10-2911:47:42 CST

Universal time: Thu2020-10-2903:47:42 UTC

RTC time: Thu2020-10-2903:47:43

Time zone: Asia/Shanghai (CST,+0800)

NTP enabled:yes

NTP synchronized:yes

RTCinlocal TZ: no

     DST active: n/a

### NTP synchronized 为yes 代表已经同步

查看chrony是否启动

systemctl status chronyd |grepActive

查看配置文件中配置的时间同步器

cat/etc/chrony.conf |grepserver

手动进行同步

chronyc -a makestep

国内几个好的时间同步服务器

server ntp.ntsc.ac.cn prefer

server ntp1.aliyun.com

1.chronyc sources

查看到的同步源 以及字段解析

[root@kube-compute-node-11 ~]# chronyc sources

210Number of sources=4

MS Name/IP address         Stratum Poll Reach LastRx Last sample

===============================================================================

^?120.25.115.20060-+0ns[+0ns]+/-    0ns

^* time.cloudflare.com361710+14ms[+64ms]+/-  169ms

^- amy.chl.la26179+102ms[+102ms]+/-  311ms

^- ntp5.flashdance.cx26179-79ms[-79ms]+/-  224ms

这里总共输出8列信息,分别对应含义如下:

列名含义具体说明

M表示授时时钟源^表示服务器,= 表示二级时钟源 ,#表示本地连接的参考时钟

S指示源的状态*当前同步的源,+表示其他可接受的源,?表示连接丢失的源,x表示一个认为是falseticker 的时钟(即它的时间与大多数其他来源不一致),~表示其时间似乎具有太多可变性的来源

Name/IP address表示源的名称或IP地址,或者参考时钟的refid值无

Stratum表示源的层级层级1表示本地连接的参考时钟,第2层表示通过第1层级计算机的时钟实现同步,依此类推。

Poll表示源轮询的频率以秒为单位,值是基数2的对数,例如值6表示每64秒进行一次测量,chronyd会根据当时的情况自动改变轮询频率

Reach表示源的可达性的锁存值(八进制数值)该锁存值有8位,并在当接收或丢失一次时进行一次更新,值377表示最后八次传输都收到了有效的回复

LastRx表示从源收到最近的一次的时间通常是几秒钟,字母m,h,d或y分别表示分钟,小时,天或年,值10年表示从未从该来源收到时间同步信息

Last sample表示本地时钟与上次测量时源的偏移量方括号中的数字表示实际测量的偏移值,这可以以ns(表示纳秒),us(表示微秒),ms(表示毫秒)或s(表示秒)为后缀;方括号左侧的数字表示原始测量值,这个值是经过调整以允许应用于本地时钟的任何偏差;方括号右侧表示偏差值,+/-指示器后面的数字表示测量中的误差范围,+偏移表示本地时钟快速来源

2.chronyc sourcestats

[root@kube-compute-node-11 ~]# chronyc sourcestats -v

210 Number of sources = 4

                            .- Number of sample points in measurement set.

                            /    .- Number of residual runs with same sign.

                          |    /    .- Length of measurement set (time).

                          |  |    /      .- Est. clock freq error (ppm).

                          |  |  |      /          .- Est. error in freq.

                          |  |  |    |          /        .- Est. offset.

                          |  |  |    |          |          |  On the -.

                          |  |  |    |          |          |  samples. \

                          |  |  |    |          |          |            |

Name/IP Address            NP  NR  Span  Frequency  Freq Skew  Offset  Std Dev

==============================================================================

120.25.115.20              6  4  324  +221.821    805.359    +20ms    21ms

time.cloudflare.com        10  5  396    +27.605    261.826    -34ms    24ms

amy.chl.la                10  8  399    +66.182    289.209    -19ms    23ms

ntp5.flashdance.cx        10  5  397    +95.528    223.986    -62ms    16ms

列名含义

Name/IP address表示源的名称或IP地址,或者参考时钟的refid值

NP这是当前为服务器保留的采样点数,通过这些点执行线性回归方法来估算出偏移值

NR这是在最后一次回归之后具有相同符号的偏差值的运行次数。如果此数字相对于样本数量开始变得太小,则表明直线不再适合数据。如果运行次数太少,则chronyd丢弃旧样本并重新运行回归,直到运行次数变得可接受为止

Span这是最旧和最新样本之间的间隔。如果未显示任何单位,则该值以秒为单位。在该示例中,间隔为46分钟

Frequency这是服务器的估算偏差值的频率,单位为百万分之一。在这种情况下,计算机的时钟估计相对于服务器以10 ** 9的速度运行1个部分

Freq Skew这是Freq的估计误差范围(再次以百万分率计)

Offset这是源的估计偏移量

Std Dev这是估计的样本标准偏差

Centos 8不在直接使用ntp,而是使用chrony作为时间同步,chrony既可以当服务器端广播时间,又可以作为客户端同步时间

安装

sudo dnf install chrony -y

sudo yum install chrony -y

Centos8使用firewalld服务对防火墙进行管理。放行ntp服务(123/udp)

firewall-cmd --add-service=ntp --permanent &&firewall-cmd --reload

作为服务器端

配置chrony服务端

sudo vim /etc/chrony.conf

删除配置自带的NTP服务器。换成国内阿里云的NTP服务器地址。

添加上游NTP服务器

server time1.aliyun.com iburst   

server time2.aliyun.com iburst

server time3.aliyun.com iburst

允许 192.168.1.0/24 内的客户端通过这台服务器获取时间

allow 192.168.1.0/24

配置无误后,重启chrony服务,并配置开机自启动:

systemctl restart chronyd.service

systemctl enable chronyd.service

使用ss -tlunp | grep chrony或者 lsof -i:123 命令 检查chrony服务使用的123/udp端口是否启动成功

作为客户端

同样安装,然后修改客户端chrony配置文件

sudo vim /etc/chrony.conf

# Use public servers from the pool.ntp.org project.

# Please consider joining the pool (http://www.pool.ntp.org/join.html).

# pool 2.centos.pool.ntp.org iburst

#添加NTP服务器

server time1.aliyun.com iburst   

server time2.aliyun.com iburst

server time3.aliyun.com iburst

如果有自建的chrony客户端也可以自行配置

server 192.168.1.30 iburst

重启chrony客户端服务,重启chrony服务,并配置开机自启动:

systemctl restart chronyd.service &&systemctl enable chronyd.service --now

查看同步状态

chronyc sources -v


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/361943.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-11
下一篇2023-05-11

发表评论

登录后才能评论

评论列表(0条)

    保存