
字段 | 含義 | 備注 |
remote前的符號 | *表示選取的參考時間 | *、+、- 和空白 |
remote | 響應這個請求的NTP服務器的名稱 | |
refid | NTP服務器使用的上一級ntp服務器 | |
st | remote遠程服務器的級別. 由於NTP是層型結構,有頂端的服務器,多層的Relay Server再到客戶端.所以服務器從高到低級別可以設定為1-16. 為了減緩負荷和網絡堵塞,原則上應該避免直接連接到級別為1的服務器的 | 層數,取值范圍:0-15。16表示不可達 |
t | 未知 | |
when | 上一次成功請求之后到現在的秒數 | 單位:秒 |
poll | 本地機和遠程服務器多少時間進行一次同步。 在一開始運行NTP的時候這個poll值會比較小,那樣和服務器同步的頻率也就增加了,可以盡快調整到正確的時間范圍,之后poll值會逐漸增大,同步的頻率也就會相應減小 | 單位:秒 |
reach | 這是一個八進制值,用來測試能否和服務器連接.每成功連接一次它的值就會增加 | 成功訪問ntp服務器次數,八進制 |
delay | 從本地機發送同步要求到ntp服務器的round trip time | 一次訪問耗時,rtt。單位:毫秒 |
offset | 主機通過NTP時鍾同步與所同步時間源的時間偏移量,單位為毫秒(ms)。offset越接近於0,主機和ntp服務器的時間越接近 | 時間偏差,單位:毫秒 |
jitter | 這是一個用來做統計的值. 它統計了在特定個連續的連接數里offset的分布情況. 簡單地說這個數值的絕對值越小,主機的時間就越精確 | 我理解為offst的平均值 |
三、node-exporter對時間同步的監控
node-exporter對時間同步監控有2個維度,一個是RTC時鍾與系統時鍾的同步監控;另外一個是NTP與系統時間的同步監控。官網有詳細介紹:https://github.com/prometheus/node_exporter/blob/master/docs/TIME.md
其中,node_timex_offset通過查看源碼確認,是RTC與系統時間的差異
https://github.com/prometheus/node_exporter/blob/master/collector/timex.go
源碼中,是通過調用unix的adjtimex函數來計算偏移量的。通過查詢unix的adjtimex函數,即可知道是RTC與系統時間的偏移量。
http://www.hechaku.com/Unix_Linux/adjtimex.html
另外,在舊版本的Linux中,是存在adjtimex指令的。也能印證adjtimex函數是查看/調整RTC與系統時間的差異
node-exporter也提供系統時間與NTP之間的差異,但需要開啟ntp collector模塊
如果是docker(docker-compose)啟動的話,加上--collector.ntp參數即可
command: --path.rootfs /host --collector.systemd --collector.ntp --collector.textfile.directory /host/node
參考文章:https://www.aboutyun.com/thread-11395-1-1.html
以上為本人理解,如果錯誤,請指出