Linux 下安装keepalived 2.1.5,并完成配置,验证ip漂移

一、下载keepalived 2.1.5

官网:https://www.keepalived.org/download.html
在这里插入图片描述

二、安装

1、上传文件到linux

用FileZilla Client将keepalived-2.1.5.tar.gz上传到linux上,目录/usr/local/java/keepalived/(这个目录可以自己选择)

2、解压文件并安装keepalived

cd 到 /usr/local/java/keepalived/ 目录下,输入 tar -zxvf keepalived-2.1.5.tar.gz 指令进行解压

tar -zxvf keepalived-2.1.5.tar.gz

进入keepalived-2.1.5,并完成配置安装

cd keepalived-2.1.5
./configure  --prefix=/usr/local/keepalived

等待配置进行安装完后,运行真正的安装

make && make install

复制文件到/etc/keepalived/
(keepalived默认是读取/etc/keepalived/下的keepalived.conf)

mkdir /etc/keepalived/
# 复制keepalived.conf
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
#复制系统相关文件
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
# 复制启动类文件,这个是在keepalived解压出来的源码包里面,位置不一样
#(1.4以后都是在解压里面,1.4以前是在/usr/local/keepalived下面rc.d文件夹里面)
cp /usr/local/java/keepalived/keepalived-2.1.5/keepalived/etc/init.d/keepalived /etc/init.d/

3、编写检测nginx是否正常运行的脚本文件

cd /etc/keepalived/
vi nginx_check.sh

编写nginx_check.sh脚本,输入以下脚本代码

#! /bin/bash
A=`ps -C nginx --no-header |wc -l`
#echo $A
if [ $A -eq 0 ];then
    echo 'nginx not running, stop keepalived!'
    systemctl stop keepalived
fi

wq!保存并退出
这里一定要注意的是头部一定要有#! /bin/bash,不然keepalived运行脚本的时候会执行不下去,提示:
Error exec-ing command ‘/etc/keepalived/nginx_check2.sh’, error 8: Exec format error
可以运行 tail -f /var/log/messages 指令查看错误提示是什么

将文件设置为可执行文件

chmod 777 nginx_check.sh 
#chmod +x nginx_check.sh  也可以

4、编写keepalived.conf 配置文件

查看本机的ip信息
(有的可以输入ifconfig)

#用ifconfig也可以
ip a

在这里插入图片描述

注意本机网卡的名字:ens33,后面配置的时候会用到

在keepalived.conf里面输入以下脚本代码,路径:/etc/keepalived/下

! Configuration File for keepalived

global_defs {
  #路由id,主备节点不能相同
  router_id node1
}

#自定义监控脚本
vrrp_script chk_haproxy {
  # 脚本位置
  script "/etc/keepalived/nginx_check.sh"
  # 脚本执行的时间间隔
  interval 1
  weight 0
  
}

vrrp_instance VI_1 {
    # Keepalived的角色,MASTER 表示主节点,BACKUP 表示备份节点
    state MASTER
    # 指定监测的网卡,可以使用 ifconfig 或 ip a 进行查看
    interface ens33
    # 虚拟路由的id,主备节点需要设置为相同
    virtual_router_id 51
    # 优先级,主节点的优先级需要设置比备份节点高
    priority 100
    # 设置主备之间的检查时间,单位为秒
    advert_int 1
    # 定义验证类型和密码
    authentication {
        auth_type PASS
        auth_pass 1111
    }
  
    # 虚拟IP地址,可以设置多个
    virtual_ipaddress {
        192.168.0.242
        #192.168.200.17
        #192.168.200.18
    }
    
   # 调用上面自定义的监控脚本
    track_script {
       chk_haproxy
    }

}

这里要注意的是监控脚本的名字是否一致,既vrrp_script 和track_script里面的的方法是否一致(这里是chk_haproxy),还有脚本位置script 的路径是否正确

5、启动keepalived

这里要先保证nginx是已经启动的,不然keepalived启动了以后会执行脚本发现nginx没启动会运行脚本停止掉keepalived

 #启动
 service keepalived start
 #停止
 #service keepalived stop
 #查看状态
 #service keepalived status 

查看状态

service keepalived status 

在这里插入图片描述
active (running) 说明正在运行

查看keepalived启动的情况

ps -ef | grep keepalived

在这里插入图片描述

6、验证keepalived

启动后查看ip

#用ifconfig也可以
ip a

