GNU/Linux >> Tutoriels Linux >  >> Linux

Comment surveiller une machine Windows distante à l'aide de Nagios sous Linux


Dans les articles précédents, nous avons discuté du guide de démarrage de Nagios 3.0 et de la surveillance d'un hôte Linux distant à l'aide de Nagios 3.0. Dans cet article, j'expliquerai comment surveiller une machine Windows distante et les différents services exécutés sur le serveur Windows à l'aide du serveur de surveillance Nagios. Les trois sections suivantes sont couvertes dans cet article.

Je. Présentation
II. 4 étapes pour installer nagios sur un hôte Windows distant

  1. Installez NSClient++ sur le serveur Windows distant
  2. Modifier le service NSClient++
  3. Modifier le NSC.ini
  4. Démarrer le service NSClient++

III. 6 étapes de configuration sur le serveur de supervision nagios

  1. Vérifier la commande check_nt et le modèle de serveur Windows
  2. Décommentez windows.cfg dans /usr/local/nagios/etc/nagios.cfg
  3. Modifier /usr/local/nagios/etc/objects/windows.cfg
  4. Définissez les services Windows qui doivent être surveillés.
  5. Activer la protection par mot de passe
  6. Vérifiez la configuration et redémarrez Nagios.

Je. Présentation

.
Les trois étapes suivantes se produiront à un niveau très élevé lorsque Nagios (installé sur le serveur nagios) surveille un service (par exemple, l'utilisation de l'espace disque) sur l'hôte Windows distant.

  1. Nagios exécutera la commande check_nt sur nagios-server et lui demandera de surveiller l'utilisation du disque sur l'hôte Windows distant.
  2. Le check_nt sur le serveur nagios contactera le service NSClient++ sur l'hôte Windows distant et lui demandera d'exécuter USEDDISKSPACE sur l'hôte distant.
  3. Les résultats de la commande USEDDISKSPACE seront renvoyés par le démon NSClient++ au check_nt sur nagios-server.


Le flux suivant résume l'explication ci-dessus :

Serveur Nagios (check_nt) —–> Hôte distant (NSClient++) —–> USEDDISKSPACE
Serveur Nagios (check_nt) <—– Hôte distant (NSClient++) <—– USEDDISKSPACE (renvoie l'utilisation de l'espace disque)

II. 4 étapes pour configurer nagios sur un hôte Windows distant

.

1. Installez NSClient++ sur le serveur Windows distant

Téléchargez NSCP 0.3.1 (NSClient++-Win32-0.3.1.msi) à partir du projet NSClient++. NSClient++ est un service Windows open source qui permet à Nagios de collecter des mesures de performances pour les services Windows. Suivez les cinq étapes d'installation NSClient++ suivantes pour terminer l'installation.

(1) Écran de bienvenue NSClient++

(2) Écran du contrat de licence

(3) Sélectionnez l'option et l'emplacement d'installation . Utilisez l'option par défaut et cliquez sur suivant.



(4) Écran Prêt à installer . Cliquez sur Installer pour le démarrer.

(5) Écran Installation terminée .

2. Modifier le service NSClient++

Allez dans Panneau de configuration -> Outils d'administration -> Services. Double-cliquez sur le service "NSClientpp (Nagios) 0.3.1.14 2008-03-12 w32" et cochez la case "Autoriser le service à interagir avec le bureau" comme indiqué ci-dessous.

3. Modifier le NSC.ini

(1) Modifiez NSC.ini et décommentez *.dll : Modifiez le fichier C:\Program Files\NSClient++\NSC.ini et décommentez tout sous [modules] sauf RemoteConfiguration.dll et CheckWMI.dll

[modules]
;# NSCLIENT++ MODULES
;# A list with DLLs to load at startup.
;  You will need to enable some of these for NSClient++ to work.
; ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
; *                                                               *
; * N O T I C E ! ! ! - Y O U   H A V E   T O   E D I T   T H I S *
; *                                                               *
; ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
FileLogger.dll
CheckSystem.dll
CheckDisk.dll
NSClientListener.dll
NRPEListener.dll
SysTray.dll
CheckEventLog.dll
CheckHelpers.dll
;CheckWMI.dll
;
; RemoteConfiguration IS AN EXTREM EARLY IDEA SO DONT USE FOR PRODUCTION ENVIROMNEMTS!
;RemoteConfiguration.dll
; NSCA Agent is a new beta module use with care!
NSCAAgent.dll
; LUA script module used to write your own "check deamon" (sort of) early beta.
LUAScript.dll
; Script to check external scripts and/or internal aliases, early beta.
CheckExternalScripts.dll
; Check other hosts through NRPE extreme beta and probably a bit dangerous! :)
NRPEClient.dll


