Keepalived instalado y configurado para monitorear MySQL dual master en CentOS 7

instalación keepalived

Consulte aquí la configuración de doble maestro de MySQL: https://tongyao.blog.csdn.net/article/details/132016200?spm=1001.2014.3001.5502

Los pasos de instalación para los dos servidores 128 y 129 son los mismos, pero los archivos de configuración son diferentes, que se presentan a continuación.

1. Instale los paquetes de dependencia relevantes, descargue el paquete de instalación keepalived, descomprima, configure y compile

[root@128 ~]# cd /opt
[root@128 opt]# yum -y install gcc openssl-devel popt-devel psmisc
[root@128 opt]# wget https://www.keepalived.org/software/keepalived-2.2.7.tar.gz
[root@128 opt]# tar -zxvf keepalived-2.2.7.tar.gz
[root@128 opt]# cd keepalived-2.2.7
[root@128 keepalived-2.2.7]# ./configure --prefix=/opt/keepalived-2.2.7
[root@128 keepalived-2.2.7]# make && make install

2. Copie el archivo al directorio correspondiente.

[root@128 keepalived-2.2.7]# mkdir /etc/keepalived
[root@128 keepalived-2.2.7]# cp keepalived/etc/keepalived/keepalived.conf.sample /etc/keepalived/keepalived.conf
[root@128 keepalived-2.2.7]# cp keepalived/etc/init.d/keepalived /etc/init.d/
[root@128 keepalived-2.2.7]# cp keepalived/etc/sysconfig/keepalived /etc/sysconfig/
[root@128 keepalived-2.2.7]# cp bin/keepalived /usr/sbin/

3. Cree un nuevo archivo /etc/keepalived/shutdown.sh con el siguiente contenido:

#!/bin/bash
#该脚本是在mysql服务出现异常时,将keepalived应用停止,从而使虚拟vip主机自动连接到另一台mysql上
killall keepalived

Haga cumplir la autorización; de lo contrario, keepalived no se cerrará cuando ocurra una excepción de MySQL:

chmod 777 /etc/keepalived/shutdown.sh

4. Utilice el comando ifconfig para verificar el nombre de la tarjeta de red. El nombre de la tarjeta de red local es ens33.
Insertar descripción de la imagen aquí
5. Modifique el archivo de configuración 128 server/etc/keepalived/keepalived.conf de la siguiente manera:

! Configuration File for keepalived
 
global_defs {
   notification_email {
     [email protected]
     [email protected]
     [email protected]
   }
   notification_email_from [email protected]
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_MASTER
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}
 
vrrp_instance VI_1 {
    state MASTER
    #interface为刚才查到的本机网卡名称
    interface ens33
    #同一网段中同一组virtual_router_id值相同。不同组virtual_router_id值唯一。
    #如server-1、server-2为一组,virtual_router_id=51
    #server-3、server-4为一组,则virtual_router_id不能为51
    virtual_router_id 51
    #字数越大,优先级越高,master必须大于backup
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
       #该ip为虚拟出来的vip地址
       192.168.222.130
    }
}
 
