Dla systemów Linux
Na serwerze który ma być monitorowany instalujemy pakiet xinetd
Konfigurujemy plik /etc/xinetd.d/daytime, powinień wyglądać jak poniżej:
|
service daytime { disable = no type = INTERNAL id = daytime-stream socket_type = stream protocol = tcp user = root wait = no } |
Następnie na serwer z którego będziemy monitorować sciągamy plik check_daytime.pl
Nadajemy uprawnienia
|
chmod +x check_daytime.pl |
Obsługa jest dość oczywista, poniżej przykład
|
check_daytime.pl -H $HOSTADDRESS$ -P daytime -w 5 -c 10 |
-w i -c to oczywiście dopuszczalna różnica w sekundach.
Źródłem czasu dla skryptu check_daytime.pl jest czas na serwerze z którego wykonujemy odpytanie.
Dla systemów Windows
W przypadku systmów windows sprawa jest prostsza, wystarczy nam jeden skrypt, który można pobrać stąd: check-time.ps1
Wystarczy dodać do konfiguracji NSClienta++ w pliku NSC.ini w sekcji [NRPE Handlers] poniższy wpis
|
check_time=cmd /c echo scripts\check-time.ps1 -refTimeServer ntp.nask.pl -maxWarn 3 -maxError 5 | PowerShell.exe -Command - |
Wpis oznacza że czas będzie porównywany z serwer ntp.nask.pl, maxWarn i maxError to dopuszczalne wartości w sekundach.
Oczywiście musimy jakoś wywoływać zapytanie, np modułem check_nrpe, przykład poniżej:
|
check_nrpe -H $HOSTADDRESS$ -c check_time -t 60 |
Podsumowanie
Ważne jest aby korzystać z tego samego serwera czasu do walidacji czasu jak i źródła. Tutaj napisałem jak zmienić serwer źródła czasu na systemie Windows.