(2) Modifiez NSC.ini et décommentez allow_hosts. Modifiez le fichier C:\Program Files\NSClient++\NSC.ini et décommentez allow_host sous les paramètres et ajoutez l'adresse IP du serveur nagios.

;# ALLOWED HOST ADDRESSES
;  This is a comma-delimited list of IP address of hosts that are allowed to talk to the all daemons.
;  If leave this blank anyone can access the deamon remotly (NSClient still requires a valid password).
;  The syntax is host or ip/mask so 192.168.0.0/24 will allow anyone on that subnet access
allowed_hosts=192.168.1.2/255.255.255.0

Remarque : allow_host se trouve dans les sections [Settings], [NSClient] et [NRPE]. Assurez-vous de modifier allow_host sous [Settings] à cette fin.

(3) Modifiez NSC.ini et décommentez le port. Modifiez le fichier C:\Program Files\NSClient++\NSC.ini et décommentez le numéro de port sous la section [NSClient]

;# NSCLIENT PORT NUMBER
;  This is the port the NSClientListener.dll will listen to.
port=12489


(4) Modifiez NSC.ini et spécifiez le mot de passe. Vous pouvez également spécifier un mot de passe que le serveur nagios doit utiliser pour accéder à distance à l'agent NSClient++.

[Settings]
;# OBFUSCATED PASSWORD
;  This is the same as the password option but here you can store the password in an obfuscated manner.
;  *NOTICE* obfuscation is *NOT* the same as encryption, someone with access to this file can still figure out the
;  password. Its just a bit harder to do it at first glance.
;obfuscated_password=Jw0KAUUdXlAAUwASDAAB
;
;# PASSWORD
;  This is the password (-s) that is required to access NSClient remotely. If you leave this blank everyone will be able to access the daemon remotly.
password=My2Secure$Password

4. Démarrer le service NSClient++

Démarrez le service NSClient++ soit depuis le Panneau de configuration -> Outils d'administration -> Services -> Sélectionnez « NSClientpp (Nagios) 0.3.1.14 2008-03-12 w32 » et cliquez sur Démarrer (ou) Cliquez sur « Démarrer -> Tous les programmes -> NSClient++ -> Démarrer NSClient++ (Win32) . Veuillez noter que cela démarrera le NSClient++ en tant que service Windows.

Plus tard, si vous modifiez quoi que ce soit dans le fichier NSC.ini, vous devrez redémarrer le "NSClientpp (Nagios) 0.3.1.14 2008-03-12 w32" depuis le service Windows.

III. 6 étapes de configuration sur le serveur de supervision nagios

.

1. Vérifiez la commande check_nt et le modèle de serveur Windows

Vérifiez que le check_nt est activé sous /usr/local/nagios/etc/objects/commands.cfg

# 'check_nt' command definition
define command{
command_name    check_nt
command_line    $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$ $ARG2$
}


Vérifiez que le modèle windows-server est activé sous /usr/local/nagios/etc/objects/templates.cfg

# Windows host definition template - This is NOT a real host, just a template!
define host{
name                    windows-server  ; The name of this host template
use                     generic-host    ; Inherit default values from the generic-host template
check_period            24x7            ; By default, Windows servers are monitored round the clock
check_interval          5               ; Actively check the server every 5 minutes
retry_interval          1               ; Schedule host check retries at 1 minute intervals
max_check_attempts      10              ; Check each server 10 times (max)
check_command           check-host-alive        ; Default command to check if servers are "alive"
notification_period     24x7            ; Send notification out at any time - day or night
notification_interval   30              ; Resend notifications every 30 minutes
notification_options    d,r             ; Only send notifications for specific host states
contact_groups          admins          ; Notifications get sent to the admins by default
hostgroups              windows-servers ; Host groups that Windows servers should be a member of
register                0               ; DONT REGISTER THIS - ITS JUST A TEMPLATE
}

2. Décommentez windows.cfg dans /usr/local/nagios/etc/nagios.cfg

# Definitions for monitoring a Windows machine
cfg_file=/usr/local/nagios/etc/objects/windows.cfg

3. Modifier /usr/local/nagios/etc/objects/windows.cfg

Par défaut, un exemple de définition d'hôte pour un serveur Windows est donné sous windows.cfg, modifiez-le pour refléter le serveur Windows approprié qui doit être surveillé via nagios.

# Define a host for the Windows machine we'll be monitoring
# Change the host_name, alias, and address to fit your situation

