Keepalived代理KafkaRest服务

一、下载

  下载keepalived-2.2.4.tar.gz,并上传至服务器

  https://www.keepalived.org/download.html

二、安装

1、解压

tar -zxvf keepalived-2.2.4.tar.gz -C /opt/module/

2、安装依赖包

yum install -y gcc openssl-devel popt-devel rsync

3、编译安装

cd /opt/module/keepalived-2.2.4/
./configure --prefix=/usr/local/keepalived
make && make install

4、复制配置

cp /opt/module/keepalived-2.2.4/keepalived/etc/init.d/keepalived /etc/init.d/
mkdir -p /etc/keepalived
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
cp /opt/module/keepalived-2.2.4/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
cp /usr/local/keepalived/sbin/keepalived /usr/bin/

5、主节点操作

  (1)检测active节点

vim /etc/keepalived/chkHealth.sh
#!/bin/bash
status=`ssh 192.168.xxx.xx3 netstat -nlpt | grep 8082`
result=$(echo $status)

if [ "$result" != "" ];then
    echo "result=$result"
    #从35节点获取sign.txt文件至本地
    rsync -av 192.168.xxx.xx1:/etc/keepalived/aa.txt /etc/keepalived/
    signStatus=`cat /etc/keepalived/aa.txt`
    if [ "$signStatus" == "2" ];then
        exit 0
    else
        exit 1
    fi
else
    echo "2" > /etc/keepalived/aa.txt
    rsync -av /etc/keepalived/aa.txt 192.168.xxx.xx1:/etc/keepalived/
    exit 0
fi

  最后赋予权限

chmod +x /etc/keepalived/chkHealth.sh

  (2)keepalived.conf配置

vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
   notification_email {   }
   router_id HA_NETDISK
   script_user root
}

vrrp_script chk_ha_service {
   script "/etc/keepalived/chkHealth.sh"
   interval 3
}

vrrp_instance VI_1 {
    state MASTER
    interface 网卡名称
    virtual_router_id 79
    priority 200
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.xxx.xx4
    }
    track_script {
       chk_ha_service
    }
}

virtual_server 192.168.xxx.xx4 8082 {
    delay_loop 6
    lb_algo rr
    lb_kind NAT
    persistence_timeout 50
    persistence_timeout 1
    protocol TCP

    real_server 192.168.xxx.xx2 8082 {
         weight 1
         TCP_CHECK {
         connect_timeout 1
         nb_get_retry 3
         delay_before_retry 3
         connect_port 8082
         }
    }
}
View Code

  完成之后赋予权限:

chmod 644 /etc/keepalived/keepalived.conf

  (3)启停

service keepalived start
service keepalived stop
service keepalived status
service keepalived restart
ps -ef | grep keepalived

  (4)日志路径说明:/var/log/messages

6、从节点操作

  (1)检测active节点

vim /etc/keepalived/chkHealth.sh
#!/bin/bash
status=`ssh 192.168.xxx.xx2 netstat -nlpt | grep 8082`
result=$(echo $status)

if [ "$result" != "" ];then
    echo "result=$result"
    #从35节点获取sign.txt文件至本地
    rsync -av 192.168.xxx.xx1:/etc/keepalived/aa.txt /etc/keepalived/
    signStatus=`cat /etc/keepalived/aa.txt`
    if [ "$signStatus" == "2" ];then
        exit 1
    else
        exit 0
    fi
else
    echo "1" > /etc/keepalived/aa.txt
    rsync -av /etc/keepalived/aa.txt 192.168.xxx.xx1:/etc/keepalived/
    exit 0
fi

  最后赋予权限

chmod +x /etc/keepalived/chkHealth.sh

  (2)keepalived.conf配置

vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
   notification_email {   }
   router_id HA_NETDISK
   script_user root
}

vrrp_script chk_ha_service {
   script "/etc/keepalived/chkHealth.sh"
   interval 3
}

vrrp_instance VI_1 {
    state MASTER
    interface 网卡名称
    virtual_router_id 79
    priority 200
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.xxx.xx4
    }
    track_script {
       chk_ha_service
    }
}

virtual_server 192.168.xxx.xx4 8082 {
    delay_loop 6
    lb_algo rr
    lb_kind NAT
    persistence_timeout 50
    persistence_timeout 1
    protocol TCP

    real_server 192.168.xxx.xx3 8082 {
         weight 1
         TCP_CHECK {
         connect_timeout 1
         nb_get_retry 3
         delay_before_retry 3
         connect_port 8082
         }
    }
}
View Code

  完成之后赋予权限:

chmod 644 /etc/keepalived/keepalived.conf

  (3)启停

service keepalived start
service keepalived stop
service keepalived status
service keepalived restart
ps -ef | grep keepalived

  (4)日志路径说明:/var/log/messages

7、设置开机自启

systemctl enable keepalived.service

8、在主机测试

telnet 192.168.xxx.xx4 8082

  说明:在从机中使用telnet 192.168.xxx.xx4 8082测试会出现No route to host,使用不能在主从节点中使用虚拟ip+端口,防止后续出现什么问题

posted @ 2022-09-14 09:40  宜家数据小哥  阅读(81)  评论(0编辑  收藏  举报