使用keepalived实现服务监控的双机热备

1. 安装keepalived

tar zxvf keepalived-1.3.5.tar.gz

cd keepalived-1.3.5

./configure

make

生成bin目录,产生bin文件keepalived

这里不执行make install安装

2. 修改配置文件

默认配置文件在keepalived-1.3.5/keepalived/etc/keepalived/keepalived.conf

可以拷贝到其他目录,运行的时候指定目录即可

! Configuration File for keepalived

global_defs {
   router_id monitor
}

vrrp_instance VI_1 {
    state MASTER
    interface ens160
    virtual_router_id 17
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.226.183
    }
}

virtual_server 192.168.226.183 7777 {
    delay_loop 1
    lb_algo wrr   #LVS算法
    lb_kind DR    #LVS模式
    protocol TCP

    real_server 192.168.226.173 7777 {
        weight 1
        notify_down /root/keepalived/keepalived-1.3.5/bin/killka.sh
        TCP_CHECK {
            connect_timeout 3
            connect_port 7777
            delay_before_retry 1
            nb_get_retry 2
        }
    }
}

state: 指定初始状态下,哪个VRRP路由器是master,取值有MASTER/BACKUP;

interface: vi_1 实例绑定的网卡;

virtual_router_id: 指定虚拟路由器的VRID值,范围0~255,master和backup的VRID值必须相同;

priority: 该实例的优先级;

advert_int: 检查间隔,默认1s;

authentication: 加密验证报文,master和backup的配置必须相同;

virtual_ipaddress: 指定VIP;

 主要配置LVS的DS服务器如何向RS进行分发,以及RS服务器的相关配置。

virtual_server: 指定VIP地址和端口;

delay_loop: 指定service polling的时间间隔;

lb_algo: 即load balance algorith,负载均衡的算法;

lb_kind: 即load balance kind,负载均衡的种类(DR/TUN/NAT);

persistence_timeout: 会话保持时间,单位秒;

real_server: 指定RS服务的ip和端口;

TCP_CHECK: 指定Keepalived如何对RS进行健康检查;

脚本解析

这里使用TCP_CHECK的方式检测端口的可用性

当检测到端口不可用时,keepalived有notify_down机制,然后调用脚本执行,这里通过脚本kill keepalived,此时才能切换到备用服务器

#!/bin/bash

pkill keepalived

3. 运行

/root/keepalived-1.3.5/bin/keepalived -f /root/keepalived-1.3.5/bin/keepalived.conf -d -D

猜你喜欢

转载自blog.csdn.net/vincent_yuan89/article/details/85328932