Les module protocols correspondent à la supervision des principaux protocoles de communication tels que le FTP, le DHCP, le DNS ou tout autre standard connu. Nous commencerons à explorer le protocole FTP avec la création de cet article.
1 Introduction
Pour commencer, nous découvrirons tous les protocoles disponibles avec les plugins Centreon. Nous partirons du principe que le dossier d'installation des plugins Centreon est /usr/lib/centreon/plugins.
./centreon_plugins.pl --list-plugin |grep protocols PLUGIN: apps::protocols::dhcp::plugin PLUGIN: apps::protocols::ntp::plugin PLUGIN: apps::protocols::modbus::plugin PLUGIN: apps::protocols::dns::plugin PLUGIN: apps::protocols::radius::plugin PLUGIN: apps::protocols::ldap::plugin PLUGIN: apps::protocols::jmx::plugin PLUGIN: apps::protocols::imap::plugin PLUGIN: apps::protocols::tcp::plugin PLUGIN: apps::protocols::telnet::plugin PLUGIN: apps::protocols::udp::plugin PLUGIN: apps::protocols::ssh::plugin PLUGIN: apps::protocols::ospf::snmp::plugin PLUGIN: apps::protocols::smtp::plugin PLUGIN: apps::protocols::ftp::plugin PLUGIN: apps::protocols::x509::plugin PLUGIN: apps::protocols::bgp::4::plugin PLUGIN: apps::protocols::http::plugin
2 Le module apps::protocols::ftp::plugin
Ce module va nous permettre de superviser un serveur ftp.
2.1 Découverte du plugin
Voici les principaux modes de supervision de ce plugin.
./centreon_plugins.pl --plugin=apps::protocols::ftp::plugin --list-mode
.... Modes Available: commands date filescount login
Quatre modes sont disponibles.
-
commands
- Ce mode permet d'envoyer des commandes ftp afin de tester le service ftp. Voici une liste des commandes pouvant être utilisées : binary, ascii, cwd, rmdir, mkdir, ls, rename, delete, get, put.
Ci-dessous un exemple de création, suppression d'un dossier sur un serveur FTP../centreon_plugins.pl --plugin=apps::protocols::ftp::plugin --mode=commands --hostname=192.168.0.100 --username=user1 --password=motdepasse --ftp-command="mkdir,/homes/user1/dirtest rmdir,/homes/user1/dirtest" OK: Response time 0.422 | 'time'=0.422;;;;
-
date
- Ce mode permet de vérifier la date des fichiers dans un serveur ftp. le résultat de la donnée de performances retourne la date du fichier en seconde par rapport à la date de vérification. On peut retrouver la date exacte du fichier avec la formule suivante :
Ci-dessous un exemple de création, suppression d'un dossier sur un serveur FTP.date -d @$((`date +%s` - valeur de la donnée de performances))
Ci-dessous un exemple de vérification../centreon_plugins.pl --plugin=apps::protocols::ftp::plugin --mode=date --hostname=192.168.0.100 --username=user1 --password=motdepasse --directory=/homes/user1/xen.pdf -help OK: All file times are ok. | '/homes/user1/xen.pdf'=107724s;;;;
-
filescount
- Ce mode permet de vérifier le nombre de fichiers dans un serveur ftp. L'option max-depth permet de lister les sous-dossiers.
Ci-dessous un exemple vérification./usr/lib/centreon/plugins# ./centreon_plugins.pl --plugin=apps::protocols::ftp::plugin --mode=filescount --hostname=172.16.209.80 --username=vmdebian --password=motdepasse --directory=/home/vmdebian --max-depth=2 OK: Number of files : 35 | 'files'=35;;;0;
-
login
- Ce mode permet de vérifier le bon fonctionnement du serveur ftp.
Ci-dessous un exemple vérification../centreon_plugins.pl --plugin=apps::protocols::ftp::plugin --mode=login --hostname=192.168.0.100 --username=user1 --password=motdepasse OK: Response time 0.378 | 'time'=0.378;;;;
2.1 FTP sécurisé
Si vous utilisez un FTP sécurisé, il faudra utiliser l'option ssl. Pour la distribution Centreon, vous n'aurez pas de problème pour son utilisation.
./centreon_protocol_ftp.pl --plugin=apps::protocols::ftp::plugin --mode=login --hostname=192.168.0.80 --username=vmdebian --password=motdepasse --ssl OK: Response time 12.640 | 'time'=12.640;;;;
Mais cela se complique pour Debian. Lors de l'utilisation du plugin, vous aurez droit à un message d'erreur à moins d'avoir installé la bonne librairie Net::FTPSSL. Actuellement, je n'ai pas encore trouvé la solution pour la version 8 de Debian.
./centreon_plugins.pl --plugin=apps::protocols::ftp::plugin --mode=filescount --hostname=172.16.209.80 --username=vmdebian --password=motdepasse --directory=/home/vmdebian --max-depth=2 --ssl UNKNOWN: Cannot load module 'Net::FTPSSL'. Can't locate Net/FTPSSL.pm in @INC (you may need to install the Net::FTPSSL module) (@INC contains: /usr/lib/centreon/plugins /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.20.2 /usr/local/share/perl/5.20.2 /usr/lib/x86_64-linux-gnu/perl5/5.20 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.20 /usr/share/perl/5.20 /usr/local/lib/site_perl .) at /usr/lib/centreon/plugins/centreon/plugins/misc.pm line 221.
3 Le module apps::protocols::ldap::plugin
Ce module va nous permettre de superviser un service ldap comme l'active directory de Windows.
3.1 Découverte du plugin
./centreon_plugins.pl --plugin=apps::protocols::ldap::plugin --list-mode
.... Modes Available: login search
Deux modes sont disponibles. Par exemple pour superviser un AD Windows, vous aurez besoin d'un utilisateur capable de lire l'annuaire avec son nom DN. Pour trouver le DN facilement, activez les fonctionnalités avancées du composant enfichable Utiliser et Ordinateur Active Directory. Cliquez sur les propriétés de l'objet désiré et affichez l'onglet Editeur d'attributs.
-
login
- Ce mode permet de vérifier le temps de connexion d'un serveur ldap. Les seuils warning et critical s'exprime en secondes.
./centreon_plugins.pl --plugin=apps::protocols::ldap::plugin --mode=login --hostname=192.168.0.175 --username="cn=Administrateur,CN=Users,DC=centreon,DC=mydomain" --password="motdepasse" --warning=0.5 --critical=1 OK: Response time 0.012 second(s) | 'time'=0.012s;0:0.5;0:1;;
-
search
- Ce mode permet de vérifier le nombre d'objets dans une arborescence particulière de l'annuaire. Les seuils warning et critical s'exprime en nombre d'objets.
./centreon_plugins.pl --plugin=apps::protocols::ldap::plugin --mode=search --hostname=192.168.0.175 --username="cn=Administrateur,CN=Users,DC=centreon,DC=mydomain" --password="motdepasse" --search-base='DC=centreon,DC=mydomain' --search-filter='(objectclass=organizationalunit)' --warning=5 --critical=10 WARNING: Number of results returned: 7 | 'time'=0.057s;;;0; 'entries'=7;0:5;0:10;0;