我有 Ubuntu Server 18.04,并通过 配置了与 Windows 域控制器的时间同步ntpd
。我的配置文件/etc/ntp.conf
包含:
driftfile /var/lib/ntp/ntp.drift
logfile /var/log/ntpd.log
statsdir /var/log/ntpstats/
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
server 1.2.5.6 iburst burst minpoll 6 maxpoll 8
restrict -4 default kod notrap nomodify nopeer noquery limited
restrict -6 default kod notrap nomodify nopeer noquery limited
restrict 127.0.0.1
restrict ::1
restrict source notrap nomodify noquery
ntpd 启动了,我认为它工作正常。以下是示例ntpq -pn
命令输出:
remote refid st t when poll reach delay offset jitter
==============================================================================
*1.2.5.6 1.2.5.3 4 u 53 64 3 0.591 3.830 8.130
但在日志文件中/var/log/ntpd.log
,我只有这个:
3 Mar 14:26:05 ntpd[8457]: Listen and drop on 0 v6wildcard [::]:123
3 Mar 14:26:05 ntpd[8457]: Listen and drop on 1 v4wildcard 0.0.0.0:123
3 Mar 14:26:05 ntpd[8457]: Listen normally on 2 lo 127.0.0.1:123
3 Mar 14:26:05 ntpd[8457]: Listen normally on 3 eth0 1.2.2.19:123
3 Mar 14:26:05 ntpd[8457]: Listening on routing socket on fd #20 for interface updates
我想知道时间何时同步,以及同步完成后本地主机上的时间变化了多少秒。我想我需要增加日志文件的详细程度,但我不知道该怎么做。请帮忙。我在 中找不到任何相关信息/etc/ntp.conf
,即使读过 之后也是如此man 5 ntp.conf
。
答案1
您不需要增加日志详细程度。您需要的是查看(并可能绘制)统计文件/var/log/ntpstats/
,和/或通过 collectd、nagios、prometheus 或 telegraf 等监控系统监控 NTP。
同步不是一次性事件,而是持续发生的事情。NTP 会持续对速度时钟,而不是它的价值。因此,您不应该期望看到日志消息说ntpd
已同步时钟;相反,在统计文件中,您将看到时间点样本,说明出色地它已同步。
要查看本地时钟运行情况,您需要查看loopstats
。我做了一个(非常粗略的)交互式绘图脚本这样做。您可以通过查看来了解您的同伴表现如何peerstats
。我做了类似的脚本执行此操作。您可以在以下位置找到有关统计文件的更多信息http://doc.ntp.org/current-stable/monopt.html
要使用上述监控工具之一监控你的系统,请查看NTPM,从该 repo 的顶层开始。
如果你关心时钟的准确性,那么最重要的事情就是在配置中包含更多的源。NTP 最佳当前实践 (RFC8633) 建议至少有 4 个来源,但使用pool
指令并ntpd
决定需要多少个是最好的。
(您可能也不需要burst
在您的server
线路中 - 一些 NTP 服务器会阻止使用此功能的客户端;iburst
但通常没问题。)