Balanceador de carga para MariaDB con Galera
· 5min · linux
Introducción
En esta entrada vamos a ver cómo instalar y configurar un balanceador de carga para MariaDB con Galera.
Nodos del Cluster
- nodo1: 192.168.1.81
- nodo2: 192.168.1.82
- nodo3: 192.168.1.83
- maxscale: 192.168.1.84
Balanceador de carga
Para balancear la carga de los nodos del clúster de MariaDB con Galera, vamos a usar un balanceador de carga.
Instalación de repositorios automática
curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
Instalación de Mariadb MaxScale
Para ello vamos a usar el balanceador de carga MaxScale de MariaDB.
sudo apt update
sudo apt install maxscale
Creación del usuario para MaxScale
Para ello vamos a crear un usuario en el nodo 1 del clúster de MariaDB con Galera.
mysql -u root -p
CREATE USER 'maxscale'@'%' IDENTIFIED BY 'maxscale_pw';
GRANT SELECT ON mysql.user TO 'maxscale'@'%';
GRANT SELECT ON mysql.db TO 'maxscale'@'%';
GRANT SELECT ON mysql.tables_priv TO 'maxscale'@'%';
GRANT SELECT ON mysql.columns_priv TO 'maxscale'@'%';
GRANT SELECT ON mysql.procs_priv TO 'maxscale'@'%';
GRANT SELECT ON mysql.proxies_priv TO 'maxscale'@'%';
GRANT SELECT ON mysql.roles_mapping TO 'maxscale'@'%';
GRANT SHOW DATABASES ON *.* TO 'maxscale'@'%';
FLUSH PRIVILEGES;
Creación del la cuenta de usuario de la bbdd para MaxScale
CREATE USER 'usuario_cliente'@'192.168.1.84' IDENTIFIED BY 'my_secret_password';
GRANT SELECT, INSERT, UPDATE, DELETE ON *.* TO 'usuario_cliente'@'192.168.1.84';
FLUSH PRIVILEGES;
Ojo con el la contraseña y la ip del nodo de MaxScale
Creación del usuario monitor
CREATE USER 'monitor_user'@'%' IDENTIFIED BY 'my_password';
FLUSH PRIVILEGES;
Ojo con la contraseña del usuario de monitor
Configuración de MaxScale
Para ello editamos el fichero de configuración de MaxScale
sudo nano /etc/maxscale.cnf
Contenido del fichero de configuración
[maxscale]
threads=auto
admin_enabled=1
admin_auth=1
admin_gui=1
admin_host=0.0.0.0
admin_port=8989
admin_secure_gui=false
[dbserv1]
type=server
address=192.168.1.81
port=3306
[dbserv2]
type=server
address=192.168.1.82
port=3306
[dbserv3]
type=server
address=192.168.1.83
port=3306
[Galera-Monitor]
type=monitor
module=galeramon
servers=dbserv1, dbserv2, dbserv3
user=monitor_user
password=my_password
monitor_interval=2000ms
[Read-Write-Service]
type=service
router=readconnroute
router_options=synced,master,slave
servers=dbserv1, dbserv2, dbserv3
user=maxscale
password=maxscale_pw
[RW_Listener]
type=listener
service=Read-Write-Service
protocol=MariaDBClient
port=3306
Arranque del servicio
sudo systemctl start maxscale
Verificación del estado del servicio
sudo systemctl status maxscale
Acceso al panel de administración
Para acceder al panel de administración de MaxScale, abre un navegador y accede a la siguiente URL: http://192.168.1.84:8989/
Con el usuario y contraseña: admin/mariadb
Instalación del cliente de MariaDB
sudo apt update
sudo apt install mariadb-client
Verificación con el cliente de MariaDB
sudo mariadb --protocol=TCP \
--host=192.168.1.84 \
--port=3306 \
--user=usuario_cliente \
--skip-ssl \
--password
Mete la contraseña del usuario cliente que has creado anteriormente: my_secret_password
SHOW DATABASES;
Verificación del estado del MAXSCALE
sudo maxctrl list services --user=admin --password=mariadb
sudo maxctrl list servers --user=admin --password=mariadb
sudo maxctrl list listeners --user=admin --password=mariadb
Creación de un nuevo usuario de MaxScale
sudo maxctrl create user miadmin SuContrasegna123 --type=admin --user=admin --password=mariadb
Verificación del nuevo usuario de MaxScale
sudo maxctrl list users --user=admin --password=mariadb
Cambio de contraseña del usuario de MaxScale
sudo maxctrl alter user admin MiNuevaContrasegna123 --user=admin --password=mariadb
Eliminación del usuario de MaxScale
sudo maxctrl destroy user admin --user=admin --password=mariadb