Préparation du compte Mysql
Sur les 2 serveurs Mysql
- Arrêter les bases de données
- Modification du compte mysql
- Génération des clés ssh
- Echange des clés ssh entre les serveurs bases de données
- Copier le contenu de la clé publique du serveur DB1 sur DB2 et inversement dans le fichier ~/.ssh/authorized_keys
- Modifier les droits du fichier
- Tester les connexions
Configuration de MariaDB
- Ajouter les lignes suivantes dans le fichier /etc/my.cnf.d/centreon.cnf
- Penser à mettre 1 pour le master et 2 pour le slave
- Laisser le read_only commenté
Redémarrer le services sur les 2 serveurs
Configuration de la réplication des bases
Création des comptes Centreon
Se connecter à mysql en root
Remplacer dans la commande les valeurs qui correspondent à votre environnement.
CREATE USER '@MARIADB_CENTREON_USER@'@'@DATABASE_SLAVE_IPADDR@' IDENTIFIED BY '@MARIADB_CENTREON_PASSWD@';
GRANT ALL PRIVILEGES ON centreon.* TO '@MARIADB_CENTREON_USER@'@'@DATABASE_SLAVE_IPADDR@';
GRANT ALL PRIVILEGES ON centreon_storage.* TO '@MARIADB_CENTREON_USER@'@'@DATABASE_SLAVE_IPADDR@';
CREATE USER '@MARIADB_CENTREON_USER@'@'@DATABASE_MASTER_IPADDR@' IDENTIFIED BY '@MARIADB_CENTREON_PASSWD@';
GRANT ALL PRIVILEGES ON centreon.* TO '@MARIADB_CENTREON_USER@'@'@DATABASE_MASTER_IPADDR@';
GRANT ALL PRIVILEGES ON centreon_storage.* TO '@MARIADB_CENTREON_USER@'@'@DATABASE_MASTER_IPADDR@';
CREATE USER '@MARIADB_CENTREON_USER@'@'@CENTRAL_SLAVE_IPADDR@' IDENTIFIED BY '@MARIADB_CENTREON_PASSWD@';
GRANT ALL PRIVILEGES ON centreon.* TO '@MARIADB_CENTREON_USER@'@'@CENTRAL_SLAVE_IPADDR@';
GRANT ALL PRIVILEGES ON centreon_storage.* TO '@MARIADB_CENTREON_USER@'@'@CENTRAL_SLAVE_IPADDR@';
CREATE USER '@MARIADB_CENTREON_USER@'@'@CENTRAL_MASTER_IPADDR@' IDENTIFIED BY '@MARIADB_CENTREON_PASSWD@';
GRANT ALL PRIVILEGES ON centreon.* TO '@MARIADB_CENTREON_USER@'@'@CENTRAL_MASTER_IPADDR@';
GRANT ALL PRIVILEGES ON centreon_storage.* TO '@MARIADB_CENTREON_USER@'@'@CENTRAL_MASTER_IPADDR@';Création des comptes de réplication
Remplacer dans la commande les valeurs qui correspondent à votre environnement.
CREATE USER '@MARIADB_REPL_USER@'@'@CENTRAL_SLAVE_IPADDR@' IDENTIFIED BY '@MARIADB_CENTREON_PASSWD@';
GRANT ALL PRIVILEGES ON centreon.* TO '@MARIADB_CENTREON_USER@'@'@CENTRAL_SLAVE_IPADDR@';
GRANT ALL PRIVILEGES ON centreon_storage.* TO '@MARIADB_CENTREON_USER@'@'@CENTRAL_SLAVE_IPADDR@';
CREATE USER '@MARIADB_REPL_USER@'@'@CENTRAL_MASTER_IPADDR@' IDENTIFIED BY '@MARIADB_CENTREON_PASSWD@';
GRANT ALL PRIVILEGES ON centreon.* TO '@MARIADB_CENTREON_USER@'@'@CENTRAL_MASTER_IPADDR@';
GRANT ALL PRIVILEGES ON centreon_storage.* TO '@MARIADB_CENTREON_USER@'@'@CENTRAL_MASTER_IPADDR@';Installation de la HA
dnf config-manager --enable highavailability
dnf install centreon-ha-common pcs pacemaker corosync corosync-qdeviceConfiguration des éléments pour la replication
Editer le fichier /etc/centreon-ha/mysql-resources.sh et mettre les bonnes valeurs dans celui-ci .
#!/bin/bash
###############################
# Database access credentials #
###############################
DBHOSTNAMEMASTER='@DATABASE_MASTER_NAME@'
DBHOSTNAMESLAVE='@DATABASE_SLAVE_NAME@'
DBREPLUSER='@MARIADB_REPL_USER@'
DBREPLPASSWORD='@MARIADB_REPL_PASSWD@'
DBROOTUSER='@MARIADB_REPL_USER@'
DBROOTPASSWORD='@MARIADB_REPL_PASSWD@'
CENTREON_DB='centreon'
CENTREON_STORAGE_DB='centreon_storage'
###############################Contrôle des connexion
Lancer la commande suivante sur les 2 serveurs SGBD pour verifiers qu’ils se connectent aux différents serveurs
/usr/share/centreon-ha/bin/mysql-check-status.sh
Connection SLAVE Status 'Centreon-DB1' [OK]
Connection SLAVE Status 'Centreon-DB2' [OK]
Slave Thread Status [KO]
Error reports:
No slave (maybe because we cannot check a server).
Position Status [SKIP]
Error reports:
Skip because we can't identify a unique slave.Le message d’erreur est normal car la réplication n’est pas active. Il est important a ce stade que les connexion DB1 et DB2 soient OK.
Activer la replication
Passage en mode readonly
Maintenant que tout est bien configuré, activez le mode read_only sur les deux serveurs en décommentant (c’est-à-dire en retirant le # en début de ligne) cette instruction dans le fichier /etc/my.cnf.d/centreon.cnf :
Nœud principal
[server]
server-id=1
read_only
log-bin=mysql-binNœud secondaire
[server]
server-id=2
read_only
log-bin=mysql-binAppliquez ensuite ce changement par un redémarrage de MariaDB sur les deux nœuds :
systemctl restart mariadbSynchronisation des bases de données
Arrêt du serveur DB2
systemctl stop mariadbLancer la réplication des bases
Sur le Serveur DB1 lancer la commande de synchronisation des bases de données
/usr/share/centreon-ha/bin/mysql-sync-bigdb.shA la fin de l’exécution :
Umount and Delete LVM snapshot
Logical volume "dbbackupdatadir" successfully removed.
Start MySQL Slave
OK
Start Replication
Id User Host db Command Time State Info Progress
5 replication CentreonDB1:47706 NULL Query 0 starting show processlist 0.000
6 system user NULL Connect 0 Connecting to master NULL 0.000
7 system user NULL Slave_SQL 0 Slave has read all relay log; waiting for more updates NULL 0.000Il est important de vérifier :
- Le démontage des snapshot est bien effectué
- Que le Slave est bien démarré
- Que la réplication est active
Nous pouvons maintenant contrôler que la réplication fonctionne :
/usr/share/centreon-ha/bin/mysql-check-status.sh
Connection MASTER Status 'Centreon-DB1' [OK]
Connection SLAVE Status 'Centreon-DB2' [OK]
Slave Thread Status [OK]
Position Status [OK]Etapes suivantes
- Installation des briques corosync/pacemaker/heartbeat
- Configuration du cluster
- Configuration des centreon pour la HA
