Chapitre 10. Supervision des machines Windows

Ce document décrit la façon dont vous pouvez superviser les attributs et services privés de machines Windows comme:

  • Utilisation mémoire

  • Charge CPU

  • Utilisation disque

  • État des services

  • Processus en cours d'exécution

  • etc.

Introduction

Les services rendus publics qui sont fournis par des machines Windows (HTTP, FTP, POP3, etc.) peuvent être supervisés de façon simple en suivant la documentation sur la supervision des services publics disponibles .

Ces instructions impliquent que vous ayez installé Nagios comme précisé dans le guide rapide. Les exemples de configuration ci-dessous font référence aux objets de configuration définis dans les fichiers d'exemples (commands.cfg, templates.cfg, etc.) qui ont été installé si vous avez suivi le guide rapide.

Vue globale

Monitoring Windows

Superviser des attributs et services privés sur une machine Windows requiert l'installation d'un agent sur celle-ci. Cet agent agit comme un proxy entre les plugins Nagios qui font la supervision et le service ou l'attribut sur la machine Windows. Sans installation d'agent sur la machine Windows, Nagios serait incapable de superviser le moindre attributs ou services privés de la machine Windows.

Pour cet exemple, nous allons installer l'addon NSClient++ sur la machine Windows et utiliser le plugin check_nt pour communiquer avec NSCLient++. Le plugin check_nt devrait déjà être installé sur le serveur Nagios si vous avez suivi le guide d'installation rapide.

Vous pouvez utiliser d'autres agents Windows (comme NC_Net) si vous le souhaitez - à condition de changer un peu les commandes et les définitions de services, etc. Pour faire simple, je ne couvrirais que l'utilisation de NSCLient++ dans ces instructions.

Étapes

Il y a plusieurs étapes à suivre pour pouvoir superviser une nouvelle machine Windows. Les voici:

  1. Procéder aux pré-requis nécessaires la première fois

  2. Installez un agent de supervision sur la machine Windows

  3. Créez de nouvelles définitions d'hôte et de service pour superviser la machine Windows

  4. Redémarrez le démon Nagios

Ce qui est déjà fait pour vous

Pour vous rendre la vie un peu plus facile, quelques tâches de configuration ont déjà été faites pour vous :

  • Une définition de commande check_nt a été ajouté au fichier commands.cfg. Cela permet d'utiliser le plugin check_nt pour superviser les services Windows.

  • Un gabarit d'hôte serveur Windows (appelé windows-server) a déjà été créé dans le fichier templates.cfg. Cela permet d'ajouter de nouvelles définitions d'hôtes Windows de façon simple.

Les fichiers de configuration mentionnés ci-dessus peuvent être trouvés dans le répertoire /usr/local/nagios/etc/objects/. Vous pouvez modifier les définitions de ceux-ci ou en créez de nouvelles pour répondre le mieux à votre besoin. Quoi qu'il en soit, je vous recommande d'attendre d'avoir une meilleure connaissance de la configuration de Nagios avant de le faire. Pour le moment, contentez-vous de suivre les directions précisées ci-dessous et vous pourrez superviser vos machines Windows en un rien de temps.

Pré-requis

La première fois que vous configurez Nagios pour superviser une machine Windows, vous avez un peu plus de travail à faire. Souvenez-vous, vous n'avez à le faire que pour la *première* machine Windows à superviser.

Éditez le fichier de configuration principal de Nagios.

#vi /usr/local/nagios/etc/nagios.cfg
        

