Le cluster MariaDB Galera reposera sur 3 nodes, il faut donc pouvoir attaquer une seule IP sur un load balancer qui sera HAProxy.
Configurer les bases de données
Se connecter uniquement sur un des 3 serveurs MariaDB et créer l’utilisateur mysqlchk:
mysql -u root -p > GRANT PROCESS ON *.* TO 'clustercheckuser'@'localhost' IDENTIFIED BY 'clustercheckpassword!';
Configurer chaque serveur de base de données
Installer Xinetd
yum install xinetd
Récupérer clustercheck
link: https://github.com/olafz/percona-clustercheck
cd /usr/local/src curl -o clustercheck https://raw.githubusercontent.com/olafz/percona-clustercheck/master/clustercheck chmod +x clustercheck mv clustercheck /usr/bin/ vim /etc/xinetd.d/mysqlchk # default: on # description: mysqlchk service mysqlchk { disable = no flags = REUSE socket_type = stream port = 9200 # This port used by xinetd for clustercheck wait = no user = nobody server = /usr/bin/clustercheck log_on_failure += USERID only_from = 0.0.0.0/0 per_source = UNLIMITED }
Ajouter la ligne suivante pour déclarer le service mysqlchk sur le port 9200
vim /etc/services
l.10101 : mysqlchk 9200/tcp # mysqlchk
- commenter toutes les lignes contenant 9200
Démarrer Xinetd
systemctl start xinetd
Tester clustercheck
/usr/bin/clustercheck
Il faut obtenir le code OK 200 comme ci-dessous:
Configurer HAProxy sur le serveur ha1
Installer HAProxy
yum install haproxy
Décommenter les 2 premières lignes ci-dessous et ajouter la 3e
vim /etc/rsyslog.conf
l.15: $ModLoad imudp
l.16: $UDPServerRun 514
l.17: $AllowedSender UDP, 127.0.0.1
Modifier ces lignes
vim /etc/rsyslog.conf
l.55:*.info;mail.none;authpriv.none;cron.none,local2.none /var/log/messages
l.56: local2.* /var/log/haproxy.log
cd /etc/haproxy mv haproxy.cfg haproxy.cfg.bak vim haproxy.cfg
Le fichier haproxy.cfg contient les configurations du load balancer:
- configurations globales : utilisateur, logger, connexion
- méthode de check, timeout
- un bloc pour le load balancing sur le port 3030 : protocole, mode (ici leastconn basé sur la charge, roundrobin est possible pour du web), infos des serveurs cibles
- un bloc pour le website de statistiques sur le port 9000
Configurer firewalld
systemctl start firewalld firewall-cmd --permanent --add-port=9000/tcp firewall-cmd --permanent --add-port=3030/tcp firewall-cmd --reload
Démarrer HAProxy
systemctl start haproxy
Pour vérifier le fonctionnement du service HAProxy, il faut exécuter cette commande plusieurs fois (le package mariadb est nécessaire):
mysql -u root -p -h 192.168.1.172 -P 3030 -e "select @@hostname"
- dans les résultats, il faut apercevoir le nom du serveur changer souvent, c’est que le load balancer HAProxy fonctionne
HAProxy vérifie les serveurs MariaDB toutes les secondes environ
tail -f /var/log/messages
Pour désactiver un serveur MariaDB, créer ce fichier
touch /var/tmp/clustercheck.disabled
Afficher les statistiques du serveur HAProxy sur l’interface Web:
- http://haproxy-ip:9000/stats
- user: ha-admin
- password: password
user et password se trouvent dans le fichier de configuration d’HAProxy (haproxy.cfg)
Passons maintenant à l’installation de CES : Installer CES 3.3 + cluster Galera avec MariaDB 10.1 – Part 3.