keeperalived配置

0基础概述:

keepalived如果想要配置两台服务器的高可用,部署的东西一定要采用相同的账号密码和端口,keepalived其实就是代理,默认keepalived的VIP端口号是与其代理的服务器一一对应的。
举个例子,你现在有两台服务器,A服务器为主服务器,B服务器为副服务器,我们以Mysql为例,A服务器上的Mysql端口号是3306,B服务器上为3309,如果在不额外配置的情况下,肯定是无法成功转移到B服务器上的,用户名和密码亦是同理。

keepalived搭建:

1、Master安装keepalived

安装keepalived

yum install –y  kernel-devel openssl-develpopt-devel
yum install -y keepalived

修改配置:

! Configuration File for keepalived

global_defs {
    # 当keepalived服务出现特定事件(如主备切换、服务故障等)时,会向这些邮箱发送通知邮件
    notification_email {
        admin1@qq.com
    }
    # 定义发送通知邮件的发件邮箱地址
    notification_email_from admin@qq.com
    # 指定用于发送通知邮件的SMTP服务器地址
    smtp_server smtp.qq.com
    # 设置连接SMTP服务器的超时时间
    smtp_connect_timeout 30
    # SMTP服务器验证身份
    smtp_user admin@qq.com
    # 授权码
    smtp_password "xxxxxxxx"
}

vrrp_script chk_mysql_port {
     # 指定要执行的脚本路径
            script "/tmp/mysql.sh"
            # 设置脚本执行的时间间隔
            interval 2
}

# 定义VRRP实例,用于实现虚拟路由器冗余功能
vrrp_instance VI_1 {
    # 定义当前节点在此VRRP实例中的初始状态,可选值为MASTER(主节点)或BACKUP(备份节点)
      state MASTER    
    # 指定绑定虚拟IP的网卡接口名称
    interface eth0      
    # 设置本机的IP地址
    mcast_src_ip 192.168.110.73
    # 虚拟路由器标识,同一个VRRP组内(即多个节点共同参与的冗余场景)的所有节点此值必须一致
    virtual_router_id 51    
    # 定义节点的优先级,数字越大优先级越高
    priority 101            
    # 定义VRRP通告消息的发送间隔时间,单位为秒,用于节点之间交换状态信息,保持状态同步
    advert_int 1         
    # 配置VRRP实例的认证信息,用于节点之间验证通信的合法性
    authentication {   
        auth_type PASS 
        auth_pass 123456     
    }
    # 定义虚拟IP地址及对应的子网掩码
    virtual_ipaddress {    
        192.168.110.79/24  
    }
    # 定义跟踪脚本相关配置
    track_script {
    chk_mysql_port
    }
}

注:keepalived的配置文件读取顺序是从上往下读取的,创建方法,必须要在引用方法的上方,例如上方我配置了跟踪脚本,必须要在track_script 引用的上方,不能出现在下方,否则,运行会出现错误,即找不到引用的方法。

编写kill_keepalived.sh

vim /tmp/mysql.sh

mysql.sh内容如下

#!/bin/bash
counter=$(netstat -na|grep "LISTEN"|grep "3306"|wc -l)
if [ "${counter}" == 0 ];then
   systemctl stop keepalived
fi

设置权限

chmod 755 /tmp/mysql.sh

启动keepalived

systemctl start keepalived

2、Slave安装keepalived

安装keepalived

yum install –y  kernel-devel openssl-develpopt-devel
yum install -y keepalived

修改配置:

! Configuration File for keepalived

global_defs {
    # 当keepalived服务出现特定事件(如主备切换、服务故障等)时,会向这些邮箱发送通知邮件
    notification_email {
        admin1@qq.com
    }
    # 定义发送通知邮件的发件邮箱地址
    notification_email_from admin@qq.com
    # 指定用于发送通知邮件的SMTP服务器地址
    smtp_server smtp.qq.com
    # 设置连接SMTP服务器的超时时间
    smtp_connect_timeout 30
    # SMTP服务器验证身份
    # smtp_user admin@qq.com
    # 授权码
    # smtp_password "xxxxxxxxx"
}

vrrp_script chk_mysql_port {
     # 指定要执行的脚本路径
            script "/tmp/mysql.sh"
            # 设置脚本执行的时间间隔
            interval 2
}



# 定义VRRP实例,用于实现虚拟路由器冗余功能
vrrp_instance VI_1 {
    # 定义当前节点在此VRRP实例中的初始状态,可选值为MASTER(主节点)或BACKUP(备份节点)
      state BACKUP    
    # 指定绑定虚拟IP的网卡接口名称
    interface eth0      
    # 设置本机的IP地址
    mcast_src_ip 192.168.110.71
    # 虚拟路由器标识,同一个VRRP组内(即多个节点共同参与的冗余场景)的所有节点此值必须一致
    virtual_router_id 51    
    # 定义节点的优先级,数字越大优先级越高
    priority 99            
    # 定义VRRP通告消息的发送间隔时间,单位为秒,用于节点之间交换状态信息,保持状态同步
    advert_int 1         
    # 配置VRRP实例的认证信息,用于节点之间验证通信的合法性
    authentication {   
        auth_type PASS 
        auth_pass 123456     
    }
    # 定义虚拟IP地址及对应的子网掩码
    virtual_ipaddress {    
        192.168.110.79/24  
    }
    # 定义跟踪脚本相关配置
    track_script {
      chk_mysql_port
    }
}

注:不知道为什么,这里的邮箱提示报错,尚未解决,如果有能解决的请解决一下。

编写kill_keepalived.sh

vim /tmp/mysql.sh

mysql.sh内容如下

#!/bin/bash
counter=$(netstat -na|grep "LISTEN"|grep "3306"|wc -l)
if [ "${counter}" == 0 ];then
   systemctl stop keepalived
fi

设置权限

chmod 755 /tmp/mysql.sh

启动keepalived

systemctl start keepalived
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值