Je vous présente un projet très récent de Romain sur son GitHub. Il s'agit d'un module indépendant permettant la découverte des équipements SNMP et de les ajouter à une plateforme Centreon à l'aide de Clapi. Le projet est jeune donc certainement perfectible mais néanmoins opérationnel. Je l'ai testé avec une ISO Centreon 19.04, et trois plateformes Debian 19.04, 20.04 et 20.10. L'installation est simple, seul point d'attention le port utilisé par Centreon pour fpm.
Update février 2021 : le projet avance bien, maintenant, il est possible de scanner les réseaux en tâche de fond avec une configuration prédéfinies. Open Centreon Discovery fonctionne sur une architecture distribuée. Autre nouveauté, un bouton "magie!" pour ajouter les templates automatiquement en fonction de l'OS détecté.
Update février 2021 : le projet avance bien, maintenant, il est possible de scanner les réseaux en tâche de fond avec une configuration prédéfinies. Open Centreon Discovery fonctionne sur une architecture distribuée. Autre nouveauté, un bouton "magie!" pour ajouter les templates automatiquement en fonction de l'OS détecté.
1 Installation du module
Le module est complètement indépendant de la plateforme Centreon. Nous allons créer un dossier discovery dans /usr/share.
mkdir /usr/share/discovery
On récupère le dépôt.
git clone https://github.com/romnvll/Open-Centreon-Discovery.git
1.1 Configuration Apache
Nous devons modifiez la configuration apache pour prendre en compte Open Centreon Discovery.
1.1a ISO Centreon
Créez la configuration avec le fichier /opt/rh/httpd24/root/etc/httpd/conf.d/discovery.conf.
########################################### Alias /discovery /usr/share/discovery/ <LocationMatch ^/discovery/(.*\.php(/.*)?)$> ProxyPassMatch fcgi://127.0.0.1:9043/usr/share/discovery/$1 </LocationMatch> ProxyTimeout 300 <Directory "/usr/share/discovery"> DirectoryIndex index.php Options Indexes AllowOverride all Order allow,deny Allow from all Require all granted <IfModule mod_php5.c> php_admin_value engine Off </IfModule> AddType text/plain hbs </Directory> RedirectMatch ^/$ /discovery ###########################################
Adaptez le port 904x en fonction de votre configuration, doit être identique au port utilisé par fpm. Relancez Apache.
systemctl restart httpd24-httpd
1.1b Debian
Créez la configuration avec le fichier /etc/apache2/conf-available/discovery.conf .
########################################### Alias /discovery /usr/share/discovery/ <LocationMatch ^/discovery/(.*\.php(/.*)?)$> ProxyPassMatch fcgi://127.0.0.1:9042/usr/share/discovery/$1 </LocationMatch> ProxyTimeout 300 <Directory "/usr/share/discovery"> DirectoryIndex index.php Options Indexes AllowOverride all Order allow,deny Allow from all Require all granted <IfModule mod_php5.c> php_admin_value engine Off </IfModule> AddType text/plain hbs </Directory> RedirectMatch ^/$ /discovery ###########################################
Adaptez le port 904x en fonction de votre configuration, doit être identique au port utilisé par fpm. Activez la configuration et relancez Apache.
a2enconf discovery systemctl reload apache2
1.2 Installation des fichiers
Copiez les fichiers dans le dossier /usr/share/discovery
cd Open-Centreon-Discovery cp -r * /usr/share/discovery
Pour utilisez la fonction scan en tâche de fond, modifiez les permissions du dossier.
CentOS chown -R apache: /usr/share/discovery Debian chown -R www-data: /usr/share/discovery
Le fichier config.php devra contenir un utilisateur et son mot passe autorisé à modifier la configuration avec l'API V1 Clapi. Vous indiquerez l'instance (poller) du Central de votre plateforme.
vi /usr/share/discovery/config.php
Adaptez le fichier à votre configuration.
//Vos identifiants centreon $config['centreon']['user'] = 'admin'; $config['centreon']['password'] = 'admin'; //chemin de clapi $config['centreon']['clapi'] = '/usr/share/centreon/bin/centreon';
2 Premier test
Pour la première découverte, j'utilise une plateforme Centreon 20.04 sous Debian créée avec mon installation automatisée. Open Centreon Discovery étant installé, connectons-nous à l'interface.
http://<IP Central>/discovery
Si vous obtenez une page blanche, c'est que votre utilisateur ou mot de passe ne fonctionne pas. Sinon, vous obtenez la page de la configuration de la découverte SNMP.
Actuellement, seul les protocoles V1 et V2c sont disponibles. Saisissez l'adresse de votre réseau sans oublier le masque et le nom de communauté SNMP. Nouveauté, à droite, un message indique qu'aucune tâche de recherche SNMP n'est effectuée.
Cliquez sur Scan. Au bout de quelques secondes, vous obtenez cette vue. Vous obtenez les hôtes non installés dans la plateforme Centreon.
L'affichage s'est améliorée. Le programme a découvert les équipements utilisés par la communauté public. Vous avez l'adresse IP et le Hostname de l'équipement. Le champ OS détecte certain système d'exploitation sinon le champ affiche Unknown.
Tout d'abord, il possible de pré-remplir le premier champ avec le bouton Magie!, il va appliquer le template associé à la détection d'OS. Cliquez sur le bouton "Magie!" et admirez le résultat.
Le premier champ est pré-rempli, il vous restera à appliquer des templates supplémentaires et d'appliquer le collecteur concerné.
Par défaut, ce bouton ne détecte pas beaucoup d'OS. Il faut alimenter le fichier /usr/share/discovery/js/autoTemplate.js en relation avec vos templates.
Cochez les hôtes à exporter dans la plateforme et Valider.
Deux solutions cliquez sur "Appliquer dans Centreon" pour ajouter les hôtes dans la configuration Centreon ou "Appliquer et redémarrer le moteur" pour appliquer directement la nouvelle configuration.
Installation réussie, il faudra vérifier le bon fonctionnement des services.
3 Utilisation de la découverte en tâche de fond
Grande nouveauté de cette version, l'utilisation de cron pour lancer des découvertes en tâche de fond. Utile pour découvrir une grande quantité d'équipements ou de découvrir des équipements avec des noms de communauté différents. Pour ajouter les réseaux, modifiez le fichier de configuration /usr/share/discovery/config.php.
//pour le scan BackGround //activation du scan backGround pour les /16 et plus : true or false $config['backGroundScanUse'] = true ; //chemin de l'executable scanBackGround $config['backGroundRoot'] = '/usr/share/discovery'; $config['backGroundScan'][0] = array("network" => "192.168.1.0/24", "community"=>"public", "version"=>"2" ); $config['backGroundScan'][1] = array("network" => "192.168.1.0/24", "community"=>"macommunaute", "version"=>"2" );
La fonctionnalité scanBackGround est activé par défaut. Le dossier de stockage du fichier resultScan est défini par la variable $config['backGroundRoot']. Les droits du dossier doivent permettre d'écrire le fichier pour la tâche de fond et de lire pour l'application Web.
La configuration des scans de réseau se fait grâce au tableau $config['backGroundScan']. Ajouter un indice pour chaque réseau. Les propriétés utilisées sont l'adresse réseau, le nom de communauté et la version SNMP. Il faudra créer le fichier cron OpenCentreonDiscovery dans le dossier /etc/cron.d
La configuration des scans de réseau se fait grâce au tableau $config['backGroundScan']. Ajouter un indice pour chaque réseau. Les propriétés utilisées sont l'adresse réseau, le nom de communauté et la version SNMP. Il faudra créer le fichier cron OpenCentreonDiscovery dans le dossier /etc/cron.d
CentOS */30 * * * * apache /opt/rh/rh-php72/root/bin/php -q /usr/share/discovery/backGroundScan.php Debian */30 * * * * www-data /usr/bin/php -q /usr/share/discovery/backGroundScan.php
Avec cette configuration, le réseau sera scanné toutes les demi-heures. Après l'activation du scan en tâche de fond, un fichier ResultScan sera créé et vous obtiendrez ceci.
Cliquez sur GO pour avoir la vue suivante.
Il vous reste à ajouter les hôtes dans votre plateforme Centreon.
Cet article est terminé mais je ne doute pas que ce module va s'améliorer au fil du temps. Merci à Romain pour avoir partagé son travail.