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

Utilisant Centreon depuis quelques temps déjà, et plus particulièrement Centreon Enterprise Server, je vais dérouler ici son installation reposant sur un cluster Galera avec MariaDB 10.1

La première partie consistera à la mise en place du cluster Galera MariaDB (il n’y aura qu’un node exploitable au départ), une deuxième partie pour installer HAProxy afin d’accéder aux DB servers puis installer Centreon Enterprise Server dans une troisième phase, et enfin terminer la configuration du cluster DB dans la dernière partie.

Tout d’abord, pourquoi MariaDB, tout simplement car c’est le moteur installé par l’ISO de CES. Bien que la version de l’ISO soit en 5.5.x, je suis parti sur la 10.1 pour cet article mais c’est tout aussi fonctionnel avec la 5.5.x.

Toute la documentation est disponible ici et elle permet de se former sur l’installation, le fonctionnement et l’exploitation d’un cluster Galera. Il est plus prudent de partir sur un nombre impair de nodes mais dans certains cas, ce n’est pas vital. Ici j’ai installé 3 nodes afin de conserver un primary component lors d’une panne (ou de l’arrêt) d’un seul serveur sans modifier le poids des nodes.

Je ne détaillerai pas l’installation système des serveurs CentOS 7, je passerai donc directement à l’installation des services applicatifs.

Présentation de la maquette

5 serveurs vont être utilisés pour monter cette petite infra:

  • un serveur Centreon : ces1 (192.168.1.175)
  • un serveur HAProxy : ha1 (192.168.1.172)
  • 3 serveurs MariaDB pour le cluster Galera : maria-cl1 (192.168.1.169), maria-cl2 (192.168.1.170), maria-cl3 (192.168.1.171)

Installer et configurer le cluster

à faire sur les 3 nodes

On commence par ajouter le dépôt nécessaire:

vim /etc/yum.repos.d/MariaDB.repo
# MariaDB 10.1 CentOS repository list - created 2016-04-04 21:28 UTC
# http://mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

Cette configuration se génère sur le site suivant : MariaDB Foundation

Installer MariaDB avec le support de Galera natif, la partie client servira pour les connexions de test:

yum -y install mariadb-server mariadb-client

Paramétrage du moteur

systemctl start mysql
mysql_secure_installation

Les paramètres de ce script sont décrits ici dans la partie Installation du SGBD MySQL.

systemctl stop mysql

Configurations du système

Il faut créer l’arborescence des logs:

mkdir /var/log/mysql
cd /var/log/mysql/
touch mysql.log
touch mysql-slow.log
chown mysql:root *.log
chmod 664 *.log

Ensuite modifier le fichier server.cnf dans /etc/my.cnf.d:

bloc [mysqld]

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
open-files-limit = 32000
#LOGS
general_log_file = /var/log/mysql/mysql.log
general_log = 0
slow_query_log_file = /var/log/mysql/mysql-slow.log
slow_query_log = 1
long_query_time = 10
log_error = /var/log/mysql/mysql_error.log

bloc [galera]

[galera]
# Mandatory settings
wsrep_on=ON
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://ip1,ip2,ip3"
wsrep_provider_options="gcache.size=300M; gcache.page_size=300M"
binlog_format=row
default_storage_engine=InnoDB
query_cache_size=0
innodb_autoinc_lock_mode=2
# Allow server to accept connections on all interfaces.
bind-address="ip1"
# Optional setting
wsrep_cluster_name="clu1"
wsrep_node_name="server1"
wsrep_node_address="ip1"
wsrep_sst_method=rsync

Dans le fichier ci-dessus, il faut adapter les valeurs en rouge et modifier seulement les paramètres suivants pour chaque node:

  • bind-address
  • wsrep_node_name
  • wsrep_node_address

Ajouter les 2 lignes suivantes dans le fichier /etc/systemd/system/mariadb.service.d/limits.conf

[Service]
LimitNOFILE=32000

Recharger ensuite le service mariadb

systemctl daemon-reload

Initialiser le cluster

seulement sur le node 1

Créer le cluster et lancer le service

galera_new_cluster
systemctl start mysql

Ne pas démarrer les autres nodes pour le moment.

Il faut maintenant mettre en place HAProxy afin de pouvoir se connecter à la base de données sans se soucier du fonctionnement des 3 nodes : Installer CES 3.3 + cluster Galera avec MariaDB 10.1 – Part 2.