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 } } }
完成之后赋予权限:
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 } } }
完成之后赋予权限:
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+端口,防止后续出现什么问题