Aujourd'hui j'ai décidé de migrer mon architecture Centreon à base de Raspberry et d'OrangePI. Il s'agit d'une petite architecture distribuée sous Centreon version 2.8.26 qui fonctionne maintenant depuis plus d'un an.
Pour migrer cette installation, je vais utiliser un autre Raspberry configuré en Debian Stretch. Cela permet aussi de conserver l'ancien serveur en cas d'échec de ma migration. Ces deux Raspberry sont équipé d'un disque dur PIdrive sans quoi il ne serait pas possible d'installer un Central avec une base de données MariaDB. Il y aura aussi un poller à base d'un OrangePI à migrer.
Pour migrer cette installation, je vais utiliser un autre Raspberry configuré en Debian Stretch. Cela permet aussi de conserver l'ancien serveur en cas d'échec de ma migration. Ces deux Raspberry sont équipé d'un disque dur PIdrive sans quoi il ne serait pas possible d'installer un Central avec une base de données MariaDB. Il y aura aussi un poller à base d'un OrangePI à migrer.
Je vais réaliser une double migration. En effet, le nouveau Raspberry sera une solution provisoire, le temps de remettre à niveau mon Central. Pour l'orangePI, je réaliserai seulement un dist-upgrade de l'OS. Voici les étapes :
- Installation de Centreon 18.10 sur le nouveau Raspberry
- Migration des données
- Déplacement des hôtes et services monitorés par le poller distant vers le Central
- Application des la configuration sur le nouveau Central
- Correction éventuelles des modifications sur la configuration des plugins
- Upgrade du poller
- Mise en service du poller
- Upgrade de l'ancien Central
- Installation de Centreon 18.10 sur l'ancien Raspberry
- Migration des données
- Application de la configuration
- Rattachement du poller et répartition des hôtes et services
1 Prérequis pour ce tuto
1.1 Ancien serveur Central
Mon ancien serveur est en version 2.8.26. Normalement le paquet rsync est présent sur ce serveur.
sudo apt-get install rsync
1.2 Nouveau serveur Central
Le nouveau serveur Central doit respecter l'installation Full Centreon 18.10 Raspbian Stretch. Le plus simple est d'utiliser mes paquets Raspbian avec cette procédure. L'installation doit être entièrement réalisée (Mode console et mode Web). Le mot de passe de l'admin Centreon doit être le même que l'ancienne installation, de même pour la base de données. Pour utiliser la synchronisation rsync entre les deux serveurs en utilisateur root, j'autorise la connexion ssh pour root sur le nouveau serveur. Je modifie le fichier suivant :
sudo vi /etc/ssh/sshd_config
Je décommente et modifie la ligne suivante
PermitRootLogin yes
Je relance le serveur ssh
sudo systemctl restart ssh
Il faudra aussi configurer le mot de passe root du nouveau serveur.
sudo su
passwd
2 Synchronisation des données
Je commence à synchroniser les données suivantes. Attention, je m'assure d'avoir l'espace suffisant sur le nouveau serveur. le mot clé IP_New_Centreon est à remplacer par l'adresse IP du nouveau serveur. A partir de l'ancien serveur, je lance les commandes suivantes :
rsync -avz /etc/centreon root@IP_New_Centreon:/etc
rsync -avz /etc/centreon-broker root@IP_New_Centreon:/etc
rsync -avz /var/log/centreon-engine/archives/ root@IP_New_Centreon:/var/log/centreon-engine/archives
rsync -avz --exclude centcore/ --exclude log/ /var/lib/centreon root@IP_New_Centreon:/var/lib
rsync -avz /var/lib/centreon/.ssh root@IP_New_Centreon:/var/lib/centreon
rsync -avz /usr/share/centreon/www/img/media/ root@IP_New_Centreon:/usr/share/centreon/www/img/media/
Petite explication de la synchronisation des données :
copie des fichiers de la configuration de l'IHM
copie des fichiers de configuration broker
copie des fichiers logs archive du moteur engine
copie des fichiers temporaires pour les plugins et les fichiers rrd
copie de la clé ssh du central nécessaire pour la communication des pollers
copie des images pour la customisation des hôtes et services
copie des fichiers de la configuration de l'IHM
rsync -avz /etc/centreon root@IP_New_Centreon:/etc
copie des fichiers de configuration broker
rsync -avz /etc/centreon-broker root@IP_New_Centreon:/etc
copie des fichiers logs archive du moteur engine
rsync -avz /var/log/centreon-engine/archives/ root@IP_New_Centreon:/var/log/centreon-engine/archives
copie des fichiers temporaires pour les plugins et les fichiers rrd
rsync -avz --exclude centcore/ --exclude log/ /var/lib/centreon root@IP_New_Centreon:/var/lib
copie de la clé ssh du central nécessaire pour la communication des pollers
rsync -avz /var/lib/centreon/.ssh root@IP_New_Centreon:/var/lib/centreon
copie des images pour la customisation des hôtes et services
rsync -avz /usr/share/centreon/www/img/media/ root@IP_New_Centreon:/usr/share/centreon/www/img/media/
Préparons la migration des données MariaDB. J'arrête le service mysql sur le nouveau serveur.
systemctl stop mysql
Je supprime toutes les données de bases MySQL
rm -Rf /var/lib/mysql/*
J'arrête le service mysql sur l'ancien serveur.
service mysql stop
Je synchronise les données de l'ancien serveur vers le nouveau. Cette opération est très longue.
rsync -avz /var/lib/mysql/ root@IP_New_Centreon:/var/lib/mysql/
Mon ancien serveur n'utilisait pas mariadb version 5.x, je n'aurais pas à lancer cette commande.
mysql_upgrade
Je relance le service mysql sur le nouveau serveur. Je fais de même pour l'ancien serveur, une mesure de précaution si ma migration n'était pas concluante.
systemctl start mysql
3 Synchronisation des plugins
Il faudra aussi synchroniser mes plugins. Les dossiers principaux sont les suivants. Attention à ne pas écraser les nouveaux plugins Centreon. Ce sera aussi le moment de faire le ménage pour supprimer les plugins obsolètes.
/usr/lib/nagios/plugins
/usr/lib/centreon/plugins
4 Mise à jour de Centreon
Pour réaliser la mise à jour sur le nouveau serveur, il faut déplacer le contenu du dossier /usr/share/centreon/installDir/install-18.10.0-YYYYMMDD_HHMMSS.
cd /usr/share/centreon/installDir/
sudo mv install-18.10.3-20190322_172755/ ../www/install/
J'utilise un navigateur internet récent et saisi l’url suivante :
http://<ip du nouveau serveur centreon>/centreon/
http://<ip du nouveau serveur centreon>/centreon/
Démarrage la mise à jour Web, je clique sur "Next"
Validation des dépendances, je clique sur "next".
Les notes de version, je clique sur Next.
Mise à jour des bases de données, je clique sur Next.
Fin de la mise à jour, je termine en cliquant sur Finish
J'arrive à la vue de connexion pour me connecter à l'IHM Centreon.
5 Application de la configuration
Je me connecte donc à l'interface de Centreon. Vous constaterez l'affichage des vues personnalisées mais les widgets devront être mis à jour. L'icône de la base de données indique un dysfonctionnement qui est normal puisque le broker ne fonctionne pas.
J'applique la configuration seulement sur le Central et je relance les services suivants
sudo systemctl start cbd centcore centengine
Au bout de quelques secondes, j'ai cette vue.
Pour avoir la gestion des graphes RRD, il ne faut pas oublier de modifier cette option Directory RRDTOOL binary en modifiant le chemin de rrdtool comme indiqué sur la copie d'écran. Je sélectionne Administration -> Parameters -> RRDTool.
6 Upgrade du poller distant
Le poller distant n'ayant pas de configuration spéciale, j'ai pu sans top de problème passer de Raspbian Jessie à Raspbian Stretch. Voici la procédure que j'ai appliqué.
sudo apt-get update sudo apt-get upgrade sudo apt-get dist-upgrade
Modification des dépôts de Jessie à Stretch. Il faut aussi supprimer le dépôt non-officiel de Centreon.
sudo sed -i /deb/s/jessie/stretch/g /etc/apt/sources.list
Installation de Stretch, les paquets du miroir Centreon seront supprimés
sudo apt-get update sudo apt-get upgrade sudo apt-get dist-upgrade
On passe au nettoyage et on redémarrer le poller
sudo apt-get autoremove sudo apt-get autoclean sudo reboot
Le poller redémarré, je passe à l'installation de Centreon 18.10
sudo /bin/sh -c 'echo "deb http://mirror.sugarbug.fr/centreon/ stretch main" > /etc/apt/sources.list.d/centreon.list' wget -O - http://mirror.sugarbug.fr/centreon/sugarbug.fr.gpg.key | sudo apt-key add - sudo apt-get update sudo apt-get install centreon-poller
Je passe à la configuration du Central en modifiant la configuration broker pour mettre la nouvelle adresse du Central.
J'applique la configuration, tous mes pollers sont opérationnels. Je pourrais migrer mes Hôtes et service de nouveau sur mon poller distant pour équilibrer la charge mais je m'abstiens. Comme je veux récupérer mon Raspberry ou est installé mon nouveau Central, je vais procéder à une nouvelle migration de celui-ci.
Cette nouvelle migration sera plus simple. L'ancien Raspberry sera mis à jour grâce à BerryBoot avec une version de Raspbian Stretch toute propre. Je procède à l'installation de Centreon avec le miroir que j'ai confectionné. D'ailleurs celui-ci a été mis à jour suite aux quelques bugs trouvés au cours de la première installation (génération des traps, widget Top10 incompatibles avec la nouvelle version).
Comme pour la première migration, j'ai utilisé les même mot de passe. Puisque les installations sont identiques, il m'a suffit de synchroniser la base de données, les fichiers temporaires, les fichiers rrd, les logs d'engine, la clé SSH et les fichiers média sans oublier les plugins.
Comme pour la première migration, j'ai utilisé les même mot de passe. Puisque les installations sont identiques, il m'a suffit de synchroniser la base de données, les fichiers temporaires, les fichiers rrd, les logs d'engine, la clé SSH et les fichiers média sans oublier les plugins.
rsync -avz /var/log/centreon-engine/archives/ root@IP_New_Centreon:/var/log/centreon-engine/archives
rsync -avz --exclude centcore/ --exclude log/ /var/lib/centreon root@IP_New_Centreon:/var/lib
rsync -avz /var/lib/centreon/.ssh root@IP_New_Centreon:/var/lib/centreon
rsync -avz /usr/share/centreon/www/img/media/ root@IP_New_Centreon:/usr/share/centreon/www/img/media/
Sur le serveur Centreon fraîchement installé, je n'oublie pas de changer une nouvelle fois l'adresse IP de la configuration broker du poller distant. J'applique la configuration et je vérifie le bon fonctionnement de la nouvelle installation. Il me reste à migrer les hôtes et services sur le poller distant pour équilibrer la charge.
6 Bilan de la migration
La durée de la migration dépend surtout de la taille des données à synchroniser et du débit de la connexion entre les deux machines. Pour ma part, le transfert n'a pas été très rapide, le raspberry n'ayant pas un débit réseau très performant, de plus celui qui m'a servi de serveur tampon étant en wifi, il ne fallait pas s'attendre à des performances extraordinaires.
Ci-dessous un graphe de performance sur la charge du serveur Central. On peut constater à configuration égale, une augmentation de la charge du Raspberry PI 3 +. Une légère augmentation sur le PI 3 et la nouvelle version 18.10 mais supportable. La perte des données de supervision est égale au temps de synchronisation des données.
Ci-dessous un graphe de performance sur la charge du serveur Central. On peut constater à configuration égale, une augmentation de la charge du Raspberry PI 3 +. Une légère augmentation sur le PI 3 et la nouvelle version 18.10 mais supportable. La perte des données de supervision est égale au temps de synchronisation des données.
Ce graphe de la température du cpu montre bien la nécessité de bien ventiler le Raspberry, le PI 3 + étant confiné dans un boîtier fermé.
Autre remarque sur la gestion de la mémoire, est-ce le fait de la mise à jour du plugin mais la mémoire utilisée semblent moindre avec la nouvelle version.
Sinon, sans être un foudre de guerre, le Raspberry remplit son rôle avec cette nouvelle version 18.10. Bien sûr, il ne faut pas s'attendre à superviser des milliers de services mais pour effectuer des tests à peu de frais, cet ordinateur low-cost suffira largement.