Prérequis
Compréhension
Avant de suivre cette procédure, il est recommandé d’avoir un niveau de connaissance satisfaisant du système d’exploitation Linux, de Centreon et des outils de clustering Pacemaker-Corosync pour bien comprendre ce qui va être fait et savoir résoudre un éventuel incident. En pointillé sur les schémas ci-dessous les flux en attente.
Fonctionnement initial de la plateforme ( Site A)

Bascule sur le site secondaire (Site B)

Flux réseaux
Les différents flux réseau doivent être ouverts
| Source | Destination | Protocole | Port | Commentaires |
| Nœud Central Principal | Nœud Central Secondaire | SSH | TCP 22 | Synchronisation des fichiers de configuration (Le flux doit être aussi ouvert dans le sens passif –> actif) |
| Nœud Central Principal | Nœud Central Secondaire passif | BDDO | TCP 5670 | Synchronisation des RRDs (Le flux doit être aussi ouvert dans le sens passif –> actif) |
| Nœud BDD actif | Nœud BDD passif | MySQL | TCP 3306 | Synchronisation MySQL (Le flux doit être aussi ouvert dans le sens passif –> actif) |
| Nœud BDD actif | Nœud BDD passif | SSH | TCP 22 | Synchronisation MySQL (Le flux doit être aussi ouvert dans le sens passif –> actif) |
| Nœud Central Secondaire | Nœud Central Principal | SSH | TCP 22 | Synchronisation des fichiers de configuration (Le flux doit être aussi ouvert dans le sens passif –> actif) |
| Nœud Central Secondaire | Nœud Central Principal | BDDO | TCP 5670 | Synchronisation des RRDs (Le flux doit être aussi ouvert dans le sens passif –> actif) |
| Nœud BDD Réplication | Nœud BDD passif | MySQL | TCP 3306 | Synchronisation MySQL (Le flux doit être aussi ouvert dans le sens passif –> actif) |
| Nœud BDD Réplication | Nœud BDD passif | SSH | TCP 22 | Synchronisation MySQL (Le flux doit être aussi ouvert dans le sens passif –> actif) |
| Poller | Adresse Central VIP | SSH | TCP 22 | Supervision des fichiers de rétention … |
| Poller | Adresse Central VIP | BDDO | TCP 5670 | Synchronisation des RRDs (Le flux doit être aussi ouvert dans le sens passif –> actif) |
| Centreon Central Principal et Secondaire | Nœud BDD VIP | MySQL | TCP 3306 | Pour CBD Mysql écriture sur le nœud Actif |
| Serveurs Centraux + BDD + QDevice | Serveurs Centraux + BDD + QDevice | Corosync | UDP 5404 | Communication au sein du cluster (Multicast) |
| Serveurs Centraux + BDD + QDevice | Serveurs Centraux + BDD + QDevice | Corosync | UDP 5405 | Communication au sein du cluster (Unicast) |
| Serveurs Centraux + BDD + QDevice | Serveurs Centraux + BDD + QDevice | PCS | TCP 2224 | Communication au sein du cluster |
| Serveurs Centraux + BDD + QDevice | Serveurs Centraux + BDD + QDevice | Corosync | TCP 5403 | Communication avec le QDevice |
Installation de Centreon
Les briques Centreon (25.10 au moment de l’écriture de ce document) suivantes doivent être installées :
- Serveur Web Site A (Centreon-Web1)
- Serveur Web Site 2 (Centreon-Web2)
- Serveur MariaDb Site A (Centreon-DB1)
- Serveur MariaDb Site B (Centreon-DB2)
- Un serveur Alma 9 avec installation
- (Quorum Centreon)
Serveurs base de données
Sur les serveurs MariaDB les VG hébergeant les bases de données doivent Impérativement avoir minimum 5GB de libre (point de montage /var/lib/mysql par défaut).
La commande vgs doit retourner un affichage selon le format ci-dessous (en particulier la valeur sous VFree) :
vgs
VG #PV #LV #SN Attr VSize VFree
VgData 1 2 0 wz--n- <31,00g <5,00g- Les fichiers MariaDB ibdata* et ib_logfile* doivent être dans le répertoire « datadir » ou dans un sous-répertoire (les scripts centreondb-smooth-backup.sh et mysql-sync-bigdb.sh ne sont pas compatibles avec cette opération) ;
- Les fichiers MariaDB log-bin* et relay-log* peuvent être situés dans un répertoire (ou un sous-répertoire) différent de « datadir ». Ils peuvent également se trouver sur un volume logique (lvm) différent de « datadir ». Cependant, le volume logique doit être situé dans le groupe de volume où « datadir » est stocké.
AVERTISSEMENT : si ces prérequis spécifiques ne sont pas respectés, la méthode de synchronisation des bases de données décrite ci-dessous ne fonctionnera pas.
Quorum Device
Pour le bon fonctionnement du cluster, en particulier pour éviter les cas de split-brain, il est nécessaire d’avoir un serveur tiers pour tenir le rôle d’arbitre. Il est possible d’utiliser un collecteur pour remplir ce rôle.
Afin de respecter les meilleures pratiques et de bénéficier d’une infrastructure aussi résiliente que possible, le placement du serveur Quorum doit être sur un site différent des deux nœuds principaux, avec des attachements réseaux indépendants.
AVERTISSEMENT: assurez-vous que SELinux et Firewalld sont désactivés sur tous les membres du cluster.
Sur tous les serveurs
Désactivation SeLinux et firewalld
systemctl stop firewalld
systemctl disable firewalld
sed -i s/^SELINUX=.*$/SELINUX=disabled/ /etc/selinux/config
reboot
Désactivation IP V6
cat >> /etc/sysctl.conf <<EOF
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv4.tcp_retries2 = 3
net.ipv4.tcp_keepalive_time = 200
net.ipv4.tcp_keepalive_probes = 2
net.ipv4.tcp_keepalive_intvl = 2
EOF
systemctl restart NetworkManagerRésolution de nom
Exemple de fichier de configuration :
cat >/etc/hosts <<"EOF"
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
192.168.122.110 CentreonWeb1 Centreon-Web1
192.168.122.210 CentreonWeb2 Centreon-Web2
192.168.122.111 CentreonDB1 Centreon-DB1
192.168.122.211 CentreonDB2 Centreon-DB2
192.168.122.101 CentreonQuorum Centreon-Quorum
192.168.122.150 VIPCentreonWeb
192.168.122.151 VIPCentreon-DB
EOFConventions
Définition des noms et adresses IP des serveurs
Dans cette procédure, nous ferons référence à des paramètres variant d’une installation à une autre (noms et adresses IP des nœuds par exemple) par l’intermédiaire des macros suivantes :
Plan d’adressage de ce tutoriel :
@CENTRAL_MASTER_IPADDR@ : adresse IP du serveur Centreon-Web principal
@CENTRAL_MASTER_NAME@ : nom du serveur Centreon-Web principal (doit être identique au résultat de hostname -s)
@CENTRAL_SLAVE_IPADDR@ : adresse IP du serveur Centreon-Web secondaire
@CENTRAL_SLAVE_NAME@ : nom du serveur Centreon-Web secondaire (doit être identique au résultat de hostname -s)
@DATABASE_MASTER_IPADDR@ : adresse IP du serveur de base de données principal
@DATABASE_MASTER_NAME@ : nom du serveur de base de données principal (doit être identique au résultat de hostname -s)
@DATABASE_SLAVE_IPADDR@ : adresse IP du serveur de base de données secondaire
@DATABASE_SLAVE_NAME@ : nom du serveur de base de données secondaire (doit être identique au résultat de hostname -s)
@QDEVICE_IPADDR@ : adresse IP du serveur supportant le quorum device
@QDEVICE_NAME@ : nom du serveur supportant le quorum device (doit être identique au résultat de hostname -s)
@MARIADB_REPL_USER@ : nom du compte MariaDB de réplication (suggéré : centreon-repl)
@MARIADB_REPL_PASSWD@ : mot de passe de ce compte
@MARIADB_CENTREON_USER@ : nom du compte MariaDB de Centreon (suggéré : centreon)
@MARIADB_CENTREON_PASSWD@ : mot de passe de ce compte
@VIP_IPADDR@ : adresse IP virtuelle du cluster
@VIP_IFNAME@ : nom de l'interface qui portera la VIP
@VIP_CIDR_NETMASK@ : masque de sous-réseau exprimé en nombre de bits sans le '/' (exemple : 24)
@VIP_BROADCAST_IPADDR@ : adresse de broadcast
@VIP_SQL_IPADDR@ : adresse IP virtuelle du cluster
@VIP_SQL_IFNAME@ : nom de l'interface qui portera la VIP
@VIP_SQL_CIDR_NETMASK@ : masque de sous-réseau exprimé en nombre de bits sans le '/' (exemple : 24)
@VIP_SQL_BROADCAST_IPADDR@ : adresse de broadcast
@CENTREON_CLUSTER_PASSWD@ : mot de passe du compte haclusterEtapes de configuration
- Mise en place de la réplication des bases
- Installation des briques corosync/pacemaker/heartbeat
- Configuration du cluster
- Configuration des centreon pour la HA