Vous êtes ici:

Menu


Stacks Image 2228
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.
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
Stacks Image 456016
Au premier plan, le Rasberry dédié à ma supervision, au second plan le Raspberry "Lego" permettant la migration.

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
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/
Stacks Image 35865
Démarrage la mise à jour Web, je clique sur "Next"
Stacks Image 455626
Validation des dépendances, je clique sur "next".
Stacks Image 35886
Les notes de version, je clique sur Next.
Stacks Image 48593
Mise à jour des bases de données, je clique sur Next.
Stacks Image 35907
Fin de la mise à jour, je termine en cliquant sur Finish
Stacks Image 455923
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.
Stacks Image 6116
Vue personnalisée
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.
Stacks Image 48622
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.
Stacks Image 455928
Modifiez le chemin de 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.
Stacks Image 6195
Configuration du poller1-module
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.
Stacks Image 455972
Les deux pollers sont opérationnels
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.
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.
Stacks Image 455883
Evolution de la charge du serveur pendant la migration
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é.
Stacks Image 455945
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.
Stacks Image 456013
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.
comments powered by Disqus
comments powered by Disqus
 Vous êtes ici: