Vous êtes ici:

Menu


Stacks Image 28744
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é.

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
Stacks Image 42928
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.
Stacks Image 942151
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.
Stacks Image 942154
Cliquez sur Scan. Au bout de quelques secondes, vous obtenez cette vue. Vous obtenez les hôtes non installés dans la plateforme Centreon.
Stacks Image 942159
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.
Stacks Image 942169
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.
Stacks Image 942164
Le premier champ est pré-rempli, il vous restera à appliquer des templates supplémentaires et d'appliquer le collecteur concerné.
Stacks Image 942204
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.
Stacks Image 942209
Cochez les hôtes à exporter dans la plateforme et Valider.
Stacks Image 942214
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.
Stacks Image 942174
Vue configuration des hôtes
Stacks Image 942219
Vue Temps réel
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
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.
Stacks Image 942234
Cliquez sur GO pour avoir la vue suivante.
Stacks Image 942239
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.
comments powered by Disqus
 Vous êtes ici:

Nous utilisons des cookies pour nous permettre de mieux comprendre comment le site est utilisé. En continuant à utiliser ce site, vous acceptez cette politique.