【keepalive】安装

网上教程挺多的,这个是能成功的。

1. 官网下载tar包

https://www.keepalived.org/

喜欢哪个版本自己选。

最好先准备好这些东西:

apt-get install curl gcc libssl-dev libnl-3-dev libnl-genl-3-dev libsnmp-dev -y

2. 上传到指定目录安装

./configure --prefix=/usr/local/keepalived --sysconf=/etc
make && make install

3. 配置文件

cd /etc/keepalived
cp keepalived.conf keepalived.conf.bak
vim keepalived.conf

配置文件内容如下:

! Configuration File for keepalived

global_defs {
    
    
   # 负载均衡标识,在局域网内应该是唯一的。一般为主机名。
   router_id 主机名称
}

vrrp_script chk_http_port {
    
    
    # 检测心跳执行的脚本
    script "/usr/local/src/nginx_check.sh"
    # 检测脚本执行间隔,单位:秒
    interval 4
    weight 2
}

vrrp_instance VI_1 {
    
    
    # 指定keepalived的角色,MASTER为主,BACKUP为备
    state MASTER
    # 当前进行vrrp通讯的网络接口卡(当前centos的网卡)
    interface ens33
    # 指定VRRP实例ID(虚拟路由编号),范围是0-255,主从要一直
    virtual_router_id 202
    # 优先级,数值越大,获取处理请求的优先级越高, 优先级高的将成为MASTER。
    priority 100
    # 指定发送VRRP通告的间隔,默认为1s(vrrp组播周期秒数)
    advert_int 1
    # 设置验证类型和密码,MASTER和BACKUP必须使用相同的密码才能正常通信
    authentication {
    
    
        # 指定认证方式。PASS简单密码认证(推荐),AH:IPSEC认证(不推荐)。
        auth_type PASS
        # 指定认证所使用的密码。最多8位。
        auth_pass 2020
    }
    # 调用检测脚本
    track_script {
    
    
        chk_http_port
    }
    # 定义虚拟ip(VIP),可多设,每行一个
    virtual_ipaddress {
    
    
        192.168.199.143
    }
}

4. 配置nginx检测脚本文件

cd /usr/local/src
vim nginx_check.sh

脚本内容:

#!/bin/bash
A=`ps -C nginx --no-header | wc -l`
if [ $A -eq 0 ];then
    /usr/local/nginx-1.18.0/sbin/nginx
    sleep 4
    if [ `ps -C nginx --no-header | wc -l` -eq 0 ];then
        killall keepalived
    fi
fi

5. keepalived 启动/重启/停止/查看状态

systemctl start/restart/stop/status keepalived

注:启动keepalived会执行nginx检测脚本,此时如果nginx未启动则会同时启动nginx。

6. 查看日志

tail -f /var/log/messages

7. 浏览器访问虚拟IP地址

192.168.199.143

8、须知

使用service keepalived start命令启动服务时,默认会将/etc/sysconfig/keepalived文件中KEEPALIVED_OPTIONS参数作为keepalived服务启动时的参数,并从/etc/keepalived/目录下加载keepalived.conf配置文件,或用-f参数指定配置文件的位置。

另外需要注意的一点是,keepalived启动时不会检查配置文件的语法是否正确,所以我们在编写配置文件时要特别小心,别写错了,否则会出现一些意想不到的现象。

# Options for keepalived. See `keepalived --help' output and keepalived(8) and
# keepalived.conf(5) man pages for a list of all options. Here are the most
# common ones :
#
# --vrrp               -P    Only run with VRRP subsystem.
# --check              -C    Only run with Health-checker subsystem.
# --dont-release-vrrp  -V    Dont remove VRRP VIPs & VROUTEs on daemon stop.
# --dont-release-ipvs  -I    Dont remove IPVS topology on daemon stop.
# --dump-conf          -d    Dump the configuration data.
# --log-detail         -D    Detailed log messages.日志默认输出在/var/log/message文件中
# --log-facility       -S    0-7 Set local syslog facility (default=LOG_DAEMON)
#
KEEPALIVED_OPTIONS="-D"

keepalived正常运行后,会启动3个进程,其中一个是父进程,负责监控其子进程。一个是vrrp子进程,另外一个是checkers子进程。

shell> ps -ef | grep keepalived
root       831     1  0 11:22 ?        00:00:00 keepalived -D
root       840   831  0 11:22 ?        00:00:00 keepalived -D
root       841   831  0 11:22 ?        00:00:00 keepalived -D

到此keepalived就安装完成了。

猜你喜欢

转载自blog.csdn.net/qq_43762191/article/details/123757392