Menu


Stacks Image 28744
Centreon 18.10 utilise un nouveau mécanisme pour l'interface Web avec la version du PHP 7.1. Nous étudierons dans ce tutoriel comment configurer Nagvis avec Centreon version 18.10 après une mise à jour. Ensuite nous aborderons la problématique de l'ouverture de session commune entre Centreon et Nagvis. Un point en suspend, la page de configuration du module qui reste à mdofoer pour la version 18.10.
Stacks Image 942216
Testé avec une migration de Centreon 2.8.26 sur CentOS vers 18.10

1 Le contexte

Nous avons un serveur Centreon en 2.8.26 équipé de Nagvis 1.9.8. Ces deux applications communiquent avec le backend Centreon. L'installation utilise le mode Single User.
Stacks Image 942240
L'intégration de Nagvis dans Centreon 2.8.26

1.1 Mise à jour de Centreon

La migration ne pose pas de problème majeur, suivez la documentation officielle de Centreon : https://documentation-fr.centreon.com/docs/centreon/en/18.10/upgrade/from_packages.html#mise-a-jour-du-serveur-centreon-central. Conseil : si la mise à jour ne fonctionne pas, faite un clean de la base yum.
[root@central ~]# yum update centreon*
Modules complémentaires chargés : fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.ircam.fr
 * extras: mirrors.ircam.fr
 * updates: mirrors.ircam.fr
centos-sclo-rh                                                                                                   | 3.0 kB  00:00:00
centos-sclo-sclo                                                                                                 | 2.9 kB  00:00:00
(1/2): centos-sclo-sclo/x86_64/primary_db                                                                        | 294 kB  00:00:00
(2/2): centos-sclo-rh/x86_64/primary_db                                                                          | 3.7 MB  00:00:02
No packages marked for update
Dans ce cas, lancez la commande suivante
yum clean all
Faire la mise à jour avec l'interface Web. Connectez-vous à l'IHM. Réalisez la mise à jour des modules, widgets et éventuellement des plugins pack. Appliquez de nouveau la configuration (pensez à vider le cache du navigateur) car les plugins nagios sont déplacés dans le dossier /usr/lib64/nagios/plugins.

1.2 Test avec Nagvis

Après la mise à jour de Centreon, on peut tester la page Nagvis qui a l'air de fonctionner au premier abord.
Stacks Image 942245
Premier test de Nagvis avec Centreon 18.10
Mais lorsque l'authentification PHPSESSID sera supprimée de la session précédente, les deux applications ne pourront plus communiquer car les versions de PHP sont différentes. En effet, Centreon utilise le PHP 7.1 avec php-fpm et Nagvis utilise l'ancienne version de PHP 5.4.
Stacks Image 942233
La communication entre Centreon et Nagvis ne fonctionne plus
Pour faire communiquer ces deux applications, nous allons donc configurer Nagvis avec le php-fpm installé sur le serveur Centreon.

2 Configuration de Nagis

2.1 Fichier de configuration d'apache

Modifiez le fichier de configuration d'apache.
vi /etc/httpd/conf.d/nagvis.conf
Modifiez le fichier comme suit :
# NagVis Apache2 sample configuration file
#
# #############################################################################

Alias /nagvis /usr/share/nagvis/share/

<LocationMatch ^/nagvis/(.*\.php(/.*)?)$>
  ProxyPassMatch fcgi://127.0.0.1:9043/usr/share/nagvis/share/$1
</LocationMatch>
ProxyTimeout 300

<Directory "/usr/share/nagvis/share">
    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 ^/$ /nagvis

2.2 Fichier de configuration du module php-fpm

Nous devons créer une configuration pour Nagvis.
vi /etc/opt/rh/rh-php71/php-fpm.d/nagvis.conf
Configurez comme ceci.
[nagvis]
user = apache
group = apache
listen = 127.0.0.1:9043
listen.allowed_clients = 127.0.0.1
pm = ondemand
pm.max_children = 30
pm.process_idle_timeout = 10s
pm.max_requests = 500
rlimit_files = 4096
php_admin_value[error_log] = /var/opt/rh/rh-php71/log/php-fpm/nagvis-error.log
php_admin_flag[log_errors] = on
php_value[session.save_handler] = files
php_value[session.save_path]    = /var/opt/rh/rh-php71/lib/php/session
php_value[soap.wsdl_cache_dir]  = /var/opt/rh/rh-php71/lib/php/wsdlcache
Le chemin des sessions sera identique au fichier de configuration de Centreon. Relancez les services.
systemctl restart rh-php71-php-fpm
systemctl restart httpd

2.3 Test de Nagvis

On tente de nouveau l'interface Centreon avec Nagvis.
Stacks Image 942199
Le backend Centreon ne fonctionne pas correctement.
Nous sommes bien connectés automatiquement avec le compte centreon_nagvis mais le backend Centreon ne veut plus fonctionner avec la version PHP 7.1.

3 Modification du backend Centreon

Le backend Centreon s'appuie sur les modules PHP version 5.4 comme indiqué vers la ligne 888 du fichier /usr/share/nagvis/share/server/core/classes/GlobalBackendcentreonbroker.php
    888     private function connectToDb() {
    889         if (false === extension_loaded('mysql')) {
    890             throw new BackendConnectionProblem(l('mysqlNotSupported', array('BACKENDID', $this->_backendId)));
    891         }
Vérifions les modules de PHP version 5.4
php -m

………….
libxml
mbstring
mhash
mysql
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
………..
On retrouve le module mysql chargé. Faisons de même pour la version PHP 7.1
/opt/rh/rh-php71/root/usr/bin/php -m

………….
libxml
mbstring
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
…………
Le module mysql n'existe plus. Par contre le module mysqli est disponible, c'est celui-ci que nous utiliserons. Modifions le backend comme suit :
    888     private function connectToDb() {
    889         if (false === extension_loaded('mysqli')) {
    890             throw new BackendConnectionProblem(l('mysqlNotSupported', array('BACKENDID', $this->_backendId)));
    891         }
Vérifions de nouveau l'interface Centreon.
Stacks Image 42928
Le backend Centreon fonctionne sans problème.
La cartographie Nagvis fonctionne de nouveau.

4 Module Centreon-Nagvis

Actuellement, il subsiste un problème de compatibilité avec l'interface Centreon pour le menu administration du module. Je n'ai pas encore trouvé de solution, car il faut modifier le code php de ce module.
Stacks Image 103719
La page de configuration ne fonctionne pas
Je suis à votre écoute si vous avez une solution.
comments powered by Disqus