keepalived 主从搭建

基本环境:centos7

1、源码包安装

 cd /usr/local/src/  #进入到准备放源文件的目录
[root@localhost src]# pwd
/usr/local/src
[root@localhost src]# wget http://www.keepalived.org/software/keepalived-2.0.18.tar.gz  #下载源码
[root@localhost src]# tar xvf keepalived-2.0.18.tar.gz  # 解压
[root@localhost src]# cd keepalived-2.0.18 #进入到解压后的目录
[root@localhost src keepalived-2.0.18]# ./configure --prefix=/usr/local/keepalived  #校验
[root@localhost src keepalived-2.0.18]# make && make install # 编译安装

2、初始化及启动

[root@localhost /]# cp /usr/local/keepalived/etc/sysconfig/keepalived  /etc/sysconfig/keepalived 

# 将keepalived主程序加入到环境变量(安装目录下)
[root@localhost /]# cp /usr/local/keepalived/sbin/keepalived /usr/sbin/keepalived

# keepalived启动脚本(源码目录下),放到/etc/init.d/目录下就可以使用service命令便捷调用
[root@localhost /]# cp /usr/local/src/keepalived-2.0.18/keepalived/etc/init.d/keepalived  /etc/init.d/keepalived
# 将配置文件放到默认路径下
[root@localhost /]# mkdir /etc/keepalived
[root@localhost /]# cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf



加为系统服务:chkconfig –add keepalived
开机启动:chkconfig keepalived on
查看开机启动的服务:chkconfig –list
启动、关闭、重启service keepalived start|stop|restart

3、keepalived 配置 

vim /etc/keepalived/keepalived.conf  #配置keepalived.conf

! Configuration File for keepalived
global_defs {

    router_id LVS_DEVEL #设定本机的唯一标识,一般为主机名
    #script_user root
    enable_script_security  #必须加上这个,我看其他博客很少配置这个,但我不加上这个不能执行守护脚本
  # user root
}

vrrp_script check_nginx_status {
      script "/etc/keepalived/check_nginx_status.sh"  # 指定脚本位置
      interval 5    # 执行脚本的间隔  
      weight -20    # 设置脚本执行优先级
      user root    
      fall 2
      # rise 1
}


vrrp_instance VI_1 {
    state MASTER            #标示状态为:MASTER 备份机为:BACKUP
    interface ens33         #设置实例绑定的网卡
    virtual_router_id 51    # 主从virtual_router_id必须相同
    priority 100            #MASTER权重必须要高于BACKUP 比如BACKUP为99
    advert_int 1            #MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒
    authentication {        #主从服务器验证方式
        auth_type PASS
        auth_pass 1111
    }

    track_script {         #执行检查脚本,当检测到nginx宕掉后,把keepalived也杀死,从而进行故障转移
         check_nginx_status
     }
    virtual_ipaddress {     #设置vip   主从需设置一致
        192.168.3.100
    }
}

4、检测脚本

创建脚本文件: check_nginx_status.sh,这个脚本是检测nginx是否正在运行。

脚本逻辑为:先检测nginx是否在运行,没有则重启nginx,等2秒后再检测一次,如果nginx依旧没有启动,则停止keepalived。

脚本注意 开头一定要有 #!/bin/bash,不然keepalived 执行不起。

#!/bin/bash
counter=$(ps - C nginx --no-heading|wc -l)  
if [ "${counter}" = "0" ]; then
  /usr/local/nginx/sbin/nginx
 sleep 2
 counter=$(ps -C nginx --no-heading|wc -l)
 if [ "${counter}" = "0" ]; then
  systemctl stop keepalived
 fi
fi

脚本赋权限:chmod 755 check_nginx_status.sh

注意给执行权限 chmod 755, 不能给777。至少root用户不能给777权限,安全机制导致不会被keepalived执行

5、配置文件检测:

请在v2.0.13及以上版本使用,之前的版本reload两次后进程会终止,官方已恢复。

/usr/local/keepalived/sbin/keepalived -t

6、问题:

Disabling track script check_nginx_status due to insecure

该问题原因为 check_nginx_status.sh 的权限问题。 root 用户777 权限会出现该问题

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,您需要在两台机器上安装keepalived软件包。您可以使用以下命令在CentOS上安装keepalived: ``` sudo yum install keepalived ``` 接下来,您需要在主机和从机上创建keepalived配置文件。在此示例中,我们将假设主机的IP地址为192.168.1.100,从机的IP地址为192.168.1.101。在主机上,您可以使用以下命令创建一个名为keepalived.conf的配置文件: ``` sudo nano /etc/keepalived/keepalived.conf ``` 在其中添加以下内容: ``` vrrp_script chk_http_port { script "/usr/local/bin/check_apache.sh" interval 2 } vrrp_instance VI_1 { interface eth0 state MASTER virtual_router_id 51 priority 101 virtual_ipaddress { 192.168.1.102 } track_script { chk_http_port } } ``` 此配置文件定义了一个名为VI_1的keepalived实例,它将在主机和从机之间管理虚拟IP地址192.168.1.102。主机被定义为MASTER状态,从机被定义为BACKUP状态。如果主机失效,从机将自动接管虚拟IP地址。 注意,我们还定义了一个名为chk_http_port的脚本,它将定期检查Apache服务器是否在运行。如果Apache服务器停止运行,则主机的优先级将降低,从机将成为MASTER。 在从机上,您可以使用以下命令创建一个名为keepalived.conf的配置文件: ``` sudo nano /etc/keepalived/keepalived.conf ``` 在其中添加以下内容: ``` vrrp_script chk_http_port { script "/usr/local/bin/check_apache.sh" interval 2 } vrrp_instance VI_1 { interface eth0 state BACKUP virtual_router_id 51 priority 100 virtual_ipaddress { 192.168.1.102 } track_script { chk_http_port } } ``` 此配置文件定义了一个与主机相同的keepalived实例,但从机被定义为BACKUP状态,并且优先级较低。如果主机失效,从机将自动接管虚拟IP地址。 最后,您需要启动keepalived服务。在主机和从机上,您可以使用以下命令启动服务: ``` sudo systemctl start keepalived ``` 现在,您已经成功地在两个机器上配置了keepalived主从模式,以确保在主机故障时,从机将顺利接管虚拟IP地址。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值