Linux(centos7.X)安装keepalived

1、下载

点击keepalived官方网站进行下载,由于工作需要,本人下载安装版本为1.3.6 。

2、安装

# 解压
tar -zxvf keepalived-1.3.6.tar.gz
# 配置校验
cd keepalived-1.3.6
./configure
# 安装
make
make install
# 检查版本
keepalived -v

# 如果需要卸载,请执行 make uninstall

3、配置

3.1 新增/etc/keepalived/keepalived.conf配置文件

! Configuration File For Keepalived

# 全局配置
global_defs {
        # 集群中本节点的名称,可使用主机名
        # 设置主机名名称的命令 hostname nginx-1
        router_id nginx-1
        # 指定执行脚本的用户
        script_user root
        enable_script_security
}

vrrp_script chk_nginx {
        # 健康检查脚本
        script "/etc/keepalived/nginx_check.sh"
        # 检查时间间隔
        interval 3
}

vrrp_instance VI_1 {
        # 状态,MASTER表示主节点,BACKUP表示备节点
        state MASTER
        # 网卡名称
        interface ens33
        # 虚拟路由ID,同网段中不同组不能重复!!!
        # 同主节点保持一致
        virtual_router_id 51
        # 优先级,主节点要高于备节点
        priority 100
        # 进行通告
        advert_int 1

        # 本机IP,实现定向传递心跳,减小网络广播
        unicast_src_ip 192.168.141.133

        unicast_peer {
                # 集群中其他节点地址
                192.168.141.135
        }

        authentication {
                # 认证方式,密码认证
                auth_type PASS
                # 密码
                auth_pass 1111
        }

        track_script {
                # 指向上面自定义的健康检查模块
                chk_nginx
        }

        virtual_ipaddress {
                # 虚地址,会自动启一个该虚拟网卡,客户可以访问该地址
                192.168.141.188
        }
}

3.2 新增vi /etc/keepalived/nginx_check.sh配置文件

#!/bin/bash

A=`ps -C nginx --no-header | wc -l`
if [ $A -eq 0 ]; then
        /home/nginx/nginx/sbin/nginx -c /home/nginx/nginx/conf/nginx.conf
        sleep 2
        if [ `ps -C nginx --no-header | wc -l` -eq 0 ]; then
                pkill keepalived
        fi
fi

3.3 BACKUP节点keepalived.conf配置(只有该配置文件不一样)

! Configuration File For Keepalived

# 全局配置
global_defs {
        # 集群中本节点的名称,可使用主机名
        # 设置主机名名称的命令 hostname nginx-2
        router_id nginx-2
        # 指定执行脚本的用户
        script_user root
        enable_script_security
}

vrrp_script chk_nginx {
        # 健康检查脚本
        script "/etc/keepalived/nginx_check.sh"
        # 检查时间间隔
        interval 3
}

vrrp_instance VI_1 {
        # 状态,MASTER表示主节点,BACKUP表示备节点
        state BACKUP
        # 网卡名称
        interface ens33
        # 虚拟路由ID,同网段中不同组不能重复!!!
        # 同主节点保持一致
        virtual_router_id 51
        # 优先级,主节点要高于备节点
        priority 90
        # 自动检测心跳时间
        advert_int 1

        # 本机IP,实现定向传递心跳,减小网络广播
        unicast_src_ip 192.168.141.135

        unicast_peer {
                # 集群中其他节点地址
                192.168.141.133
        }

        authentication {
                # 认证方式,密码认证
                auth_type PASS
                # 密码
                auth_pass 1111
        }

        track_script {
                # 指向上面自定义的健康检查模块
                chk_nginx
        }

        virtual_ipaddress {
                # 虚地址,会自动启一个该虚拟网卡,客户可以访问该地址
                192.168.141.188
        }
}

4、注意事项

4.1 严格配置三个时间

​ vrrp_instance模块中的advert_int(自动检测心跳时间)一定要小于vrrp_script模块中的interval(检查脚本执行间隔时间),vrrp_script模块中的interval(检查脚本执行间隔时间)一定要大于执行脚本中的sleep时间!

​ 这里如果配置不好,会导致报/etc/keepalived/nginx_check.sh exited due to signal 15错误。

4.2 要确保执行脚本有执行权限

​ 这里如果配置不好,会无法调用执行脚本。

4.3 执行脚本中的开启nginx的命令必须是全路径,即便配置了全局变量也要是全路径。

​ 这里如果配置不好,会导致检查脚本无法启用nginx,而直接杀死keepalived。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值