Windows-overvågning med Shinken 2
I dette indlæg skal vi overvåge en Windows-maskine. Der er 3 metoder til at gøre dette. Den klassiske SNMP-protokol, NRPE-agenten eller brugen af Microsoft Windows Management Instrumentation-systemet (WMI).
Her vil vi konfigurere en NRPE-agent. Princippet er, at Shinken-serveren initierer en forbindelse til en fjernproces, processen kalder den systemkommando, som Shinken anmoder om og returnerer resultatet med returkoden og standardoutput.
I. Konfiguration af Windows-computeren
Download og installer NSClient ++-klienten, der er tilgængelig her.
Under installationen bliver du bedt om at indtaste agentens login-adgangskode samt adressen på Shinken-serveren. Hold adgangskoden godt, det vil være nødvendigt, når du konfigurerer Shinken-serveren. Et råd: ingen specielle tegn som "!" som er et escape-tegn for Shinken-konfigurationsfiler.
Marker følgende felter:
- Aktiver almindelige kontrolplugins: aktiverer NRPE base plugins
- Aktiver nsclient-server (check_nt): obligatorisk for check_nt plugins til at fungere fra Shinken
- Aktiver NRPE-server (check_nrpe): aktiverer agenttilstand. Bruges til at lave personlige supervisionsmanuskripter.
- Aktiver WMI-tjek: som jeg sagde tidligere, aktiverer dette overvågningstilstanden à la Mircrosoft.
Når den er installeret, kan du starte tjenesten. For at gøre dette går vi til servicemanageren (services.msc) for at kontrollere, at NSClient ++ faktisk er i "startet" og "automatisk" tilstand.
Tjenesten skal genstartes efter hver ændring af agentkonfigurationen. Denne er under C: Program FilesNSClient ++ nsclient.
En sidste detalje for at fuldføre konfigurationen. For at øge sikkerheden deaktiverer Windows fjernforbindelsesadgang og -tilladelser. For at kontrollere, højreklik og ejendom på tjenesten. I fanen tilslutning, kontrollere "Godkend tjenesten til at interagere med kontoret".
II. Konfiguration af Shinken
Vi vil først teste vores agents gode forbindelse ved direkte at kalde check_nt scriptet.
1
|
/usr/lib/nagios/plugins/check_nt –H host.domain.local –p 12489 –v CLIENTVERSION –s password
|
Forklaring af mulighederne:
- -H: Navn eller IP-adresse på værten, der skal forespørges.
- -p: port. Standard 12489
- -s: Adgangskoden. Den indtastede ved installation af NSClient ++-klienten
- -v: Variabel til forespørgsel
Her beder vi om den version af agenten, der er installeret på maskinen. Resultatet skulle se sådan ud:
1
|
NSClient++ 0,4,1,105 2014–04–28
|
Agenten arbejder. Vi vil nu oprette en Shinken-kommando, der bruger dette script. Til det opretter vi filen kommandoer / check_nt.cfg og vi placerer følgende linjer
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
}
|
Kommandoen er kun den syntaktiske form af det opkald, vi tidligere lavede for at teste scriptet. Den eneste forskel er tilføjelsen af -v-argumenterne for at sende yderligere parametre. Hvert plugin kræver en parameter såsom en kritikalitetstærskel, navnet på en bestemt tjeneste eller et drevbogstav.
Vi fortsætter derefter til oprettelsen af en gruppe, som vil fungere som base for alle Windows-servere. Vi opretter derfor filen hostgroups / windows_nrpe.cfg for at placere følgende linjer der
1
2
3
4
5
|
define hostgroup{
hostgroup_name windows_nrpe
alias Serveur Windows Via NSClient++
members serveur_windows
}
|
Vi vil nu knytte tjenester til denne gruppe. Hver af Windows-serverne i sidstnævnte vil derfor blive overvåget af disse tjenester. Du kan placere dem efter hostgroups-filen for bedre læsbarhed eller oprette en ny konfigurationsfil.
Vis versionen af NSClient ++-agenten
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
}
|
Maskinens oppetid
1
2
3
4
5
6
|
define service {
service_description Uptime
hostgroup_name windows_nrpe
use generic–service
check_command check_nt!UPTIME
}
|
CPU belastning
Med en forespørgsel, der tillader en beregningsmåde, der er ret tæt på den, der er observeret på Linux/Unix-maskine, det vil sige et gennemsnit for det sidste minut, de 5 og de sidste 15 minutter. Advarsels- (90) og kritiske (95) tærskler er specificeret for hver af de forespurgte værdier.
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
}
|
Hukommelsesbelastning
En 80 % advarsel og en 90 % advarsel.
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
}
|
Fyldningshastighed for harddisk "C:"
-lc: udvælgelse af læseren til at overvåge
-w: tærskel for at udløse en advarsel
-c: kritisk tærskel
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
}
|
Grundlæggende tjenester er konfigureret. Vi vil endelig skabe en maskine, der vil tilhøre gruppen windows_nrpe. Oprettelse af filen /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
}
|
Rediger hostgroups / windows_nrpe.cfg filen for at tilføje denne maskine som medlem.
Til sidst skal du genstarte Shinken Arbiter for at tage ændringerne i betragtning.
1
|
/etc/init.d/shinken–arbiter restart
|
Resultatet er følgende