Nagios 服务器上的 NTP 问题

Nagios 服务器上的 NTP 问题

我们的 Nagios 服务器 NTP 无法正常工作。首先是这里的问题:

root@ccsd-lx-noc03 /var/log> tail -n 10000 messages | grep "NTP"
Jul  5 16:19:36 ccsd-lx-noc03 nagios: SERVICE ALERT: localhost;NTP-localhost;WARNING;HARD;4;NTP WARNING: Offset 53.03026778 secs
Jul  5 16:20:49 ccsd-lx-noc03 nagios: SERVICE ALERT: localhost;NTP-localhost;CRITICAL;HARD;4;NTP CRITICAL: Offset -84.96075022 secs
Jul  5 16:20:50 ccsd-lx-noc03 nagios: SERVICE ALERT: localhost;NTP2-localhost;CRITICAL;HARD;4;NTP CRITICAL: Offset -84.95908391 secs
Jul  5 16:22:49 ccsd-lx-noc03 nagios: SERVICE ALERT: localhost;NTP2-localhost;CRITICAL;HARD;4;NTP CRITICAL: Offset -84.96072233 secs
Jul  5 16:23:40 ccsd-lx-noc03 nagios: SERVICE ALERT: localhost;NTP-localhost;CRITICAL;HARD;4;NTP CRITICAL: Offset -84.96058169 secs
Jul  5 16:24:20 ccsd-lx-noc03 nagios: SERVICE ALERT: localhost;NTP2-localhost;WARNING;HARD;4;NTP WARNING: Offset 53.01928848 secs
Jul  5 16:24:44 ccsd-lx-noc03 nagios: SERVICE ALERT: localhost;NTP-localhost;CRITICAL;HARD;4;NTP CRITICAL: Offset -84.961512 secs
Jul  5 16:25:14 ccsd-lx-noc03 nagios: SERVICE ALERT: localhost;NTP2-localhost;CRITICAL;HARD;4;NTP CRITICAL: Offset -84.9693791 secs
Jul  5 16:26:01 ccsd-lx-noc03 nagios: SERVICE ALERT: localhost;NTP-localhost;CRITICAL;HARD;4;NTP CRITICAL: Offset -84.96211889 secs
Jul  5 16:26:18 ccsd-lx-noc03 nagios: SERVICE ALERT: localhost;NTP2-localhost;CRITICAL;HARD;4;NTP CRITICAL: Offset -71.26003572 secs
Jul  5 16:27:10 ccsd-lx-noc03 nagios: SERVICE ALERT: localhost;NTP2-localhost;CRITICAL;HARD;4;NTP CRITICAL: Offset -71.26059958 secs
Jul  5 16:27:20 ccsd-lx-noc03 nagios: SERVICE ALERT: localhost;NTP-localhost;WARNING;HARD;4;NTP WARNING: Offset 53.03374252 secs
Jul  5 16:27:32 ccsd-lx-noc03 nagios: SERVICE ALERT: localhost;NTP-localhost;CRITICAL;HARD;4;NTP CRITICAL: Offset -71.26115555 secs
Jul  5 16:28:00 ccsd-lx-noc03 nagios: SERVICE ALERT: localhost;NTP2-localhost;CRITICAL;HARD;4;NTP CRITICAL: Offset -84.96324414 secs
Jul  5 16:28:19 ccsd-lx-noc03 nagios: SERVICE ALERT: localhost;NTP-localhost;WARNING;HARD;4;NTP WARNING: Offset 53.03296909 secs
Jul  5 16:28:25 ccsd-lx-noc03 nagios: SERVICE ALERT: localhost;NTP-localhost;CRITICAL;HARD;4;NTP CRITICAL: Offset -84.96396494 secs
Jul  5 16:29:09 ccsd-lx-noc03 nagios: SERVICE ALERT: localhost;NTP2-localhost;CRITICAL;HARD;4;NTP CRITICAL: Offset -71.26274931 secs

其次,我不是管理员,他几周前离开了,试图让事情保持秩序。在 crontab 文件中我看到:

root@ccsd-lx-noc03 /data/nagios/var> crontab -l
59 * * * * /usr/sbin/ntpd -q > /dev/null 2>&1

我该如何解决这个问题?

ntpdate -d time.ccsd.net
 5 Jul 17:58:48 ntpdate[5098]: ntpdate [email protected] Wed Jun 18 21:20:36 UTC 2014 (1)
Looking for host time.ccsd.net and service ntp
host found : ns1.ccsd.net
transmit(206.194.10.13)
receive(206.194.10.13)
transmit(206.194.10.13)
receive(206.194.10.13)
transmit(206.194.10.13)
receive(206.194.10.13)
transmit(206.194.10.13)
receive(206.194.10.13)
server 206.194.10.13, port 123
stratum 2, precision -23, leap 00, trust 000
refid [206.194.10.13], delay 0.02682, dispersion 0.00015
transmitted 4, in filter 4
reference time:    d9444d0c.ef1c4dc0  Sun, Jul  5 2015 17:40:44.934
originate timestamp: d94450f9.d4061577  Sun, Jul  5 2015 17:57:29.828
transmit timestamp:  d944514e.d51c3225  Sun, Jul  5 2015 17:58:54.832
filter delay:  0.02911  0.02684  0.02730  0.02682
         0.00000  0.00000  0.00000  0.00000
