GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment configurer Percona Cluster avec HAproxy Loadbalancer sur CentOS 7

Nous avons montré précédemment comment configurer le cluster MariaDB Galera avec HAproxy, et aujourd'hui nous ferons la même configuration avec la distribution Percona de MySQL. Percona est la société qui possède une expertise approfondie avec MySQL et MongoDB, et ils font leurs propres distributions de ces bases de données ainsi que des moteurs de stockage pour les deux bases de données. Aujourd'hui, nous nous concentrerons uniquement sur MySQL, et non sur l'offre MongoDB de cette société.

Configuration des hôtes, du pare-feu et des référentiels

Commencez par définir le fichier hosts. Nous avons trois nœuds pour le cluster Percona et un nœud pour HAproxy. Mon fichier hosts sur les 4 serveurs contient ces quatre lignes :

10.17.0.8 centos-percona01
10.17.0.9 centos-percona02
10.17.0.10 centos-percona03
10.17.0.11 centos-haproxy

Ensuite, configurons le pare-feu sur tous les hôtes sauf HAproxy. Celui-ci nécessitera des paramètres différents et nous le ferons en dernier. Commençons par démarrer le pare-feu sur les trois nœuds percona.

systemctl start firewalld

Ensuite, nous autorisons le service mysql. Pecona est une distribution mysql, elle utilise donc le même port que mysql.

firewall-cmd --zone=public --add-service=mysql --permanent

Ensuite, nous ajoutons d'autres ports nécessaires :

firewall-cmd --zone=public --add-port=3306/tcp --permanent

firewall-cmd --zone=public --add-port=4567/tcp --permanent
firewall-cmd --zone=public --add-port=4568/tcp --permanent
firewall-cmd --zone=public --add-port=4444/tcp --permanent
firewall-cmd --zone=public --add-port=4567/udp --permanent

firewall-cmd --zone=public --add-port=9200/tcp --permanent
 

Et rechargez le pare-feu

 firewall-cmd --reload

Lorsque cela est fait, nous devons ensuite installer la version epel

yum installer epel-release

Ensuite, nous installons socat à partir du référentiel EPEL

yum install socat

Et puis nous supprimons mariadb-libs car il est en conflit avec percona

yum remove mariadb-libs

Installation et configuration de Percona

Nous devons ajouter un dépôt contenant percona

yum install https://www.percona.com/redir/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm

Nous pouvons maintenant installer le cluster percona et toutes les autres dépendances

yum install Percona-XtraDB-Cluster-server-56 Percona-XtraDB-Cluster-client-56 Percona-XtraDB-Cluster-shared-56 percona-toolkit percona-xtrabackup Percona-XtraDB-Cluster-galera-3 rsync nc

Et lancez mysql

systemctl start mysql

La première chose que nous faisons sur tous les serveurs mysql est d'exécuter le script mysql_secure_installation. Alors allons-y.

mysql_secure_installation

Vous devez saisir votre nouveau mot de passe root et répondre à toutes les questions.

Une fois terminé, connectez-vous à votre compte root

mysql -u root -p

enter password

Et créez sstuser votre cluster

mysql> create user sstuser@'%' identified by 'strongpassword';
Query OK, 0 rows affected (0.01 sec)

mysql> grant all on *.* to sstuser@'%';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

Après cela, nous devons arrêter Mysql pour éditer les fichiers de configuration.

systemctl stop mysql

nano /etc/my.cnf

Dans la configuration, trouvez ces lignes et faites-les ressembler exactement à ceci, changez simplement votre propre mot de passe et changez le nom et l'adresse du nœud en votre nom d'hôte pour chaque serveur

wsrep_cluster_address = gcomm://centos-percona01,centos-percona02,centos-percona03
wsrep_provider = /usr/lib64/galera3/libgalera_smm.so

wsrep_slave_threads = 8
wsrep_cluster_name = Cluster Percona XtraDB
wsrep_node_name = centos-percona01
wsrep_node_address = centos-percona01
wsrep_sst_method = xtrabackup-v2
wsrep_sst_auth = sstuser:strongpassword

Notez que la première ligne sur le premier serveur (centos-percona01) peut être vide, comme ceci :

wsrep_cluster_address = gcomm://

Une fois la configuration terminée, nous devons amorcer le premier nœud, puis démarrer normalement le deuxième et le troisième.

Lors de la première exécution du serveur

systemctl start mysql@bootstrap

en deuxième et troisième passage

systemctl start mysql

Ensuite, nous devons tester si le cluster fonctionne.

mysql -u root -p

saisir le mot de passe

Et puis exécutez ces commandes :

SHOW STATUS LIKE 'wsrep_local_state_comment';

show global status like 'wsrep_cluster_size';

Ils devraient obtenir une sortie comme celle-ci :

Avec cette configuration de cluster est terminée.

Configuration d'HAproxy

