Installer CES 3.3 + cluster Galera avec MariaDB 10.1 – Part 2

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:

result_clustercheck

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

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)

website_haproxy

Passons maintenant à l’installation de CES : Installer CES 3.3 + cluster Galera avec MariaDB 10.1 – Part 3.