字段 | 含义 | 备注 |
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
以上为本人理解,如果错误,请指出