Linux基礎軟件-ntp

作者簡介:在簡歷上沒有標注精通的運維工程師。請點擊上方的藍色《運維小路》關注我,下面的思維導圖展示了預計更新的內容和當前進度(不定時更新)。

Linux基礎軟件-ntplinux進階部分細分為多個小部分,我們剛剛完成了Linux日常運維的講解。這些內容屬于系統自帶的功能,但Linux作為服務器操作系統,需要安裝和運行軟件來滿足業務需求。本章將從以下幾個方面介紹Linux基礎軟件:

Linux基礎軟件-軟件安裝

Linux基礎軟件-yum(一)

Linux基礎軟件-yum(二)

Linux基礎軟件-ntp(本章節)

Linux基礎軟件-chrony

Linux基礎軟件-dns(一)

Linux基礎軟件-dns(二)

Linux基礎軟件-nfs

Linux基礎軟件-lvm

Linux基礎軟件-Selinux&庫文件&swap

我們知道,每臺電腦都有本地時間,但由于CPU的物理特性,時間會逐漸變慢。如果我們管理著大量服務器,而它們的服務器時間不一致,這將給業務帶來問題。現在許多業務對時間非常敏感,因此我們必須確保服務器時間的一致性。

什么是NTP?NTP,全稱為Network Time Protocol(網絡時間協議),用于同步網絡中各個計算機的時鐘,使得網絡中的計算機可以保持一致的時間。它能夠提供精確到亞秒級的時間同步,并在計算機之間自動進行時間校對,以消除時鐘漂移。

NTP常用于銀行、股票交易、航空、電信等需要精確時間的領域,也是網絡服務如電子郵件、數據庫等應用的重要組成部分。

為什么要進行NTP配置?進行NTP配置是為了確保網絡中的所有設備能夠同步到準確的時間,這對于許多應用和服務至關重要。

數據一致性:許多系統和應用依賴時間戳來跟蹤事件或數據的更改。如果時間不一致,可能會導致數據錯誤或沖突。日志分析和故障排查:如果網絡中的設備時間不一致,分析日志和故障排查會變得復雜和困難,因為無法準確知道事件發生的順序。安全性:許多安全協議和技術(如Kerberos或ssl)都依賴于準確的時間。如果時間不準確,可能會引發安全問題,或者導致服務無法正常運行。高精度應用:一些高精度應用(如科學研究、金融交易等)需要非常準確的時間同步。法規合規:某些行業(如醫療、金融等)有法規要求對事件的時間進行精確記錄。配置NTP

1.安裝ntp軟件

yum -y install ntp

2.配置ntp

#默認是centos官方的ntp服務器,可以根據需要更換 vi /etc/ntp.conf #啟動ntp systemctl start ntpd systemctl enable ntpd

3.檢查ntp同步狀態

號代表客戶端正常工作,剛啟動時需要稍等才能看到號。在正常情況下,該狀態查詢依賴于本地的ntpd服務,如果服務未啟動則會報錯。

Linux基礎軟件-ntpNTP說明

在未安裝ntp軟件包時,我們只能通過date命令來設置時間,但這種方法隨意性太強,不是很嚴謹。

通過yum安裝ntp包后,會提供兩個命令:一個是上圖用到的ntpq,主要用于ntpd狀態查詢;另一個是ntpdate,用于同步其他ntp服務器的時間。

[root@localhost ~]# ntpdate ntp.aliyun.com 29 Jul 23:12:25 ntpdate[1202]: adjust time server 203.107.6.88 offset 0.008099 sec

總結下來,安裝ntp軟件包后,我們有兩種方式可以同步時間:一種是使用ntpdate命令進行一次性同步,另一種是通過ntpd服務進行自動同步。

如果使用ntpdate進行同步,則需要配合前面講到的任務計劃(crontab),因為ntpdate執行的是一次性任務。而使用ntpd是以服務方式運行,自動進行時間同步。

NTP服務端

上面提到的ntpd和ntpdate實際上都是作為ntp客戶端使用的,但我們有許多服務器位于內網,無法連接公網,因此需要為這些內網服務器搭建一個內網的ntp服務器,作為服務端為下游其他機器提供ntp服務。

如果選擇作為ntp服務器的服務器可以連接公網,那么只需以服務方式啟動ntp服務即可作為ntp服務器。ntp服務是一個特殊服務,既可作為服務端,也可以作為客戶端。其他ntp客戶端機器只需將ntp.conf中的ntp服務器地址更改為我們選定的服務器即可。

[root@localhost ~]# ntpq -pn      remote           refid      st t when poll reach   delay   offset  jitter ============================================================================== *192.168.31.104  202.112.29.82    2 u    7   64    1    0.262  -16.569   0.161

如果選擇的ntp服務器沒有上網能力,則只能以自己的時間作為標準,向下游提供服務。

修改配置文件

server 127.127.1.0 iburst #注釋其他server,添加上面這樣,重啟服務 #這個配置就是以自己為標準時間

2.服務端檢查ntp服務狀態

[root@localhost ~]# ntpq -pn      remote           refid      st t when poll reach   delay   offset  jitter ============================================================================== *127.127.1.0     .LOCL.           5 l    2   64    1    0.000    0.000   0.000

3.客戶端檢查ntp服務狀態

[root@localhost ~]# ntpq -pn      remote           refid      st t when poll reach   delay   offset  jitter ============================================================================== *192.168.31.104  LOCAL(0)         6 u    2   64    1    0.275   -4.114   0.018

總結

ntp的使用非常簡單,但在超大規模環境下,要保證整個環境的穩定和可靠,仍有許多工作需要做。上述配置僅考慮驗證基本功能,并未考慮到時間誤差過大時會發生什么,ntp也沒有高可用性等問題。此外,ntpq -pn命令下的許多參數也沒有解釋其含義,有興趣的可以自行查閱。我本人也有多年維護某大廠私有云平臺ntp服務的經驗,如果有興趣可以與我交流。ntp服務不怕故障,但怕的是時間跳變。

? 版權聲明
THE END
喜歡就支持一下吧
點贊6 分享