OpenNMS: Erwei­tertes NTP-Monitoring

In den meisten IT-Umge­bungen muss darauf geachtet werden, auf allen Geräten die rich­tige System­zeit zu verwenden. Das gilt vor allem dann, wenn Ereig­nisse über mehrere Geräte hinweg in Logfiles analy­siert werden sollen; zusätz­lich sind aber auch verschie­dene Anwen­dungen auf die korrekt einge­stellte Uhrzeit ange­wiesen. Für die Synchro­ni­sa­tion der Uhrzeit mit einem Zeit­server wird in der Regel auf das Network Time Protocol - kurz NTP - zurück­ge­ge­griffen. OpenNMS bietet mit dem NtpMo­nitor bereits einen einfa­chen Poller, um NTP-Zeit­server zu über­wa­chen. Damit wird die Zeit in regel­mä­ßigen Inter­vallen von einem NTP-Server abge­fragt. Solange OpenNMS dabei eine Antwort erhält, wird kein Ausfall ange­zeigt - dabei wird jedoch nicht die tatsäch­liche Uhrzeit überprüft.
Im Rahmen eines Kunden­pro­jektes haben wir einen erwei­terten Poller für NTP entwi­ckelt, der die Uhrzeit sowohl von einem über­wachten NTP-Server als auch von einem konfi­gu­rierten Refe­renz-NTP-Server abfragt und dabei die gemel­deten Uhrzeiten vergleicht. Weichen diese um einen bestimmten (konfi­gu­rier­baren) Wert vonein­ander ab, wird in OpenNMS ein Ausfall gene­riert. Der Poller selbst ist als BSF-Monitor implementiert.
Für die Einrich­tung des Moni­tors muss das folgende Skript “ntp-monitor.bsh” (Down­load: ntp-monitor.zip) auf dem OpenNMS-Server hinter­legt werden. Der nach­fol­gende Abschnitt muss in der poller-configuration.xml einge­tragen werden:

<service name=“NTP-Diff” interval=“300000” user-defined=“false” status=“on”>
<para­meter key=“file-name” value=”/etc/opennms/scripts/ntp-monitor.bsh”/>
<para­meter key=“lang-class” value=“beanshell”/>
<para­meter key=“bsf-engine” value=“bsh.util.BeanShellBSFEngine”/>
<para­meter key=“file-extensions” value=“bsh”/>
<para­meter key=“maxTimediff” value=“10”/>
<para­meter key=“ntp-port” value=“123”/>
<para­meter key=“ntp-reference-ip” value=“10.0.0.1”/>
<para­meter key=“ntp-reference-port” value=“123”/>
</service>
<monitor service=“NTP-Diff” class-name=“org.opennms.netmgt.poller.monitors.BSFMonitor” />

Die folgenden Para­meter müssen dabei ange­passt werden:

file-name Name des Skripts
ntp-refe­rence-ip IP-Adresse des Referenz-NTP-Servers
ntp-refe­rence-port Port des Referenz-NTP-Servers
ntp-port Port des über­wachten NTP-Servers
maxTi­me­diff Maxi­male Diffe­renz der von den NTP-Servern abge­fragten Zeiten in Sekunden

 
In der aktu­ellen Version des Pollers werden die beiden NTP-Server nach­ein­ander abge­fragt. Dabei wird jeweils fünf Sekunden lang auf eine Antwort gewartet. Die abge­fragten Zeiten können sich daher um diese Zeit­spanne unter­scheiden. Aus diesem Grund sollte man den Wert “maxTi­me­diff” nicht kleiner als fünf Sekunden wählen.

Schreibe einen Kommentar

Cookie Einstellungen
Diese Website verwendet Cookies, um die bestmögliche Funktionalität zu gewährleisten. Mehr lesen

Akzeptiere alle Cookies Speichern