define host{
use             windows-server              ; Inherit default values from a template
host_name   remote-windows-host      ; The name we're giving to this host
alias            Remote Windows Host     ; A longer name associated with the host
address       192.168.1.4                   ; IP address of the remote windows host
}

4. Définissez les services Windows qui doivent être surveillés.

Voici les services Windows par défaut qui sont déjà activés dans l'exemple windows.cfg. Assurez-vous de mettre à jour le host_name sur ces services pour refléter le host_name défini à l'étape ci-dessus.

define service{
use                     generic-service
host_name               remote-windows-host
service_description     NSClient++ Version
check_command           check_nt!CLIENTVERSION
}
define service{
use                     generic-service
host_name               remote-windows-host
service_description     Uptime
check_command           check_nt!UPTIME
}
define service{
use                     generic-service
host_name               remote-windows-host
service_description     CPU Load
check_command           check_nt!CPULOAD!-l 5,80,90
}
define service{
use                     generic-service
host_name               remote-windows-host
service_description     Memory Usage
check_command           check_nt!MEMUSE!-w 80 -c 90
}
define service{
use                     generic-service
host_name               remote-windows-host
service_description     C:\ Drive Space
check_command           check_nt!USEDDISKSPACE!-l c -w 80 -c 90
}
define service{
use                     generic-service
host_name               remote-windows-host
service_description     W3SVC
check_command           check_nt!SERVICESTATE!-d SHOWALL -l W3SVC
}
define service{
use                     generic-service
host_name               remote-windows-host
service_description     Explorer
check_command           check_nt!PROCSTATE!-d SHOWALL -l Explorer.exe
}

5. Activer la protection par mot de passe

Si vous avez spécifié un mot de passe dans le fichier NSC.ini du fichier de configuration NSClient++ sur la machine Windows, vous devrez modifier la définition de la commande check_nt pour inclure le mot de passe. Modifiez le fichier /usr/local/nagios/etc/commands.cfg et ajoutez le mot de passe comme indiqué ci-dessous.

define command{
command_name	check_nt
command_line	$USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -s My2Secure$Password -v $ARG1$ $ARG2$
}

6. Vérifiez la configuration et redémarrez Nagios.

Vérifiez les fichiers de configuration nagios comme indiqué ci-dessous.

[nagios-server]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Total Warnings: 0
Total Errors:   0

Things look okay - No serious problems were detected during the pre-flight check


Redémarrez nagios comme indiqué ci-dessous.

[nagios-server]# /etc/rc.d/init.d/nagios stop
Stopping nagios: .done.

[nagios-server]# /etc/rc.d/init.d/nagios start
Starting nagios: done.


Vérifiez l'état des différents services exécutés sur l'hôte Windows distant à partir de l'interface utilisateur Web de Nagios (http://nagios-server/nagios) comme indiqué ci-dessous.

Meilleur livre de Nagios

Livre électronique Nagios Core 3 – J'utilise Nagios depuis plusieurs années et je peux dormir paisiblement la nuit en sachant que Nagios surveille tous mes systèmes et m'avertit de tout problème potentiel, avant qu'il ne devienne critique. Je vous recommande fortement de lire l'ebook Nagios Core 3 pour acquérir une compréhension détaillée de Nagios. Puisque Nagios est un logiciel libre, dépenser quelques dollars sur le livre peut être le meilleur investissement que vous puissiez faire.

Des articles géniaux sur Nagios

Voici quelques articles Nagios géniaux qui pourraient vous être utiles.

  • Comment surveiller un hôte Linux distant à l'aide de Nagios 3
  • Comment surveiller le commutateur réseau et les ports à l'aide de Nagios
  • Guide de démarrage de Nagios 3 pour Linux – Présentation, installation et configuration

Linux
  1. Comment surveiller l'activité Ethernet sous Linux à l'aide d'Arpwatch

  2. Comment monter un partage Windows à distance sur Linux

  3. Comment effectuer un bureau à distance de Windows vers un bureau Linux à l'aide de XRDP

  4. Comment se connecter à une machine Windows distante à partir de Linux Lubuntu à l'aide de Remmina

  5. Utiliser la DLL Windows à partir de Linux

Comment surveiller les modifications de fichiers à l'aide de fswatch sous Linux

Comment surveiller la disponibilité du système Linux à l'aide d'Uptimed

Comment configurer le transfert X11 à l'aide de SSH sous Linux

Comment exécuter des applications Linux sur Windows 10 et 11 à l'aide de WSL

Comment effectuer une sauvegarde Linux à distance à l'aide de SSH

Comment surveiller une machine Linux via Nagios