Linux keepalive 操作说明

安装

1,安装 

https://www.cnblogs.com/lfxx/p/17876757.html
https://www.cnblogs.com/wangchengshi/p/10912177.html

 

2,linux keepalived 日志,如何重定向Keepalived日志的输出路径

https://blog.csdn.net/weixin_39935571/article/details/116731816
https://www.cnblogs.com/mjli/p/13650074.html

 

 

3,配置

#1,如果 apt update 找不到就用  yum update

yum update

#2,安装 runKeepalived
yum  install keepalived

#3,安装完成后,您可以编辑Keepalived的配置文件来设置您的高可用性环境。配置文件通常位于/etc/keepalived/keepalived.conf。
#以下是一个简单的Keepalived配置示例,用于设置一个 虚拟IP地址:

#主机
global_defs {
   router_id vip_active  #主机 vip_active,备机 vip_standby,
}

##vrrp_script仅仅通过监控脚本返回的状态码来识别集群服务是否正常,如果返回状态码是0,那么就认为服务正常,反之亦然。
vrrp_script chk_nginx {
    script "/etc/keepalived/check_gateway.sh" # 服务探测,返回0说明服务是正常的
    interval 3                      # 每隔几秒探测一次
    weight 2                        # 权重
}

vrrp_instance haproxy {
    state MASTER          # 主机为MASTER,备机为BACKUP
    interface eth0            # 监测网络端口,用ipconfig查看
    virtual_router_id 51  # 主备机必须相同
    priority 100    # 主备机取不同的优先级,主机要大。主机100,备机99
    advert_int 1          # VRRP Multicast广播周期秒数
    authentication {
        auth_type PASS    # VRRP认证方式
        auth_pass 111111    # VRRP口令 主备机密码必须相同
    }
    ##track_script:调用vrrp_script定义的脚本去监控资源,定义在实例之内,调用事先定义的vrrp_script。实现主备切换,保证服务高可用
    track_script {
        chk_nginx
    }
    track_interface {
        eth0
    }
    virtual_ipaddress {     # VIP 漂移地址 即集群IP地址
       10.0.0.155
    }
}

###
###

#备机

global_defs {
   router_id vip_standby #主机 vip_active,备机 vip_standby,
}

##vrrp_script仅仅通过监控脚本返回的状态码来识别集群服务是否正常,如果返回状态码是0,那么就认为服务正常,反之亦然。
vrrp_script chk_nginx {
    script "/etc/keepalived/check_gateway.sh" # 服务探测,返回0说明服务是正常的
    interval 3                      # 每隔几秒探测一次
    weight 2                        # 权重
}

vrrp_instance haproxy {
    state BACKUP          # 主机为 MASTER,备机为 BACKUP
    interface eth0            # 监测网络端口,用ipconfig查看
    virtual_router_id 51  # 主备机必须相同
    priority 99    # 主备机取不同的优先级,主机要大。主机100,备机99
    advert_int 1          # VRRP Multicast广播周期秒数
    authentication {
        auth_type PASS    # VRRP认证方式
        auth_pass 111111    # VRRP口令 主备机密码必须相同
    }
    ##track_script:调用vrrp_script定义的脚本去监控资源,定义在实例之内,调用事先定义的vrrp_script。实现主备切换,保证服务高可用
    track_script {
        chk_nginx
    }
    track_interface {
        eth0
    }
    virtual_ipaddress {     # VIP 漂移地址 即集群IP地址
       10.0.0.155
    }
}

###


###check_gateway.sh

#!/bin/sh

#虚似ip地址,155
VIP=10.0.0.155
GATEWAY=10.0.0.253
#/sbin/arping -I eth0 -c 5 -s 10.0.0.155 10.0.0.253 >/dev/null
# ip 到路由是通的.
if /sbin/arping -I eth0 -c 5 -s $VIP $GATEWAY >/dev/null
then
    echo "ip is ok"  
    exit 0

else
    echo "ip is error error"  
    exit 1
fi

#这是nginx的判断.
#cnt=`ps -C nginx --no-header | wc -l`
# 0 进程id 不存在.
#if [ $cnt -eq 0 ];  
#then
#    echo "nginx ip is error"  
#    exit 1
#else
#    echo "nginx ip is ok"  
#    exit 0
#fi


###

###4,更新日志文件等级
#Keepalived默认所有的日志都是写入到/var/log/message下的,
由于message的日志太多了,而Keepalived的日志又很难分离出来,所以本文提供了一个调整Keepalived日志输出路径的方法
cat /etc/sysconfig/keepalived
vi /etc/sysconfig/keepalived
把KEEPALIVED_OPTIONS="-D" 修改为
KEEPALIVED_OPTIONS="-D -d -S 0"


(a)    vi /etc/sysconfig/keepalived

#KEEPALIVED_OPTIONS="-D"          //注释掉该行

KEEPALIVED_OPTIONS="-D -d -S 0"  //添加该行

(b)    vi /etc/rsyslog.conf

添加该行:
local0.*       /var/log/keepalived.log

(c)    重启日志服务:

systemctl restart rsyslog 或者 /etc/init.d/rsyslog restart

(d)    重启keepalive服务

service keepalived restart

(e)    查看日志

tail -f /var/log/keepalived.log

#设置syslog,修改/etc/syslog.conf,添加内容如下
vi /etc/rsyslog.conf

# keepalived -S 0
local0.*       /var/log/keepalived.log
systemctl restart rsyslog

###5,重启,添加 开机启动

systemctl restart keepalived
systemctl enable keepalived

#6,加入防火墙 iptables
sudo iptables -A INPUT -p vrrp -j ACCEPT
sudo iptables -A OUTPUT -p vrrp -j ACCEPT

 

阿里云配置

vrrp_instance VI_1 {
state MASTER           #设置ECS1实例为主实例
    interface eth0          #设置网卡名,本示例配置为eth0  
    virtual_router_id 51
    nopreempt              
    priority 100             #设置优先级,数字越大,优先级越高,本示例配置主用实例优先级为100
    advert_int 1        
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    unicast_src_ip 10.0.0.152   #设置ECS实例的私网IP地址,本示例配置为192.168.0.209
    unicast_peer {
        10.0.0.153           #对端ECS实例的私网IP地址,本示例配置为192.168.0.210
    }
    virtual_ipaddress {
        10.0.0.155          #设置HaVip的IP地址,本示例配置为192.168.0.88 
    }   
    garp_master_delay 1
    garp_master_refresh 5

    track_interface {
        eth0                #设置ECS实例网卡名,本示例配置为eth0
    }
}

###

#备机

vrrp_instance VI_1 {
state BACKUP           #设置ECS1实例为主实例
    interface eth0          #设置网卡名,本示例配置为eth0  
    virtual_router_id 51
    nopreempt              
    priority 100             #设置优先级,数字越大,优先级越高,本示例配置主用实例优先级为100
    advert_int 1        
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    unicast_src_ip 10.0.0.153   #设置ECS实例的私网IP地址,本示例配置为192.168.0.209
    unicast_peer {
        10.0.0.152           #对端ECS实例的私网IP地址,本示例配置为192.168.0.210
    }
    virtual_ipaddress {
        10.0.0.155          #设置HaVip的IP地址,本示例配置为192.168.0.88 
    }   
    garp_master_delay 1
    garp_master_refresh 5

    track_interface {
        eth0                #设置ECS实例网卡名,本示例配置为eth0
    }
}

 

posted @ 2024-09-04 14:52  bleach3  阅读(40)  评论(0编辑  收藏  举报