filter offset: -85.0055 -85.0048 -85.0046 -85.0048
         0.000000 0.000000 0.000000 0.000000
delay 0.02682, dispersion 0.00015
offset -85.004863
 5 Jul 17:58:54 ntpdate[5098]: step time server 206.194.10.13 offset -85.004863 sec

答案1

所以我不确定为什么ntpdate如果你安装了 NTP 似​​乎正在运行。你没有提到它所在的操作系统/发行版,所以我必须保持这个一般性,但是:

  1. 删除对 的任何 crontab 调用ntpdate并删除对 的调用ntpd -q
  2. ntpd从系统包管理器中删除并重新安装。
  3. 查看/etc/ntp.conf并确保正确指定上游时间服务器。在大多数情况下,默认的“.pool.*”NTP 服务器就可以了。
  4. 重新安装后,ntpd应该已经可以运行了。如果没有,请启动它(通常service ntp start)。
  5. 给它一两分钟以使其同步后,运行命令ntpq -p。您应该*在其中一台服务器的行开头看到。这表明 NTP 正在工作并正在同步。

守护进程应该永远保持运行——它稳定且简单,不应该崩溃。只要确保没有其他东西干扰它即可。

答案2

参考“预海报”:如果您使用 ntpd,请不要在您的服务器上保留 ntpdate!

考虑到您的系统由于任何原因而发生时间漂移,该怎么办?

当您在 Linux 上遇到时间问题时,首先检查任何虚拟化系统 - 如果您使用 VMware/Hyper-V/Xen/KVM/无论什么 - 想想您的“硬件时钟”到底是什么!?!有时您的“BIOS”时钟表现不佳,但它与您的网卡一样虚拟(!),因此如果您使用虚拟机,请与负责的同事交谈。

考虑到 ntpd 和 ntpd 的区别,简而言之:ntpd 是通过在系统时间(日期)中稍微添加时间片段来“欺骗”您的系统,直到本地系统时间与您的时间源所说的同步,而 ntpdate 设置您的本地时间及时到“网络时间”。

系统时间是该命令date在 Linux 上告诉您的时间。但还有hwclock(需要 sudo)这确实是你的硬件,又名 BIOS 时钟。

这一次 - 从字面上来说 - 你可能需要这样做

sudo hwclock ---systohc

将 BIOS/硬件/虚拟时钟设置为系统日期 - ntpd 会提示。如果您需要更频繁地执行此操作,则会出现问题。

我确信这适用于 Ubuntu,所以我认为它也适用于 Debian。原因是系统可能会及时调用ntpdate(cron.weekly?),但是当您运行ntpd时,它通常会抱怨!当 ntpd 运行时,您根本无法运行 ntpdate。在全新安装上自行测试。所以我假设 - 考虑到你的 cronjob - 你的 ntpd 实际上没有作为守护进程运行。否则为什么要在每小时第 59 分钟以静默 (-q) 模式启动它?

你的 cronjob 的奇怪之处在于,它以“--quiet 模式”启动 ntpd - 为什么会这样?这是一个守护进程,对吧?它们确实一直在后台运行,不是吗?

通常,您安装 ntpd 因为它拥有一个漂移文件这使得ntpd 平滑地调整你的时间,但“随着时间的推移”- 它可能会在这里添加几分之一秒,在那里添加但是不强制重置时间假设未来 30 秒 - 或者更糟糕的是过去 - 因为你可以假设例如大多数数据库根本不喜欢时间旅行!

这就是 ntpd 的用途。ntpdate - 相反 - 将立即纠正任何时间偏差什么可能导致时间关键的应用程序问题 -另一方面,ntpd 会在过去的每一秒中添加一些毫秒因此事情会“及时”得到正确的时间,这对于任何严重依赖于时间上或向后的大跳跃的时间戳的应用程序来说并不奇怪。严肃的数据库确实依赖于时间戳(例如 mysql/postgres/mariadb)。

守护进程应该始终在后台运行,所以我必须假设您的前管理员将 ntpdate 与 ntpd 混合 - 因为通常 - 没有 ntpd - 您会偶尔调用 ntpdate 来调整时间及时漂流的时候。相反,ntpd 应该运行、运行、运行,你通常会“及时”忘记它......

或者,您的系统确实非常老旧,因此您可能需要根据 Linux 系统的重要性考虑升级。

我建议,您应该让一些 Linux 管理员检查您的系统,因为恕我直言,您的系统似乎配置不正确。

您已被正式警告;-)

相关内容