
Nous allons découvrir dans ce tutoriel, le moyen de découvrir automatiquement les lecteurs de disque (unité logique windows) des serveurs Windows avec NSClient. Pour cela nous aurons besoin du module auto-discovery de Centreon, des plugins pack et du plugin nrpe. Cette solution fonctionne avec les version 20.10 et 21.04.
1 - Prérequis
Pour tester le fonctionnement de cette découverte, nous aurons besoin d'une plateforme Centreon, au minimum IT Edition, pour activer le module auto-discovery. Il nous faudra aussi un serveur Windows, au minimum 2008 R2, équipé de l'agent NSClient adapté par Centreon.
1.1 - Module Auto-discovery
Pour activer le module Auto-discovery, il vous faudra une plateforme Centreon réalisée avec l'ISO ou les repo Centreon sur CentOS, RED-HAT ou Oracle Linux. Vous devez, au minimum, vous enregistrer chez Centreon pour obtenir votre token pour l'édition IT.

Vérification du token sur la plateforme
En sélectionnant le menu Administration -> Extensions -> Manager, vous pouvez vérifier l'activation du module Auto Dicovery et du module Plugin Pack Manager.

Vérification des modules
1.2 - Plugin Packs
Activez au minimum, les plugins-pack suivants indiqués en rouge sur l'écran ci-dessous.

Plugin pack installés
1.3 - NRPE
Il faut installer le plugin NRPE, vous avec le choix entre la version 2 et la version 3. Certaines DSI interdisent la version 2 moins sécurisée. Si vous optez pour la version 3, il faudra faire des adaptations pour les templates d'hôtes.
yum install centreon-nrpe-plugin centreon-nrpe3-plugin -y
Les plugins NRPE s'installent dans le dossier /usr/lib/nagios/plugins mais les templates Centreon fonctionne avec la macro ressource $USER1$ qui pointe vers /usr/lib64/nagios/plugins. Heureusement, il existe une commande bien pratique, les liens symboliques ! Lançons les commandes suivantes pour réaliser un lien en le dossier /usr/lib64/nagios/plugins et les exécutables se trouvant dans /usr/lib/nagios/plugins.
ln -s /usr/lib/nagios/plugins/check_centreon_nrpe /usr/lib64/nagios/plugins/check_centreon_nrpe ln -s /usr/lib/nagios/plugins/check_centreon_nrpe3 /usr/lib64/nagios/plugins/check_centreon_nrpe3

Il existe seulement la version 3.2.1 de NRPE package par Centreon et la version 4.0.3 de Nagios
dnf install -y nagios-plugins-nrpe centreon-nrpe3-plugin
Les paquets installés
rpm -qa | grep nrpe
nagios-plugins-nrpe-4.0.3-6.el8.x86_64
centreon-nrpe3-plugin-3.2.1-9.el8.x86_64
les deux fichiers se trouvent directement dans le bon dossier
/usr/lib64/nagios/plugins/check_centreon_nrpe3
/usr/lib64/nagios/plugins/check_nrpe
La version 2 n'existe plus.
1.4 - NSClient
Les serveurs Windows devront être équipé de l'agent NSClient préparé par Centreon. Vous pouvez l'obtenir en cliquant sur l'aide du plugin pack Windows NRPE. Il y a un lien prévu pour télécharger la version 32 bits et 64 bits.

Aide du plugin
Une fois l'installation de l'agent NSClient installé, vous devriez avoir cette configuration avec l'executable centreon_plugins.exe contenant les plugins Centreon.

Installation de l'agent NSClient
2 - Configuration
2.1 - Commandes de découverte
Commençons par les commandes de découverte.
2.1a - Découverte des macros
Nous allons créer la commande OS-Windows-NSClient05-Disks-NRPE-macro. Cette commande permet de récupérer les attributs permettant le fonctionnement de la règle de découverte. Le plugin centreon utilisé n'existant pas sur le Central, nous prendrons un serveur Windows de référence (IP 192.168.1.234) avec la commande suivante :
/usr/lib64/nagios/plugins/check_centreon_nrpe -H 192.168.1.234 -p 5666 -t 30 -u -m 8192 -c check_centreon_plugins -a 'os::windows::local::plugin' 'list-storages' ' --disco-format' <?xml version="1.0" encoding="utf-8"?> <data> <element>name</element> <element>size</element> <element>free</element> <element>type</element> <element>desc</element> </data>nrpe ln -s /usr/lib/nagios/plugins/check_centreon_nrpe3 /usr/lib64/nagios/plugins/check_centreon_nrpe3

Il faudra adapter la commande pour la rendre compatible avec la version 3 avec cette commande
/usr/lib64/nagios/plugins/check_centreon_nrpe3 -H 192.168.1.234 -p 5666 -t 30 -u -2 -P 8192 -c check_centreon_plugins -a 'os::windows::local::plugin' 'list-storages' ' --disco-format'
Adaptez les exemples suivants en conséquence.
Sélectionnons le menu Configuration > Commands > Discovery et ajoutons la commande OS-Windows-NSClient05-Disks-NRPE-macro