#配置virtual_server  ip为上面配置的虚拟vip地址  端口为mysql的端口
virtual_server 192.168.222.130 3306 {
    delay_loop 6
    lb_algo rr
    lb_kind NAT
    persistence_timeout 50
    protocol TCP
    #real_server 该配置为实际物理机ip地址 以及实际物理机mysql端口
    real_server 192.168.222.128 3306 {
        #当该ip 端口连接异常时,执行该脚本
        notify_down /etc/keepalived/shutdown.sh
        TCP_CHECK {
            #实际物理机ip地址
            connect_ip 192.168.222.128
            #实际物理机port端口
            connect_port 3306
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

6. Modifique el archivo de configuración 129 server/etc/keepalived/keepalived.conf. La diferencia con la configuración de 128 son las dos configuraciones de real_server y connect_ip. Es necesario configurar la IP del host real correspondiente. Los detalles son los siguientes:

! Configuration File for keepalived
 
global_defs {
   notification_email {
     [email protected]
     [email protected]
     [email protected]
   }
   notification_email_from [email protected]
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id LVS_MASTER
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}
 
vrrp_instance VI_1 {
    state BACKUP
    #interface为刚才查到的本机网卡名称
    interface ens33
    #同一网段中同一组virtual_router_id值相同。不同组virtual_router_id值唯一。
    #如server-1、server-2为一组,virtual_router_id=51
    #server-3、server-4为一组,则virtual_router_id不能为51
    virtual_router_id 51
    #字数越大,优先级越高,master必须大于backup
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
       #该ip为虚拟出来的vip地址
       192.168.222.130
    }
}
 
#配置virtual_server  ip为上面配置的虚拟vip地址  端口为mysql的端口
virtual_server 192.168.222.130 3306 {
    delay_loop 6
    lb_algo rr
    lb_kind NAT
    persistence_timeout 50
    protocol TCP
    #real_server 该配置为实际物理机ip地址 以及实际物理机mysql端口
    real_server 192.168.222.129 3306 {
        #当该ip 端口连接异常时,执行该脚本
        notify_down /etc/keepalived/shutdown.sh
        TCP_CHECK {
            #实际物理机ip地址
            connect_ip 192.168.222.129
            #实际物理机port端口
            connect_port 3306
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

Para una configuración detallada, consulte "Explicación detallada de la instalación y configuración de Keepalived".

7. Agregue los servidores 128 y 129 keepalived para que se inicien automáticamente en el arranque e inicien el servicio.

[root@128 keepalived-2.2.7]# systemctl enable keepalived
[root@128 keepalived-2.2.7]# systemctl start keepalived

8. Después del inicio, si el estado de keepalived es: activo (en ejecución), es normal.

Insertar descripción de la imagen aquí
9. Después del inicio, es equivalente a virtualizar un VIP 192.168.222.130. Puede usar la herramienta de conexión remota para conectarse al servidor. Después de conectarse, use ifconfig para verificar que el servidor físico real utilizado por el VIP virtual es el servidor 129. .

Insertar descripción de la imagen aquí
10. Detenga la aplicación keepalived del servidor 129 y verifique nuevamente el servicio 130 ifconfig. Puede ver que el servidor 130 deriva automáticamente la IP de la máquina física al servidor 128. En este punto, se completa la implementación de keepalived
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí
.

prueba general de alta disponibilidad mysql dual master dual active + keepalived

1. Primero inicie todas las aplicaciones mysql y keepalived en los dos servidores 128 y 129, y luego use la herramienta de conexión mysql para conectarse al servidor 192.168.222.130 virtualizado por keepalived.

Insertar descripción de la imagen aquí
2. Inserte id = 3, nombre = 'wangwu' en la tabla t_test de la biblioteca test_db de la base de datos 130

Insertar descripción de la imagen aquí
3. En este momento, puede ver las bases de datos 128 y 129 y los datos se han sincronizado.

Insertar descripción de la imagen aquí
4. Verifique que la máquina física real utilizada por ifconfig del servidor 130 sea 128, de modo que el servidor mysql de 128 sea la base de datos principal.

Insertar descripción de la imagen aquí
5. En este momento, detenga manualmente el servidor mysql 128. Keepalived detecta que la conexión del puerto de servicio 3306 falla y ejecutará el script /etc/keepalived/shutdown.sh para finalizar la aplicación keepalived del servidor 128.

Insertar descripción de la imagen aquí
6. En este momento, conéctese nuevamente al servicio 130, verifique ifconfig y descubra que la máquina física realmente se ha transferido del servidor 128 al servidor 129.

Insertar descripción de la imagen aquí
7. Luego use la herramienta de conexión mysql para conectarse al mysql de 130, inserte un dato id = 4, nombre = 'zhaoliu' y pruebe si los datos están almacenados en el mysql del servidor 129.

Insertar descripción de la imagen aquí
8. Verifique los datos 129 del servidor mysql. Los datos se han sincronizado, lo que indica que keepalived ha establecido con éxito una alta disponibilidad. Cuando ocurre un problema con el 128 servidor mysql, keepalived desvía automáticamente la IP al servidor 129 de la máquina física, de modo que el 129 El servidor mysql sirve como base de datos principal.

Insertar descripción de la imagen aquí
9. En este momento, inicie el servidor 128 mysql y las aplicaciones keepalived.

Insertar descripción de la imagen aquí
10. Verifique los datos de la tabla t_test de la base de datos 128. Los datos se han sincronizado correctamente.

Insertar descripción de la imagen aquí
11. Si la deriva falla, puede deberse a la duplicación de virtual_router_id en el mismo segmento de red. Comando ejecutable para comprobar si se utilizan otras IP

[root@128 keepalived-2.2.7]# tcpdump -i 网卡名 vrrp -n |grep virtual_router_id值
#例如:
[root@128 keepalived-2.2.7]# tcpdump -i eno16777736 vrrp -n |grep 51

En este punto, se completa la implementación y prueba de alta disponibilidad de mysql dual-master dual-active + keepalived.

Referencia del artículo: https://blog.csdn.net/a360284634/article/details/89892028 , con ligeras modificaciones.

Algunos otros detalles de configuración: https://www.cnblogs.com/cyleon/p/10338822.html

Supongo que te gusta

Origin blog.csdn.net/u014641168/article/details/131982020
Recomendado
Clasificación