Aller au contenu principal
Version: 22.10

Montée de version depuis Centreon 3.4

Ce chapitre décrit la procédure de montée de version de votre plate-forme Centreon depuis la version 3.4 (Centreon Web 2.8) vers la version 22.10.

Lorsque vous effectuez la montée de version de votre serveur central, assurez-vous d'également mettre à jour tous vos serveurs distants et vos collecteurs. Dans votre architecture, tous les serveurs doivent avoir la même version de Centreon. De plus, tous les serveurs doivent utiliser la même version du protocole BBDO.

Cette procédure ne s'applique que pour une plate-forme Centreon installée à partir des dépôts Centreon 3.4 sur des distributions Red Hat / CentOS en version 7.

Si cela n'est pas le cas, se référer à la procédure de migration.

Prérequis

Sauvegarde

Avant toute chose, il est préférable de s’assurer de l’état et de la consistance des sauvegardes de l’ensemble des serveurs centraux de votre plate-forme :

  • Serveur Centreon Central,
  • Serveur de gestion de base de données.

Mettre à jour la clé de signature RPM

Pour des raisons de sécurité, les clés utilisées pour signer les RPMs Centreon sont changées régulièrement. Le dernier changement a eu lieu le 14 octobre 2021. Lorsque vous mettez Centreon à jour depuis une version plus ancienne, vous devez suivre la procédure de changement de clé, afin de supprimer l'ancienne clé et d'installer la nouvelle.

Mise à jour de la version mineure

  1. Sur votre plateforme 3.4, remplacez https://packages.centreon.com/rpm-standard ou https://yum.centreon.com/standard/ par https://archives.centreon.com/standard/ dans votre configuration YUM (par défaut, /etc/yum.repos.d/centreon.repo).

  2. Mettez à jour votre Centreon 3.4 jusqu'à la dernière version mineure.

Montée de version du serveur Centreon central

Depuis la version 21.04, Centreon utilise MariaDB 10.5.

Le processus suivant met seulement à jour les composants Centreon pour le moment.

MariaDB sera mis à jour après.

Installation des dépôts

Dépôt Software collections de Red Hat

Il est nécessaire de mettre à jour le dépôt Centreon.

Supprimez le fichier centreon.repo :

rm /etc/yum.repos.d/centreon.repo

Exécutez la commande suivante :

yum install -y yum-utils
yum-config-manager --add-repo https://packages.centreon.com/rpm-standard/22.10/el7/centreon-22.10.repo

Si vous êtes dans un environnement CentOS, il faut installer les dépôts de Software Collections avec la commande suivante :

yum install -y centos-release-scl-rh

Si vous avez une licence offline, installez le dépôt des plugin packs correspondant à la version. Si vous avez une édition Business, installez également le dépôt Business. Vous pouvez en trouver l'adresse sur le portail support Centreon.

Installer le dépôt MariaDB

curl -LsS https://r.mariadb.com/downloads/mariadb_repo_setup | sudo bash -s -- --os-type=rhel --os-version=7 --mariadb-server-version="mariadb-10.5"

Montée de version de PHP

Centreon 22.10 utilise PHP en version 8.1.

Vous devez tout d'abord installer les dépôts remi :

yum install -y yum-utils
yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm

Ensuite, vous devez activer le dépôt php 8.1

yum-config-manager --enable remi-php81

Montée de version de la solution Centreon

Si vous avez des extensions Business installées, mettez à jour le dépôt business en 22.10. Rendez-vous sur le portail du support pour en récupérer l'adresse.

Arrêtez le processus Centreon Broker :

systemctl stop cbd

Supprimez les fichiers de rétention présents :