Supprimez le caractère (#) du début de la ligne suivante du fichier de configuration principal :

#cfg_file=/usr/local/nagios/etc/objects/windows.cfg

Enregistrez le fichier et quittez.

Qu'avez-vous fait? Vous avez dit à Nagios de regarder dans le fichier /usr/local/nagios/etc/objects/windows.cfg pour y trouver des définitions d'objets additionnels. C'est là que vous ajouterez des définitions pour l'hôte Windows. Ce fichier de configuration contient déjà un exemple de définitions d'hôte, de groupe d'hôtes et de service. Pour la *première* machine Windows que vous supervisez, vous pouvez simplement modifier les définitions d'exemples d'hôte et de service dans ce fichier plutôt que d'en créer de nouvelles.

Installation de l'agent Windows

Avant de pouvoir superviser les attributs et services privés des machines Windows, vous allez devoir installer un agent sur ces machines. Je recommande l'utilisation de l'addon NSClient++, qui peut être trouvé sur http://sourceforge.net/projects/nscplus. Ces instructions vont vous guider au cours d'une installation simple de NSClient++ ainsi que pour la configuration de Nagios pour superviser une machine Windows.

  1. Téléchargez la dernière version stable de NSClient++ depuis http://sourceforge.net/projects/nscplus

  2. Dézippez les fichiers de NSClient++ dans un nouveau répertoire C:\NSClient++

  3. Ouvrez une fenêtre de commande et déplacez-vous dans le répertoire C:\NSClient++

  4. Installez le service système NSClient++ avec la commande suivante:

    C:\> nsclient++ /install
                    
    
  5. Installez le module NSClient++ pour la barre des tâches avec la commande suivante ('SysTray' est sensible à la casse):

    C:\> nsclient++ SysTray
                    
    
  6. Ouvrez le gestionnaire des services et assurez-vous que le service NSClientpp est autorisé à interagir avec le bureau (regardez sous l'onglet 'Log On' du gestionnaire de services). Cochez la case correspondante si ce n'est déjà fait.

    NCSClient++
  7. Éditez le fichier NSC.INI (situé dans le répertoire C:\NSClient++) et effectuez les changements suivants:

    • Décommentez tous les modules listés dans la section [modules], exceptés CheckWMI.dll et RemoteConfiguration.dll

    • Exigez optionnellement un mot de passe des clients en remplaçant l'option password dans la section [Settings].

    • Décommentez l'option allowed_hosts dans la section [Settings]. Ajoutez l'adresse IP du serveur Nagios à cette ligne, ou laisser vide pour autoriser n'importe quel hôte à se connecter.

    • Assurez-vous que l'option port dans la section [NSClient] soit décommentée et réglée sur '12489' (le port par défaut).

  8. Démarrez le service NSClient++ avec la commande suivante:

    C:\> nsclient++ /start
                    
    
  9. Si l'installation est correcte, une nouvelle icône devrait apparaître dans votre barre des tâches. Ce sera un cercle jaune avec un 'M' noir à l'intérieur.

  10. Bravo! Le serveur Windows peut désormais être ajouté à la configuration de Nagios…

Configuration de Nagios

Il est temps maintenant de définir quelques définitions d'objets dans vos fichiers de configuration Nagios pour pouvoir superviser la nouvelle machine Windows.

Ouvrez le fichier windows.cfg pour édition.

#vi /usr/local/nagios/etc/objects/windows.cfg
        

Ajouter une nouvelle définition d'hôte pour la machine Windows que vous souhaitez superviser. Si c'est la *première* que vous supervisez, vous pouvez simplement modifier l'exemple de définition d'hôte dans windows.cfg. Remplacez les champs host_name, alias, et address par les valeurs appropriées pour votre machine Windows.

define host {
    use          windows-server ; Inherit default values from a Windows server template (make sure you keep this line!)
    host_name    winserver
    alias        My Windows Server
    address      192.168.1.2
}
        

Bien. Maintenant vous pouvez ajouter quelques définitions de services (dans le même fichier de configuration) pour indiquer à Nagios de superviser différents aspects de la machine Windows. Si c'est votre *première* machine Windows, vous pouvez simplement modifier les définitions exemples de services dans windows.cfg.

Remplacez winserver dans les définitions d'exemples ci-dessous par le nom que vous avez précisé dans le paramètre de la définition de l'hôte que vous venez d'ajouter.

Ajoutez la définition de service suivante pour contrôler la version du addon NSClient++ tournant sur le serveur Windows. Cela devient utile quand il s'agit de mettre à jour des serveurs Windows vers une nouvelle version du addon, en vous permettant de déterminer quelles sont les machines Windows nécessitant une mise à jour vers la dernière version de NSClient++.

define service {
    use                 generic-service
    host_name           winserver
    service_description NSClient++ Version
    check_command       check_nt!CLIENTVERSION
}
        

Ajoutez la définition de service suivante pour superviser le temps écoulé depuis le dernier re/démarrage du serveur Windows.

define service {
    use                 generic-service
    host_name           winserver
    service_description Uptime
    check_command       check_nt!UPTIME
}
        

Ajoutez la définition de service suivante pour superviser la charge CPU du serveur Windows et générer une alerte CRITICAL si la charge CPU des 5 dernières minutes est égale à 90% ou plus ou une alerte WARNING si la charge CPU des 5 dernières minutes est égale à 80% ou plus.

define service {
    use                 generic-service
    host_name           winserver
    service_description CPU Load
    check_command       check_nt!CPULOAD!-l 5,80,90
}
        

Ajoutez la définition de service suivante pour superviser l'utilisation de la mémoire du serveur Windows et générer une alerte CRITICAL si l'utilisation de la mémoire est égale à 90% ou plus ou une alerte WARNING si l'utilisation de la mémoire est égale à 80% ou plus.

define service {
    use                 generic-service
    host_name           winserver
    service_description Memory Usage
    check_command       check_nt!MEMUSE!-w 80 -c 90
}
        

Ajoutez la définition de service suivante pour superviser l'espace utilisé du disque C:\ du serveur Windows et générer une alerte CRITICAL si l'espace utilisé du disque est égale à 90% ou plus ou une alerte WARNING si l'espace utilisé du disque est égale à 80% ou plus.

define service {
    use                 generic-service
    host_name           winserver
    service_description C:\ Drive Space
    check_command       check_nt!USEDDISKSPACE!-l c -w 80 -c 90
}
        

Ajoutez la définition de service suivante pour superviser l'état du service W3SVC et générer une alerte CRITICAL si ce service est arrêté.

define service {
    use                 generic-service
    host_name           winserver
    service_description W3SVC
    check_command       check_nt!SERVICESTATE!-d SHOWALL -l W3SVC
}
        

Ajoutez la définition de service suivante pour superviser l'état du processus Explorer.exe et générer une alerte CRITICAL si ce processus ne tourne pas.

define service {
    use                 generic-service
    host_name           winserver
    service_description Explorer
    check_command       check_nt!PROCSTATE!-d SHOWALL -l Explorer.exe
}
        

Voilà pour le moment. Vous avez ajouté des services simples qui devraient être supervisés sur les machines Windows. Enregistrez le fichier de configuration.

Protection par mot de passe

Si vous avez précisé un mot de passe dans le fichier de configuration de NSClient++ de la machine Windows, vous aurez besoin de modifier la définition de commande check_nt pour inclure le mot de passe. Ouvrez le fichier commands.cfg pour édition.

#vi /usr/local/nagios/etc/commands.cfg
        

Modifiez la définition de la commande check_nt pour inclure l'argument -s <PASSWORD> (où PASSWORD est le mot de passe précisé sur la machine Windows) comme suit:

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

Enregistrez le fichier de configuration.

Redémarrage de Nagios

Vous en avez terminé avec la configuration de Nagios, et vous allez devoir vérifier les fichiers de configuration et redémarrer Nagios .

Si le processus de vérification produit n'importe quel message d'erreur, réglez d'abord vos problèmes de configuration avant de continuer. Assurez-vous de ne pas redémarrer Nagios avant que le processus de vérification ne se déroule sans erreur!