Le couple Nagios/NSClient++ est indéniablement très pratique dans la surveillance de serveurs sous Windows.
Une fois installé le service NRPE, vous avez tout loisir pour interroger la place disque, l'utilisation de la mémoire ou du processus.
Mais un des trucs les plus énervants sous Windows, c'est le passage du mercredi et de son lot de rustines.
Le service Windows Update se lance et collecte les mises à jour système.
Il est donc primordiale de surveiller également ce processus et savoir si un serveur demande à redémarrer.
			
									
									
						NSClient++ : gestion des serveurs Windows depuis Nagios
- 
				Bidouille
 - Webmestre
 - Messages : 534
 - Enregistré le : lun. mai 21, 2007 2:08 pm
 
- 
				Bidouille
 - Webmestre
 - Messages : 534
 - Enregistré le : lun. mai 21, 2007 2:08 pm
 
Partie NSClient++
Téléchargez l'outil depuis le site NSClient.org :  http://nsclient.org/download/
A ce jour, j'utilise la 0.4.4.
Ce dernier s'installe comme n'importe quel logiciel.
Structure minimale du nsclient.ini :
NB : nos serveurs étant dans un domaine privé, SSL n'est pas activé.
			
									
									
						A ce jour, j'utilise la 0.4.4.
Ce dernier s'installe comme n'importe quel logiciel.
Structure minimale du nsclient.ini :
Code : Tout sélectionner
[/modules]
CheckDisk = 1
CheckEventLog = 1
CheckExternalScripts = 1
CheckHelpers = 1
CheckNSCP = 1
CheckSystem = 1
NRPEServer = 1
NSClientServer = 1
[/settings/default]
allowed hosts = 10.0.0.0/8
password = xxxxxxx
[/settings/NRPE/server]
verify mode = none
insecure = true
use ssl = 0
allow nasty characters = 1
allow arguments = 1
port = 5666
extended response = 0
[/settings/external scripts]
allow arguments=true
[/settings/external scripts/wrappings]
wsf=cscript //nologo %SCRIPT%
[/settings/external scripts/wrapped scripts]
verif_maj_win=scripts\verif_maj_win.wsfNB : nos serveurs étant dans un domaine privé, SSL n'est pas activé.
- 
				Bidouille
 - Webmestre
 - Messages : 534
 - Enregistré le : lun. mai 21, 2007 2:08 pm
 
Partie script
Pour savoir si Windows Update propose des mises à jour ou demande à redémarrer, j'ai opté pour un script WSF.
Nommez ce fichier verif_maj_win.wsf et copiez le dans le répertoire script/ de NSClient++
			
									
									
						Code : Tout sélectionner
<job>
  <script language="VBScript">
    
    Set objShell = CreateObject("WScript.Shell")
    Dim sysroot
    sysroot = objShell.ExpandEnvironmentStrings("%systemroot%")
    Set objExec = objShell.Exec("cmd.exe /c type " & sysroot & "\SoftwareDistribution\ReportingEvents.log")
    results = LCase(objExec.StdOut.ReadAll)
    res_split = Split(results, vbCrLf)
    Dim regEx
    Set regEx = New RegExp
    regEx.Pattern = "(.)\S*\s*\S*\s*\S*\s*\d\s*(\d*)\s*\S*\s*\S*[0-9\s]*\S*\s*\S*\s*.*\t(.*)"
    regEx.IgnoreCase = true
    count = 1
    ReDim arrDyn(1)
    For Each elem in res_split
      firstsign = regEx.Replace(elem, "$1")
      If (firstsign = "{") Then
         number = regEx.Replace(elem, "$2")
        finish = regEx.Replace(elem, "$3")
         If (number = 147) Then
         count = count + 1
         ReDim Preserve arrDyn(count + 1)
         arrDyn(count + 1) = finish
        End If
      End If
    Next
    mount_updates = -1
    For x = 0 to UBound(arrDyn)
      If x = UBound(arrDyn) Then
         end_array = Split(arrDyn(x), " ")
         mount_updates = end_array(UBound(end_array) - 1)
      End If
    Next
    Set objSysInfo = CreateObject("Microsoft.Update.SystemInfo")
    If objSysInfo.RebootRequired Then
      Wscript.echo("Reboot required!")
      status = 2
     
    Else
      If mount_updates > 0 Then
        If mount_updates = 1 Then
         Wscript.echo("Warning: 1 Update detected!")
         status = 1
        ElseIf mount_updates >= 2 Then
      
         Wscript.echo("Critical: " & mount_updates & " Updates detected!")
         status = 2
        End If
      
      Else
        Wscript.echo("OK, no updates detected!")
      End If
   End If
    Wscript.Quit(status)
   
  </script>
</job>Nommez ce fichier verif_maj_win.wsf et copiez le dans le répertoire script/ de NSClient++
- 
				Bidouille
 - Webmestre
 - Messages : 534
 - Enregistré le : lun. mai 21, 2007 2:08 pm
 
Partie Nagios
Il suffit de créer une commande check_nrpe et de passer le nom du script :
			
						Code : Tout sélectionner
root@nagios:/usr/local/nagios/libexec# ./check_nrpe -H 10.0.0.56 -c verif_maj_winVous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
			
									
						Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 0 invité