Présentation
Open Centreon Discover est un module indépendant de Centreon qui permet de faire l'autodiscover des équipements SNMP, de les ajouter à la plateforme Centreon à l'aide de la CLAPI.
OCD permet également un scan des réseaux en tâche de fond, et cerise sur la gateau, il est possible d'affecter automatiquement les templates en fonction de l'OS détecté.
Source: L'atelier de Kermith et Github du créateur
Installation
Téléchargement du module
Créer un dossier:
mkdir /usr/share/discovery
Récupérer le dépôt:
git clone https://github.com/romnvll/Open-Centreon-Discovery.git
Configuration d'Apache
Pour qu'Apache reconnaisse OCD, il faut créer le fichier de configuration:
vim /etc/apache2/conf-available/discovery.conf
Copiez ces lignes dans le fichier:
###########################################
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
###########################################
En fonction de votre configuration vous devrez modifier le port d'écoute de php-fpm (904x). Pour savoir quel port est utilisé:
netstat -paunt | grep php
Redémarrez Apache:
a2enmod discovery
systemctl restart apache2
Installation des fichiers
Déplacez vous dans le dossier téléchargé au préalable et copiez les fichiers dans son répertoire dédié:
cd Open-Centreon-Discovery
cp -r * /usr/share/discovery
Pour que le scan en tâche de fond puisse être réalisé, Apache nécessite les permissions sur ce dossier:
chown -R www-data: /usr/share/discovery
Modifiez le fichier de configuration d'OCD. Un fichier d'exemple de configuration existe déjà, je vous suggère de l'utiliser (vous pouvez utiliser le fichier d'exemple déjà présent mais il faudra le renommer):
mv /usr/share/discovery/config.{php.example,php}
vim /usr/share/discovery/config.php
Placez y le login/password d'un utilisateur ayant les droits de modification avec CLAPI, ainsi que le chemin de CLAPI (admin
dispose des droits, mais vous pouvez créer un utilisateur de service dédié à cela) :
//Vos identifiants centreon
$config['centreon']['user'] = 'user';
$config['centreon']['password'] = 'password';
//chemin de clapi
$config['centreon']['clapi'] = '/usr/share/centreon/bin/centreon';
Scanner manuellement le réseau
Connexion à l'interface du module
Connectez vous à l'interface web d'OCD avec l'url http://ip-centreon-central/discovery
avec l'utilisateur que vous avez déclaré dans le fichier config.php
Vous arriverez alors sur la page suivante:
Si à ce moment vous tombez sur une page blanche, il se peut que vos identifiants soient incorrects.
La découverte SNMP avec ce module ne prend en charge que la v1 et la v2c.
Nous reviendrons plus tard sur le message concernant le scan en tâche de fond.
Configuration du réseau à scanner
Pour lancer votre premier scan afin de trouver des hôtes qui ne seraient pas intégrés à votre plateforme Centreon, vous devez entrer manuellement les informations nécessaires au scan: le réseau, la communauté snmp, la version et le timeout.
Une fois ces paramètres rentrés, cliquez sur le bouton Scan.
Le réseau
Il s'agit du sous-réseau en notation CIDR sur lequel vous voulez détecter des hôtes.
La communauté
Il n'est pas forcément nécessaire de configurer le fichier de configuration snmpd.conf si vous utilisez la communauté public
avec ses paramètres par défaut, mais dans le cas où vous souhaiteriez utiliser une communauté personnalisé avec vos propres vues et ouvertures de MIB, petit rappel :
Déplacez le fichier de conf par défaut et créez le votre:
mv /etc/snmp/snmpd.{conf,conf.default}
Il est toujours utile de garder de côté ce fichier par défaut.
vim /etc/snmp/snmpd.conf
agentAddress udp:161
# sec.name source community
com2sec masecu ip.srv.centreon macommu
# groupname securityModel securityName
group groupdesecu v1 masecu
group groupdesecu v2c masecu
# name incl/excl subtree mask(optional)
view mavue included .1.3.6.1.2.1.1
view mavue included .1.3.6.1.2.1.25.1.1
# group context sec.model sec.level prefix read write notif
access groupedesecu "" any noauth exact mavue none none
Redémarrez snmpd:
systemctl restart snmpd
Le timeout
Si le scan est trop long vous pouvez redescendre ce timeout à des valeurs inférieures. Attention toutefois, un timeout trop court peut empêcher la découverte de certains équipements.
Le résultat du scan
Après avoir cliqué sur Scan
, au bout de quelques secondes vous arriverez sur cette page:
Cette liste affiche les hôtes découvrables (voir config snmp) et qui ne sont pas encore intégrés à Centreon.
Vous pouvez cliquer sur le bouton Magie
et celui-ci affectera automatiquement le template d'hôte associé à l'os détecté.
Il sera également possible de rajouter manuellement deux autres templates supplémentaires.
Veillez également à sélectionner le bon poller, cochez le ou les équipement(s) à exporter puis cliquez sur Valider
.
Deux choix s'offrent alors à vous:
- Soit la configuration actuelle vous suffit, et vous pouvez cliquer sur
Appliquer et redémarrer le moteur
ce qui revient à faire l'export de la nouvelle configuration dans l'interface Centreon; - Soit vous cliquez sur
Appliquer dans centreon
ce qui vous permet d'intégrer ces hôtes dans Centreon, sans pour autant appliquer de suite la nouvelle configuration. Libre à vous ensuite d'affiner selon vos besoins la configuration de vos hôtes dans l'interface web Centreon.
Par acquis de conscience vérifiez l'intégralité des hôtes et services déployés.
Background autodiscover
Le scan manuel reste un outil pratique pour des besoins ponctuels ou une petite structure, mais lorsque vos besoins couvrent un large panel d'équipements, réseaux et communautés différentes, Open Centreon Discovery embarque un autre outil qui va vous simplifier la vie et vous faire gagner du temps: la découverte SNMP en tâche de fond.
Ajout de réseaux à scanner
Il faut au préalable venir écrire les réseaux à scanner dans le fichier de configuration d'OCD:
vim /usr/share/discovery/config.php
La variable $config['backGroundScanUse']
est activé par défaut. C'est elle qui défini l'activation ou l'arrêt du processus.
La variable $config['backGroundRoot']
permet de déclarer le chemin où viendra s'enregistrer le fichier de résultat du scan ( resultScan
).
Attention: si vous modifiez ce chemin, veillez à bien donner les droits nécessaires au fonctionnement du backgroundScan:
- L'application de tâche de fond doit avoir les droits en lecture/écriture.
- L'application web nécessite les droits en lecture.
//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.4.0/24",
"community"=>"macommuperso",
"version"=>"2" );
Planifier la tâche
Après avoir configuré vos réseaux, il est temps de planifier vos scans.
Tout d'abord, tester la commande qui exécute le scan:
cd /usr/share/discovery && /usr/bin/php -q backGroundScan.php
Le cd
ici est indispensable. Le code php étant rédigé avec des chemins relatifs il est nécessaire de se placer dans le dossier discovery
.
ATTENTION: après avoir testé manuellement la commande il se peut que les droits du fichier resulScan soit attribué à l'utilisateur qui a lancé la commande. Il est indispensable de rendre apache propriétaire du fichier!!!
chown www-data: resultScan
Au bout de quelques secondes vous devriez voir apparaitre vos hôtes sur l'interface web d'OCD
Cliquez ensuite sur Go
.
Vous arriverez alors sur la même page que le scan manuel où vos hôtes seront listés, avec le bouton magie
pour associer vos templates.
Merci à romnvll, qui a créé ce module et qui m'a aidé à sa mise en place, et merci à Kermith pour ses tutos très éclairés qui m'ont inspiré.
Article issue de la documentation et R&D faite par Charles Tetu, merci à toi.