Monitorowanie systemu Windows za pomocą Shinken 2
W tym poście będziemy nadzorować komputer z systemem Windows. Można to zrobić na 3 sposoby. Klasyczny protokół SNMP, agent NRPE czy wykorzystanie systemu Microsoft Windows Management Instrumentation (WMI).
Tutaj skonfigurujemy agenta NRPE. Zasada jest taka, że serwer Shinken inicjuje połączenie ze zdalnym procesem, proces wywołuje polecenie systemowe żądane przez Shinkena i zwraca wynik z kodem powrotu i standardowym wyjściem.
I. Konfiguracja komputera z systemem Windows
Pobierz i zainstaluj klienta NSClient++ dostępnego tutaj.
Podczas instalacji zostaniesz poproszony o podanie hasła logowania agenta oraz adresu serwera Shinken. Zachowaj hasło dobrze, będzie to konieczne podczas konfiguracji serwera Shinken. Jedna rada: żadnych znaków specjalnych, takich jak „!” który jest znakiem ucieczki dla plików konfiguracyjnych Shinken.
Zaznacz następujące pola:
- Włącz wtyczki do wspólnego sprawdzania: aktywuje podstawowe wtyczki NRPE
- Włącz serwer nsclient (check_nt): obowiązkowe, aby wtyczki check_nt działały z Shinken
- Włącz serwer NRPE (check_nrpe): aktywuje tryb agenta. Służy do tworzenia skryptów nadzoru osobistego.
- Włącz testy WMI: jak powiedziałem wcześniej, aktywuje to tryb nadzoru à la Mircrosoft.
Po zainstalowaniu możesz uruchomić usługę. W tym celu przechodzimy do menedżera usług (services.msc) w celu sprawdzenia, czy NSClient ++ jest rzeczywiście w stanie „uruchomiony” i „automatyczny”.
Po każdej modyfikacji konfiguracji agenta konieczne będzie ponowne uruchomienie usługi. Ten jest poniżej C: Program FilesNSClient++ nsclient.
Ostatni szczegół, aby zakończyć konfigurację. W celu zwiększenia bezpieczeństwa system Windows wyłącza zdalny dostęp do połączeń i uprawnienia. Aby sprawdzić, kliknij prawym przyciskiem myszy i nieruchomość w serwisie. W zakładce związek, sprawdzać „Zezwól służbie na interakcję z Urzędem”.
II. Konfiguracja Shinkena
Najpierw przetestujemy dobre połączenie naszego agenta, wywołując bezpośrednio skrypt check_nt.
1
|
/usr/lib/nagios/plugins/check_nt –H host.domain.local –p 12489 –v CLIENTVERSION –s password
|
Wyjaśnienie opcji:
- -H: Nazwa lub adres IP hosta do zapytania.
- -p: port. Domyślnie 12489
- -s: hasło. Ten wprowadzony podczas instalacji klienta NSClient ++
- -v: Zmienna do zapytania
Tutaj prosimy o wersję agenta zainstalowanego na komputerze. Wynik powinien wyglądać tak:
1
|
NSClient++ 0,4,1,105 2014–04–28
|
Agent działa. Utworzymy teraz polecenie Shinken, które używa tego skryptu. W tym celu tworzymy plik komendy / check_nt.cfg i umieszczamy następujące linie
1
2
3
4
|
define command {
command_name check_nt ; Nom de la commande qui sera appelé
command_line $USER1$/check_nt –H $HOSTADDRESS$ –p 12489 –s password –v $ARG1$ $ARG2$ ; syntaxe ‘brute’ de la commande
}
|
Polecenie jest tylko formą składniową wywołania, które wykonaliśmy wcześniej w celu przetestowania skryptu. Jedyna różnica polega na dodaniu argumentów -v w celu przekazania dodatkowych parametrów. Każda wtyczka wymaga parametru, takiego jak próg krytyczności, nazwa konkretnej usługi lub litera dysku.
Następnie przechodzimy do utworzenia grupy, która będzie stanowiła bazę dla wszystkich serwerów Windows. Dlatego tworzymy plik hostgroups / windows_nrpe.cfg, aby umieścić tam następujące wiersze
1
2
3
4
5
|
define hostgroup{
hostgroup_name windows_nrpe
alias Serveur Windows Via NSClient++
members serveur_windows
}
|
Dołączymy teraz usługi do tej grupy. Każdy z serwerów Windows w tym ostatnim będzie zatem nadzorowany przez te usługi. Możesz umieścić je za plikiem hostgroups dla lepszej czytelności lub utworzyć nowy plik konfiguracyjny.
Wyświetl wersję agenta NSClient ++
1
2
3
4
5
6
|
define service {
service_description Check version NS Client ; Description de la commande
hostgroup_name windows_nrpe ; Nom du groupe sur lequel la commande sera exécutée
use generic–service ; Utilisation du template générique
check_command check_nt!CLIENTVERSION ; Commande à effectuer
}
|
Czas pracy maszyny
1
2
3
4
5
6
|
define service {
service_description Uptime
hostgroup_name windows_nrpe
use generic–service
check_command check_nt!UPTIME
}
|
Obciążenie procesora
Z przesłuchaniem, które pozwala na tryb obliczeń całkiem zbliżony do tego obserwowanego na maszynie Linux/Unix, to znaczy średnia z ostatniej minuty, 5 i ostatnich 15 minut. Dla każdej z odpytywanych wartości określone są progi ostrzegawcze (90) i krytyczne (95).
1
2
3
4
5
6
|
define service {
service_description CPU load
hostgroup_name windows_nrpe
use generic–service
check_command check_nt!CPULOAD!–l 1,90,95,5,90,95,15,90,95 ; Comme linux
}
|
Obciążenie pamięci
Ostrzeżenie 80% i alert 90%.
1
2
3
4
5
6
|
define service {
service_description RAM load
hostgroup_name windows_nrpe
use generic–service
check_command check_nt!MEMUSE!–w 80 –c 90
}
|
Szybkość napełniania dysku twardego „C:”
-lc: wybór czytnika do nadzorowania
-w: próg wyzwalający ostrzeżenie
-c: próg krytyczny
1
2
3
4
5
6
|
define service {
service_description Charge disque C
hostgroup_name windows_nrpe
use generic–service
check_command check_nt!USEDDISKSPACE!–l c –w 80 –c 90
}
|
Konfigurowane są podstawowe usługi. W końcu stworzymy maszynę, która będzie należeć do grupy nr_windows. Utworzenie pliku /etc/shinken/hosts/serveur_windows_test.cfg
1
2
3
4
5
|
define host{
use generic–host
host_name serveur_windows
address serveur_windows.domain.local
}
|
Edytuj plik hostgroups / windows_nrpe.cfg, aby dodać tę maszynę jako członka.
Na koniec uruchom ponownie Shinken Arbiter, aby uwzględnić zmiany.
1
|
/etc/init.d/shinken–arbiter restart
|
Wynik jest następujący