Commande OS-Windows-NSClient05-Disks-NRPE-macro
Ligne de commande
$USER1$/check_centreon_nrpe -H 192.168.1.234 -p 5666 -t 30 -u -m 8192 -c check_centreon_plugins -a 'os::windows::local::plugin' 'list-storages' ' --disco-format'
2.1b - Découverte des lecteurs de disque
Nous allons créer la commande OS-Windows-NSClient05-Disks-NRPE-discover. Cette commande permet de récupérer les lecteurs de disque en utilisant la règle de découverte en passant par l'agent NSClient. Sélectionnons le menu Configuration > Commands > Discovery et ajoutons la commande OS-Windows-NSClient05-Disks-NRPE-discover.

Commande OS-Windows-NSClient05-Disks-NRPE-discover
Ligne de commande
$USER1$/$_HOSTNRPECLIENT$ -H $HOSTADDRESS$ -p $_HOSTNRPEPORT$ -t $_HOSTNRPETIMEOUT$ $_HOSTNRPEEXTRAOPTIONS$ -c check_centreon_plugins -a 'os::windows::local::plugin' 'list-storages' ' --disco-show'
2.2 - Règle de découverte
Nous allons créer la règle de découverte OS-Windows-NRPE-Disk-Name. Cette commande permet de récupérer les lecteurs de disque en utilisant cette règle pour ajouter les services à un hôte. Sélectionnons le menu Configuration > Services > Rules et ajoutons la règle OS-Windows-NRPE-Disk-Name.

Règle OS-Windows-NRPE-Disk-Name
Il faut ajouter les paramètres obligatoires suivants :
Rule Name : OS-Windows-NRPE-Disk-Name
Command Macro : OS-Windows-NSClient05-Disks-NRPE-macro
Command Discover : OS-Windows-NSClient05-Disks-NRPE-discover
Service Template : OS-Windows-NSClient05-Disks-NRPE-custom
Service display name : Disk-$name$
Host Template : OS-Windows-NSClient05-NRPE-custom
Désactivez la règle pour éviter quelle soit appliquer automatiquement par Centreon-Gorgone.
Rule Name : OS-Windows-NRPE-Disk-Name
Command Macro : OS-Windows-NSClient05-Disks-NRPE-macro
Command Discover : OS-Windows-NSClient05-Disks-NRPE-discover
Service Template : OS-Windows-NSClient05-Disks-NRPE-custom
Service display name : Disk-$name$
Host Template : OS-Windows-NSClient05-NRPE-custom
Désactivez la règle pour éviter quelle soit appliquer automatiquement par Centreon-Gorgone.
2.2a - Onglet Inclusions / Exclusions & Macros
Il faut inclure le caractère du lecteur de disque à la macro DRIVE en utilisant la macro de règle $name$ et on exclura les lecteurs optiques identifié par compactDisc avec la macro $type$.

Inclusions et Exclusions
Il faut ajouter les paramètres suivants :
Exclusion : $type$ -> compactDisc
Insertion Macro dans le service : DRIVE -> $name$
Exclusion : $type$ -> compactDisc
Insertion Macro dans le service : DRIVE -> $name$

Vous pouvez aussi exclure les lecteurs de disquette.
Exclusion : $type$ -> removableDisk

2.2b - Onglet Advanced
L'option la plus délicate à comprendre, la modification des macros. Les noms des lecteurs peuvent comporter le caractère : posant problème lors de l'insertion des services. Avec une règle regex, on peut supprimer ce caractère.

Options avancées
Il faut ajouter les modificateurs suivants
@SERVICENAME@ : ^Disk-(.).* -> Disk-$1
$name$ : ^(.).* -> $1
$1 est le résultat de la regex
@SERVICENAME@ : ^Disk-(.).* -> Disk-$1
$name$ : ^(.).* -> $1
$1 est le résultat de la regex
3 - Fonctionnement
Voici un exemple de fonctionnement sur un serveur Windows 2016.
3.1 - Scan Manuel
Pour effectuer un scan manuel, votre hôte doit être configuré avec le bon template d'hôte.

exemple avec l'hôte win01ad
Sélectionnez Configuration > Services > Scan. Saisissez le nom de l'hôte et choisissez la règle OS-Windows-NRPE-Disk-Name. Cliquez sur scan.

scan manuel
Les lecteurs de disque sont découverts. Il suffit de cocher le ou les lecteurs de disque puis cliquer sur Save pour ajouter ces services unitaires.

Découverte des lecteur de disque
On peut vérifier la cohérence par rapport au serveur. Le lecteur optique et le lecteur réseau ne sont pas ajoutés.

Les lecteurs côté Windows
3.2 - Vérification de l'ajout des services
Vérification de l'ajout des services unitaires au serveur Win01AD.

Ajout des services à l'hôte Win01AD
La macro DRIVE est bien configurée avec un seul caractère, celui du lecteur de disque.

Configuration d'un service
3.3 - Vérification du fonctionnement des services
Après application de la configuration, on peut admirer le résultat. L'ajout des services sur les autres services fonctionne à condition que le serveur de référence est en fonctionnement.

Les services sont opérationnels
Ce tuto n'est pas complètement terminé, il nous reste à découvrir le troubleshooting, la découverte automatique et la création d'un agent NSClient personnalisé. Mais cela est une autre histoire 😉