rm /var/lib/centreon-broker/* -f

Mettez à jour le cache de yum :

yum clean all --enablerepo=*

Mettez à jour l'ensemble des composants :

yum update centreon\* php-pecl-gnupg

Acceptez les nouvelles clés GPG des dépôts si nécessaire.

Activez et démarrez le service gorgoned :

systemctl enable gorgoned
systemctl start gorgoned

Le fuseau horaire par défaut de PHP 8 doit être configuré. Exécutez la commande suivante :

echo "date.timezone = Europe/Paris" >> /etc/php.d/50-centreon.ini

Remplacez Europe/Paris par votre fuseau horaire. La liste des fuseaux horaires est disponible ici. Exécutez les commandes suivantes :

systemctl enable php-fpm
systemctl start php-fpm

Exécutez la commande suivante :

systemctl status php-fpm

Il est possible que vous rencontriez l'erreur suivante:

Failed loading /usr/lib64/php/modules/ZendGuardLoader.so: /usr/lib64/php/modules/ZendGuardLoader.so: undefined symbol: _zval_ptr_dtor

Si c'est le cas, exécutez cette commande :

yum remove php-zend-guard-loader

Mettre à jour une configuration Apache personnalisée

Cette section s'applique uniquement si vous avez personnalisé votre configuration Apache. Lors de la montée de version, le fichier de configuration Apache n'est pas mis à jour automatiquement : le nouveau fichier de configuration amené par le rpm ne remplace pas l'ancien. Vous devez reporter les changements manuellement dans votre fichier de configuration personnalisée.

Faites un diff entre l'ancien et le nouveau fichier de configuration Apache :

diff -u /opt/rh/httpd24/root/etc/httpd/conf.d/10-centreon.conf /opt/rh/httpd24/root/etc/httpd/conf.d/10-centreon.conf.rpmnew
  • 10-centreon.conf (post montée de version) : ce fichier contient la configuration personnalisée. Il ne contient pas les nouveautés apportées par la montée de version, par exemple la chaîne authentication dans la directive LocationMatch
  • 10-centreon.conf.rpmnew (post montée de version) : ce fichier est fourni par le rpm; il contient la chaîne authentication, mais ne contient pas la configuration personnalisée.

Pour chaque différence entre les fichiers, évaluez si celle-ci doit être reportée du fichier 10-centreon.conf.rpmnew au fichier 10-centreon.conf.

Notamment, assurez-vous que votre configuration Apache personnalisée contient la directive suivante (incluant authentication).

<LocationMatch ^/centreon/(authentication|api/(latest|beta|v[0-9]+|v[0-9]+\.[0-9]+))/.*$>
ProxyPassMatch fcgi://127.0.0.1:9042/usr/share/centreon/api/index.php/$1
</LocationMatch>

Configuration Apache personnalisée : activer la compression du texte

Pour améliorer le temps de chargement des pages, vous pouvez activer la compression du texte sur le serveur Apache. Le paquet brotli est nécessaire. Cette configuration est optionnelle mais vous fournira une meilleure expérience utilisateur.

Ajoutez le code suivant à votre fichier de configuration Apache, dans les éléments <VirtualHost *:80> et <VirtualHost *:443> :

<IfModule mod_brotli.c>
AddOutputFilterByType BROTLI_COMPRESS text/html text/plain text/xml text/css text/javascript application/javascript application/json
</IfModule>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript application/json

Actions complémentaires

Mise à jour du serveur Web Apache

Depuis la version 20.04, Centreon utilise un nouveau paquet pour le serveur Web Apache.

Si vous avez modifié la configuration, reportez celle-ci dans le répertoire /opt/rh/httpd24/root/etc/httpd/conf.d/.

Si SSL était activé, installer le paquet suivant :

yum install httpd24-mod_ssl

Puis réalisez les actions suivantes :

systemctl disable httpd
systemctl stop httpd
systemctl enable httpd24-httpd
systemctl start httpd24-httpd

Configurer l'accès à l'API

Si vous aviez une configuration personnalisée, le processus de mise à jour RPM n'y a pas touché.

Si vous utilisez le https, vous pouvez suivre cette procédure

Vous devez donc ajouter la section d'accès à l'API dans votre fichier de configuration apache : /opt/rh/httpd24/root/etc/httpd/conf.d/10-centreon.conf

Seules les lignes avec le symbole "+" doivent être prises en compte.

+Alias /centreon/api /usr/share/centreon
Alias /centreon /usr/share/centreon/www/

+<LocationMatch ^/centreon/(?!api/latest/|api/beta/|api/v[0-9]+/|api/v[0-9]+\.[0-9]+/)(.*\.php(/.*)?)$>
+ ProxyPassMatch fcgi://127.0.0.1:9042/usr/share/centreon/www/$1
+</LocationMatch>

+<LocationMatch ^/centreon/(authentication|api/(latest|beta|v[0-9]+|v[0-9]+\.[0-9]+))/.*$>
+ ProxyPassMatch fcgi://127.0.0.1:9042/usr/share/centreon/api/index.php/$1
+</LocationMatch>

ProxyTimeout 300

<IfModule mod_security2.c>
# https://github.com/SpiderLabs/ModSecurity/issues/652
SecRuleRemoveById 200003
</IfModule>

<Directory "/usr/share/centreon/www">
ErrorDocument 404 ${base_uri}/index.html
Options Indexes
AllowOverride all
Order allow,deny
Allow from all
Require all granted
<IfModule mod_php5.c>
php_admin_value engine Off
</IfModule>

+ FallbackResource /centreon/index

AddType text/plain hbs
</Directory>

+<Directory "/usr/share/centreon/api">
+ 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 ^/$ /centreon

Redémarrez ensuite le service Apache :

systemctl restart httpd24-httpd

Montée de version du serveur MariaDB

Les composants MariaDB peuvent maintenant être mis à jour.

Référez-vous à la documentation officielle de MariaDB pour en savoir d'avantage sur ce processus :

https://mariadb.com/kb/en/upgrading-between-major-mariadb-versions/

Si vous utilisez une version plus ancienne que MariaDB 10.1, veuillez d'abord mettre à jour vers la version 10.1.

Mettre à jour le dépôt Centreon

Cette étape est nécessaire seulement si votre environnement comprend une base de données déportée. Si le serveur central Centreon et MariaDB sont hébergés sur le même serveur, sautez cette étape.

Exécutez la commande suivante sur le serveur de base de données dédié :

yum install -y yum-utils
yum-config-manager --add-repo https://packages.centreon.com/rpm-standard/22.10/el7/centreon-22.10.repo

Configuration

Le paramètre innodb_additional_mem_pool_size a été supprimé depuis MariaDB 10.2, vous devez donc le supprimer du fichier /etc/my.cnf.d/centreon.cnf

#
# Custom MySQL/MariaDB server configuration for Centreon
#
[server]
innodb_file_per_table=1

open_files_limit = 32000

key_buffer_size = 256M
sort_buffer_size = 32M
join_buffer_size = 4M
thread_cache_size = 64
read_buffer_size = 512K
read_rnd_buffer_size = 256K
max_allowed_packet = 8M

# For 4 Go Ram
-#innodb_additional_mem_pool_size=512M
#innodb_buffer_pool_size=512M

# For 8 Go Ram
-#innodb_additional_mem_pool_size=1G
#innodb_buffer_pool_size=1G

Montée de version

Il est nécessaire de désinstaller puis réinstaller MariaDB pour changer de version majeure (c'est-à-dire pour passer d'une version 10.1 à une version 10.5).

  1. Arrêtez le service mariadb :

    systemctl stop mariadb
  2. Désinstallez la version actuelle :

    rpm --erase --nodeps --verbose MariaDB-server MariaDB-client MariaDB-shared MariaDB-compat MariaDB-common

    Pendant cette étape de désinstallation, vous pouvez rencontrer une erreur parce qu'un ou plusieurs paquets MariaDB sont manquants. Dans ce cas, vous devez exécuter la commande de désinstallation sans inclure le paquet manquant.

    Par exemple, vous obtenez le message d'erreur suivant :

    package MariaDB-compat is not installed

    Comme le paquet MariaDB-compat est manquant, vous devez exécuter la même commande sans citer MariaDB-compat :

    rpm --erase --nodeps --verbose MariaDB-server MariaDB-client MariaDB-shared MariaDB-common

    Assurez-vous d'avoir installé le dépôt officiel de MariaDB avant de poursuivre la procédure.

  3. Installez la version 10.5 :

    yum install MariaDB-server-10.5\* MariaDB-client-10.5\* MariaDB-shared-10.5\* MariaDB-compat-10.5\* MariaDB-common-10.5\*
  4. Démarrer le service mariadb :

    systemctl start mariadb
  5. Lancez le processus de mise à jour MariaDB :

    mysql_upgrade

    Si votre base de données est protégée par mot de passe, entrez :

     mysql_upgrade -u <utilisateur_admin_bdd> -p

    Exemple : si votre utilisateur_admin_bdd est root, entrez:

    mysql_upgrade -u root -p

    Référez-vous à la documentation officielle pour plus d'informations ou si des erreurs apparaissent pendant cette dernière étape.

Activer MariaDB au démarrage automatique

Exécutez la commande suivante :

systemctl enable mariadb

Changer le format des tables

Toutes les tables doivent être au format "dynamic". Pour connaître le type des tables, exécutez les commandes suivantes :

mysql -u root
SELECT table_schema,table_name,row_format FROM information_schema.tables WHERE table_schema IN ("centreon", "centreon_storage") ORDER BY table_schema;

Puis quittez mariadb.

exit

Pour changer le type des tables de la base centreon, exécutez la commande suivante:

mysql --batch --skip-column-names --execute 'SELECT CONCAT("ALTER TABLE `", table_name, "` ROW_FORMAT=dynamic;") AS aQuery FROM information_schema.tables WHERE table_schema = "centreon" AND row_format IS NOT NULL AND row_format NOT IN ("Dynamic")' | mysql centreon

Pour changer le type des tables de la base centreon_storage, exécutez la commande suivante:

mysql --batch --skip-column-names --execute 'SELECT CONCAT("ALTER TABLE `", table_name, "` ROW_FORMAT=dynamic;") AS aQuery FROM information_schema.tables WHERE table_schema = "centreon_storage" AND row_format IS NOT NULL AND row_format NOT IN ("Dynamic")' | mysql centreon_storage

Synchronisation des plugins

La macro de ressource $USER1$ de Centreon 22.10 pointe à présent sur /usr/lib64/nagios/plugins.

Afin de résoudre cette situation, lancez les commandes suivantes:

mv /usr/lib64/nagios/plugins/* /usr/lib/nagios/plugins/
rmdir /usr/lib64/nagios/plugins/
ln -s -t /usr/lib64/nagios/ /usr/lib/nagios/plugins/

De cette façon un lien symbolique est créé :

$ ls -alt /usr/lib64/nagios/
lrwxrwxrwx 1 root root 24 1 nov. 17:59 plugins -> /usr/lib/nagios/plugins/
-rwxr-xr-x 1 root root 1711288 6 avril 2018 cbmod.so

Finalisation de la mise à jour

Avant de démarrer la montée de version via l'interface web, rechargez le serveur Apache avec la commande suivante :

systemctl reload httpd24-httpd

Connectez-vous ensuite à l'interface web Centreon pour démarrer le processus de mise à jour :

Cliquez sur Next :

image

Cliquez sur Next :

image

La note de version présente les principaux changements, cliquez sur Next :

image

Le processus réalise les différentes mises à jour, cliquez sur Next :

image

Votre serveur Centreon est maintenant à jour, cliquez sur Finish pour accéder à la page de connexion :

image

La présentation de l'interface ayant été modifiée dans la version 22.10, vous devez vider le cache de votre navigateur pour afficher le nouveau thème.

Si le module Centreon BAM est installé, référez-vous à la documentation associée pour le mettre à jour.

Actions post montée de version

Montée de version des extensions

Depuis le menu Administration > Extensions > Gestionnaire, mettez à jour toutes les extensions, en commençant par les suivantes :

  • License Manager,
  • Plugin Packs Manager,
  • Auto Discovery.

Vous pouvez alors mettre à jour toutes les autres extensions commerciales.

Démarrer le gestionnaire de tâches

Depuis la version 20.04, Centreon a changé son gestionnaire de tâches en passant de Centcore à Gorgone.

Pour acter ce changement, réalisez les actions suivantes :

systemctl stop centcore
systemctl enable gorgoned
systemctl start gorgoned

Les statistiques Engine qui étaient collectées par Centcore le seront maintenant par Gorgone

Il faut alors changer les droits sur les fichiers RRD de statistiques en exécutant la commande suivante:

chown -R centreon-gorgone /var/lib/centreon/nagios-perf/*

Suppression du "Nom du processus de bascule" dans la configuration des outputs broker

Dans les anciennes versions de Centreon, le mécanisme de rétention qui stockait les données issues de la supervision dans des fichiers temporaires en cas de coupure réseau nécessitait d'être configuré manuellement. Depuis Centreon 3.4, cela n'est plus nécessaire, et dans les versions plus récentes, cela peut même bloquer le fonctionnement de Broker.

Depuis le menu Configuration > Collecteurs > Configuration de Centreon Broker, supprimez la valeur du paramètre Nom du processus de bascule (failover) pour chacun des outputs de chacune des entrées de configuration de Centreon Broker.

Redémarrage des processus de supervision

Le composant Centreon Broker a changé le format de son fichier de configuration.

Il utilise maintenant JSON à la place de XML.

Pour être sur que Broker et que le module Broker de Engine utilisent les nouveaux fichiers de configuration, suivez ces étapes :

  1. Déployez la configuration du Central depuis l'interface web en suivant cette procédure,

  2. Redémarrez Broker et Engine sur le serveur Central en exécutant la commande suivante:

    systemctl restart cbd centengine

Montée de version des collecteurs

Mise à jour des dépôts

Exécutez la commande suivante :

yum install -y yum-utils
yum-config-manager --add-repo https://packages.centreon.com/rpm-standard/22.10/el7/centreon-22.10.repo

Montée de version de la solution Centreon

Videz le cache de yum :

yum clean all --enablerepo=*

Mettez à jour l'ensemble des composants :

yum update centreon\*

Acceptez les nouvelles clés GPG des dépôts si nécessaire.

Démarrez et activez gorgoned:

systemctl start gorgoned
systemctl enable gorgoned

Redémarrez centengine:

systemctl restart centengine

Actions post montée de version

Du fait du nouveau format de configuration du module Broker de Engine, la configuration doit être re-déployée.

Déployez la configuration du Poller depuis l'interface web en suivant cette procédure, et en choisissant la méthode Redémarrer pour le processus Engine

Migrer Centreon Poller Display vers Remote Server

Si la plateforme a des collecteurs avec le module Poller Display, reférez-vous à la procédure Migration d'une plate-forme avec Poller Display.

Communications

Par défaut, la communication entre le serveur Central et les collecteurs ou les Remote Servers utilisera toujours SSH.

Considérez changer le protocole de communication en suivant la procédure Changer la communication de SSH à ZMQ.

Sécurisez votre plateforme

N'oubliez pas de sécuriser votre plateforme Centreon en suivant nos recommandations.