Tout d'abord, nous avons besoin que clustercheck soit installé sur tous les nœuds du cluster afin que le cluster soit utilisable avec HAproxy. Récupérons le script avec wget

wget https://raw.githubusercontent.com/olafz/percona-clustercheck/master/clustercheck

Le script doit être rendu exécutable et déplacé vers l'un de vos répertoires $PATH.

chmod +x clustercheck

mv clustercheck /usr/bin/

Maintenant, nous avons également besoin de mysqlchk qui est inclus dans le paquet xinetd :

yum install xinetd

Ensuite, nous déplaçons créer un utilisateur clustercheck sur la base de données. Nous ne pouvons taper ceci que sur le premier nœud

mysql -u root -p

mysql> GRANT PROCESS ON *.* TO 'clustercheckuser'@'localhost' IDENTIFIED BY 'clustercheckpassword!';

exit;

Ensuite, nous pouvons tester si clustercheck fonctionne comme prévu :

[root@centos-percona01 ~]# clustercheck
HTTP/1.1 200 OK
Content-Type: text/plain
Connection: close
Content-Length: 40

Percona XtraDB Cluster Node is synced.

Ensuite, nous passons à la configuration de xinetd, xinetd doit être ajouté à la liste des services.

nano /etc/services

Nous utilisons CTRL-W pour trouver la partie où se trouve le port 9200, puis nous félicitons les services qui utilisent ce port et ajoutons à la place une nouvelle ligne. Il doit ressembler à ceci :

mysqlchk 9200/tcp # mysqlchk
#wap-wsp 9200/tcp # WAP connectionless session service
#wap-wsp 9200/udp # WAP connectionless session service

Une fois que nous avons terminé, nous économisons. Notez que tous les nœuds du cluster, à l'exception de HAproxy, doivent l'avoir fait.

Il est maintenant temps de vous connecter à notre serveur HAporoxy. Nous devons d'abord sauvegarder la configuration haproxy.

mv /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bk

Ensuite, nous en ferons un nouveau à partir de table rase

nano /etc/haproxy/haproxy.cfg

Nous pouvons copier la configuration de HAproxy à partir d'ici, sauf que ces trois lignes doivent être modifiées :

server centos-percona01 10.132.84.186:3306 check port 9200 inter 12000 rise 3 fall 3
server centos-percona02 10.132.84.141:3306 check port 9200 inter 12000 rise 3 fall 3
server centos-percona03 10.132.84.67:3306 check port 9200 inter 12000 rise 3 fall 3

Les parties en surbrillance doivent être modifiées avec vos noms d'hôte et vos adresses. Ensuite, nous devons démarrer le pare-feu sur le serveur haproxy et autoriser les ports que nous devons utiliser

systemctl start firewalld
firewall-cmd --permanent --add-port=9000/tcp
firewall-cmd --permanent --add-port=3030/tcp

Après cela, nous devons recharger le pare-feu

firewall-cmd --reload

Enfin, lancez haproxy

systemctl start haproxy

La configuration est terminée, nous devons maintenant tester.

Tester HAproxy

Pointons simplement le navigateur vers l'adresse IP publique du serveur HAproxy sur le port 9000 :

Tous les nœuds sont en ligne. Ensuite, installons le client percona sur le serveur haproxy afin que nous puissions essayer d'interroger le cluster à partir de là.

yum install https://www.percona.com/redir/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm

yum install Percona-XtraDB-Cluster-client-56

Et essayons de voir si nous pouvons avoir une requête de ce serveur haproxy :

mysql -u root -p -h 10.132.83.13 -P 3306 -e "select Host, User, Password from mysql.user"

Conclusion

Nous avons mis en place le cluster à 3 nœuds de la charge Percona XtraDB équilibrée par HAproxy. Il s'agit d'une configuration similaire à celle de l'article de la semaine dernière avec MariaDB et Galera, mais avec le moteur de stockage Percona et sans WordPress. Cette configuration Percona peut être utilisée pour héberger une très grande variété d'ensembles de données, entre autres, vous pouvez à nouveau l'utiliser avec WordPress, comme dans notre article précédent. Sur ce, nous concluons cet article, merci d'avoir lu et bonne journée.


Cent OS
  1. Comment installer le cluster Percona XtraDB sur CentOS 7

  2. Comment installer Percona Server sur CentOS 7

  3. Comment configurer Pure-FTPD avec MySQL sur CentOS et RedHat

  4. Comment configurer Opencart sur Rocky Linux/Centos 8 avec Apache, PHP, Mysql (LAMP Stack)

  5. Comment configurer la réplication MySQL sur CentOS

Comment configurer MariaDB Galera Cluster avec HAproxy sur CentOS 7

Comment configurer MySQL avec Docker sous Linux

Comment construire un cluster actif-actif-actif avec RHEL 8 et Percona MySQL

Comment configurer la réplication MySQL dans RHEL/Centos

Comment configurer un cluster Redis dans CentOS 8 - Partie 3

Comment configurer HAProxy sur CentOS 8