在这里插入图片描述
看这里已经添加了 192.168.0.242的VIP
在网页里面输入http://192.168.0.242/
在这里插入图片描述

访问到的了243的nginx,说明已经成功安装

7、设置开机自运行

不用设置,上面复制到init.d的时候,已经是设置为开机自运行了

三、主备漂移验证

1、安装及配置备机

备机的安装和主机一样,这里不做累述,配置的时候只要做一些改动就可以了。备机的keepalived.conf内容如下:

! Configuration File for keepalived

global_defs {
  #路由id,主备节点不能相同
  router_id node2
}

#自定义监控脚本
vrrp_script chk_haproxy {
  # 脚本位置
  script "/etc/keepalived/nginx_check.sh"
  # 脚本执行的时间间隔
  interval 1
  weight 0
  
}

vrrp_instance VI_1 {
    # Keepalived的角色,MASTER 表示主节点,BACKUP 表示备份节点
    state BACKUP
    # 指定监测的网卡,可以使用 ifconfig 或 ip a 进行查看
    interface ens33
    # 虚拟路由的id,主备节点需要设置为相同
    virtual_router_id 51
    # 优先级,主节点的优先级需要设置比备份节点高
    priority 90
    # 设置主备之间的检查时间,单位为秒
    advert_int 1
    # 定义验证类型和密码
    authentication {
        auth_type PASS
        auth_pass 1111
    }
  
    # 虚拟IP地址,可以设置多个
    virtual_ipaddress {
        192.168.0.242
        #192.168.200.17
        #192.168.200.18
    }
    
   # 调用上面自定义的监控脚本
    track_script {
       chk_haproxy
    }

}

2、验证vip是否进行漂移

现在配置的ip情况为:
192.168.0.243(主)
192.168.0.245(备)
192.168.0.242(vip/漂移ip)

(具体ip可根据自己来进行配置)
注:如果修改了配置,发现漂移不生效的,重启一下linux系统再试一次

(一)主机宕机,vip转向备机

1、先查看主机的ip情况
ip a
在这里插入图片描述
此时看到vip(192.168.0.242)还在主机那里
1、关掉主机(192.168.0.243)的keepalived,并查看主机ip情况
service keepalived stop
ip a
在这里插入图片描述
此时看到vip(192.168.0.242)已经不在主机那里

2、查看备机(192.168.0.245)的ip情况
ip a
在这里插入图片描述
此时看到vip已经转移到了245那台备机上了,网页上访问vip(192.168.0.242),
在这里插入图片描述
可以看到访问已经从原来的243转移到245上面了

(二)主机恢复,vip被主机夺回,转向主机

1、恢复主机的keepalived,并查看ip
service keepalived start
ip a
在这里插入图片描述
可以看到vip被主机夺回来了

然后查看备机的ip,发现没有vip,网页上访问vip(192.168.0.242),这时候又跳转回了243上面去了。这里就不截图了。

四、如何配置主机恢复后不抢回vip?

只需要将两台机器都设置为备机就行了,并且在优先级高的keepalived上添加nopreempt

keepalived.conf配置如下:

! Configuration File for keepalived

global_defs {
   
  #路由id,主备节点不能相同
  router_id node1
}

#自定义监控脚本
vrrp_script chk_haproxy {
  # 脚本位置
  script "/etc/keepalived/nginx_check.sh"
  # 脚本执行的时间间隔
  interval 1
  weight 0
  
}

vrrp_instance VI_1 {
   #优先级较高的keepalived,添加此配置解决异常恢复后再次抢占的问题
    nopreempt
    # Keepalived的角色,MASTER 表示主节点,BACKUP 表示备份节点
    state BACKUP
    # 指定监测的网卡,可以使用 ifconfig 进行查看
    interface ens33
    # 虚拟路由的id,主备节点需要设置为相同
    virtual_router_id 51
    # 优先级,主节点的优先级需要设置比备份节点高
    priority 100
    # 设置主备之间的检查时间,单位为秒
    advert_int 1
    # 定义验证类型和密码
    authentication {
        auth_type PASS
        auth_pass 1111
    }
  
    # 虚拟IP地址,可以设置多个
    virtual_ipaddress {
        192.168.0.242
        #192.168.200.17
        #192.168.200.18
    }
    
   # 调用上面自定义的监控脚本
    track_script {
       chk_haproxy
    }

}



  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值