centos 8.x系統配置chrony時間同步服務


    redhat/centos 7.x默認使用的時間同步服務為ntp服務,但是從redhat/centos 8開始在官方的倉庫中移除了ntp軟件,換成默認的chrony進行時間同步的服務,雖然也可以通過添加第三方的源安裝ntp,但是畢竟還是使用官方推薦的更好一些,使用和ntp基本上一樣,個人感覺比ntp還更簡單,下面簡單的敘述一下配置過程. 

    默認centos8安裝系統后已經存在chrony的軟件包了,可以通過 rpm -q chrony 確認是否存在,如果不存在使用yum安裝即可: yum install chrony 

    chrony本身既可以作為客戶端向其他時間服務器同步時間又可以提供時間同步的服務,也就是說同時作為客戶端和服務端,配置文件統一都是:/etc/chrony.conf,通常在一個集群中,總會有服務端和客戶端的區分,下面來看一下具體的配置:

    1. 服務端配置

    編輯配置文件/etc/chrony.conf,首先可以看到有個pool的配置如下:

    

    這個表示要請求的時間服務器,這里服務端可以向互聯網的公共服務器請求同步時間,然后其他集群內服務器可以向這台服務器同步時間,這樣集群內的時間就一致了,所以這里保持默認即可,也可以換成比如阿里雲的ntp服務器;需要注意的是這並不是1個時間服務器,而是本地請求這個服務會返回一些可用的列表,然后本地程序選擇列表中的某個時間服務器進行同步,這個待會可以查看資源看到具體的列表. 

    然后就是要打開allow配置,設置允許請求的服務器網段,比如這里配置如下:

    

    這樣表示允許172.16.0.0網段的所有機器訪問,即172.16.0.x的ip都可以向當前服務器請求同步,具體根據實際的集群進行配置.

 

    就以上這兩條,ntp服務端就配置完了,沒錯,就是這么簡單!

 

    2. 客戶端配置

    同樣編輯配置文件/etc/chrony.conf,這個更簡單,直接把pool這里改成上面的服務端節點就可以:

    

    如果hosts中機器都配置了,那這里寫主機名也可以. 

 

    最后服務端和客戶端都要啟動服務: systemctl start chronyd ,查看服務狀態: systemctl status chronyd ,狀態中可以看到同步的記錄,服務啟動后查看服務器當前時間一般就能看出來都是同步的了

    設置服務開機自動啟動: systemctl enable chronyd 

    chronyd的服務端口和NTP一樣是udp的123端口,使用 netstat -an | grep 123 或 ss -a | grep 123 都可以看到端口監聽的情況

    

    之前我的疏忽將端口搞成323了,323是綁定回環網卡用於chronyc監視操作使用的默認端口,而非服務端口,這個配置可以支持通過網絡運行chronyc客戶端命令,比如: chronyc -h 127.0.0.1 -p 323 sources -v ,默認本地使用chronyc走的是unix sock。非常感謝網友@Enke指出錯誤~

    然后可以使用命令: chronyc sources -v 查看當前的同步源,比如剛才的服務端可以看到多個源:

    

    其他客戶端就只有1個源如下:

    

    可以使用命令 chronyc sourcestats -v 查看當前的同步狀態

    

    最后還可以使用命令: chronyc -a makestep 手動同步一次時間,返回200 OK表示同步成功;使用 chronyc tracking 可以顯示系統時間信息;直接輸入chronyc可以進入交互式界面進行相關的操作,具體可以輸入help查看對應的幫助. 

    另外還有一點需要說一下就是centos中的工具timedatectl 里面也有個ntp service,開啟時狀態為active:

    

    這里需要關閉才可以手動修改本機時間,需要注意的就是這個工具不做任何時間同步的具體操作而是依賴系統的服務是什么,比如系統使用了ntp那么這里就依賴ntp的配置,系統使用了chrony這里就是chrony的配置,而這個timedatectl就是做了一層包裝,后端的服務還是ntp/chrony這些組件. 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM