Mittwoch, 17. September 2008

check_time_sync - Nagios checkt, ob die Systemzeit richtig ist

Pünktlichkeit ist wohl eine der bekanntesten deutschen Tugenden. Im Idealfall laufen auch die Uhren aller Rechner im Netzwerk synchron. Leider driften Realtime Clocks (RTC) wie sie auf aktuellen Mainboards verbaut sind mit der Zeit. Während der Analyse von Logfiles von verschiedenen Rechnern ist oft schon eine um wenige Sekunden verschiedenen Zeit nervenaufreibend. Bei Anwendungen wie OpenVPN kann eine Uhrzeit in der Vergangenheit dazu führen, dass der Daemon Zertifikate fälschlicherweise für ungültig hält.

Um dies zu verhindern kann man den Network Time Protocol Daemon (NTPd) benutzen. Er gleicht das Abdriften der Uhr aus und sorgt dafür, dass die Zeit auf dem Rechner richtig ist. Leider wird der NTPd bei den meisten Betriebsystemen nicht in der Standardinstallation installiert. Es empfiehlt sich daher diesen Schritt manuell nachzuholen. Ein anderes Problem birgt der eingestellte NTP Server. Geht der Server vom Netz bekommt man in der Regel nichts davon mit. Die Zeit verschiebt sich schleichend.

Um dem Problem zentral beizukommen haben wir ein Nagios Plugin entwickelt, welches den Zeitunterschied zwischen einem zu überwachenden Server und der Nagios Systemzeit bestimmt. Ist der Unterschied zu groß wird die Situation vom Nagios eskaliert. Man sollte natürlich darauf achten, dass der Nagios immer die korrekte Uhrzeit hat. In unserem Fall konnten so viele Probleme im vorraus verhindert werden. Das Plugin findet ihr auf unserer Website unter Service->Downloads. Gerne könnt ihr auch unsere Firewalls angucken oder eure Nagios Integration von uns erledigen lassen :-).

Kommentare:

Anonym hat gesagt…

Hi,

schonmal Danke für eure Plugins und das Bereitstellen für die Nagios-Community.

Abgesehen davon das der Download von check_time_sync nicht funktioniert (ein Slash zuviel in der URL?) ist bei diesem Plugin das Problem das ich ja sicherstellen muss das der Nagios-Server immer die richtige Uhrzeit hat. Dieses kann ich aber nicht so einfach sicherstellen (abgesehen z.B. von einem "uneleganten" ntpdate - Cronjob mit entsprechender
Fehlerbenachrichtigung).

Meiner Meinung nach ist "bulletproof" wirklich nur der Vergleich der lokalen Systemzeit mit einem externen NTP. Und genau das macht das schon vorhandene Plugin "check_ntp_time" (was natürlich auch die Nichtverfügbarkeit eines externen NTP meldet)
aus den offiziellen Plugins.

MfG
Björn

jk hat gesagt…

Das Plugin check_ntp_time hat allerding noch den Nachteil, dass nicht alle Server am gleichen NTP Server hängen. Wenn dieser Server falsch läuft ist nicht nur die Uhrzeit falsch sondern das Plugin meckert auch nicht. Mir ist eigentlich wichtig, dass meine Server synchron laufen. Der Nagios ist dazu meine Referenz. Klar wenn die Zeit dort falsch ist, dann gibt es Fehler. Aber dann bekomme ich das Problem wenigstens mit.