Installation d’un cluster à 4 nœuds

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

SourceDestinationProtocolePortCommentaires
Nœud Central PrincipalNœud Central SecondaireSSHTCP 22Synchronisation des fichiers de configuration
(Le flux doit être aussi ouvert dans
le sens passif –> actif)
Nœud Central PrincipalNœud Central Secondaire passifBDDOTCP 5670Synchronisation des RRDs
(Le flux doit être aussi ouvert dans
le sens passif –> actif)
Nœud BDD actifNœud BDD passifMySQLTCP 3306Synchronisation MySQL
(Le flux doit être aussi ouvert dans
le sens passif –> actif)
Nœud BDD actifNœud BDD passifSSHTCP 22Synchronisation MySQL (Le flux doit être aussi
ouvert dans le sens passif –> actif)
Nœud Central SecondaireNœud Central PrincipalSSHTCP 22Synchronisation des fichiers de configuration
(Le flux doit être aussi ouvert dans
le sens passif –> actif)
Nœud Central SecondaireNœud Central PrincipalBDDOTCP 5670Synchronisation des RRDs
(Le flux doit être aussi ouvert dans
le sens passif –> actif)
Nœud BDD RéplicationNœud BDD passifMySQLTCP 3306Synchronisation MySQL
(Le flux doit être aussi ouvert dans
le sens passif –> actif)
Nœud BDD RéplicationNœud BDD passifSSHTCP 22Synchronisation MySQL
(Le flux doit être aussi ouvert dans
le sens passif –> actif)
PollerAdresse Central VIPSSHTCP 22Supervision des fichiers de rétention …
PollerAdresse Central VIPBDDOTCP 5670Synchronisation des RRDs
(Le flux doit être aussi ouvert dans
le sens passif –> actif)
Centreon Central Principal et Secondaire Nœud BDD VIPMySQLTCP 3306Pour CBD Mysql écriture sur le nœud Actif
Serveurs Centraux + BDD + QDeviceServeurs Centraux + BDD + QDeviceCorosyncUDP 5404Communication au sein du cluster (Multicast)
Serveurs Centraux + BDD + QDeviceServeurs Centraux + BDD + QDeviceCorosyncUDP 5405Communication au sein du cluster (Unicast)
Serveurs Centraux + BDD + QDeviceServeurs Centraux + BDD + QDevicePCSTCP 2224Communication au sein du cluster
Serveurs Centraux + BDD + QDeviceServeurs Centraux + BDD + QDeviceCorosyncTCP 5403Communication 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 NetworkManager

Ré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
EOF

Conventions

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 hacluster

Etapes 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