`
tcspecial
  • 浏览: 910410 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

keepalived 使用

    博客分类:
  • OS
阅读更多

keepalived 一般用于实现双机热备,两台服务器提供服务,当其中一台挂掉后,平滑切换到另一个服务上。对外提供一个虚拟IP。

 

环境准备:

主机: 192.168.5.154  ---  nginx负载均衡  ---  tomcat 集群

备机: 192.168.5.158  ---  nginx负载均衡  ---  tomcat 集群

vip:   192.168.5.99

 

一. 安装

wget http://www.keepalived.org/software/keepalived-1.2.17.tar.gz

tar -xvf keepalived-1.2.17.tar.gz

 

cd keepalived-1.2.17

./configure --prefix=/usr/local/keepalived     

make && make install

32位的linux上编译出错:configure: error: No SO_MARK declaration in headers,添加 --disable-fwmark 选项解决

 

二. 配置

./usr/local/keepalived/sbin/keepalived 传统方式启动后,会生成三个keepalived进程,关闭时太复杂了。为便于使用,将其做成服务。

 

cp /usr/local/keepalived/sbin/keepalived /usr/sbin
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived  /etc/init.d/

 

修改系统配置:

vi /etc/sysconfig/keepalived

KEEPALIVED_OPTIONS = "-D -d -S 0 -f /usr/local/keepalived/etc/keepalived/keepalived.conf"         #指定配置文件路径,-d -S 选项打开调试日志

 

主机:keepalived.conf

 
global_defs {
notification_email {
       root@localhost
   }
 
   notification_email_from root@localhost	#不需要邮件通知,直接默认本机接收
   smtp_server localhost
   smtp_connect_timeout 30
   router_id LVS_DEVEL	 #默认即可
}
 
vrrp_script check_run {  #check_run 后面要跟一个空格+{
     script "/usr/local/nginx/check_run.sh"		#指定检测脚本路径
     interval 2
     weight 2
}
 
vrrp_instance VI_1 {
    state MASTER                 #主机
    interface eth0         #监听网卡eth0
    virtual_router_id 52         #路由id,必须与备机一致。运行可能会报错( receive an invalid ip number count 
associated with VRID! ),更换成其它值即可
    priority 100         #优先级,比备机高
    advert_int 1
    authentication {
        auth_type PASS		   #启用密码
        auth_pass 1111         #密码必须与备机一致
    }
 
    track_script {
        check_run         #指定监控脚本。注:配置出错时,keepalived不会退出,只会卡住,一定要检查配置
    }
 
    virtual_ipaddress {
        192.168.5.99         #对外虚拟IP列表,可配置多个
    }
}

 

 

备机:keepalived.conf

vrrp_instance VI_1 {
    state BACKUP     			 #备机            
    interface eth0         
    virtual_router_id 52         #值与主机一致
    priority 90         #优先级比主机低
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111     		 #与主机密码相同    
    }
 
    track_script {
        check_run        
    }
 
    virtual_ipaddress {
        192.168.5.99         #虚拟IP与主机一致
    }
}

 

 check_run.sh nginx运行检测脚本,运行正常返回0,失败返回1,每轮检测2次。 

#!/bin/sh

CHECK_TIME=2		#检测2次

check(){
	curl -m2 http://localhost > /dev/null 2>&1
	return $?
}


while [ $CHECK_TIME -ne 0 ]
do
	let "CHECK_TIME-=1"
	check
	NGINX_OK=$?
	
	if [ $NGINX_OK -eq 0 ]; then
		exit 0
	fi 
	
	if [ $NGINX_OK -ne 1 ] && [ $CHECK_TIME -eq 0 ]; then
		exit 1
	fi
done

  

三. 运行

启动与关闭:

service keepalived start

service keepalived stop

 

启动keepalived后,运行 ip a ,发现生成了vip ,关闭后vip被删除。

[root@test nginx]# ip a
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 0c:ca:ba:aa:ce:6a brd ff:ff:ff:ff:ff:ff
    inet 192.168.5.158/24 brd 192.168.5.255 scope global eth0
    inet 192.168.5.99/32 scope global eth0
    inet6 fe80::ec4:aaff:fe43:ee6d/64 scope link 
       valid_lft forever preferred_lft forever

  

测试:

http://192.168.5.99 显示正常页面,killall nginx,查看日志 /var/log/messages 发现主机虚拟IP被移除,备机日志显示切换为主机状态

Jun 29 09:56:09 localhost Keepalived_vrrp[19520]: VRRP_Script(check_run) failed
Jun 29 09:56:09 localhost Keepalived_vrrp[19520]: VRRP_Instance(VI_1) Entering FAULT STATE
Jun 29 09:56:09 localhost Keepalived_vrrp[19520]: VRRP_Instance(VI_1) removing protocol VIPs.
Jun 29 09:56:09 localhost Keepalived_vrrp[19520]: VRRP_Instance(VI_1) Now in FAULT state
Jun 29 09:56:09 localhost avahi-daemon[2842]: Withdrawing address record for 192.168.5.99 on eth0.
Jun 29 09:56:09 localhost Keepalived_healthcheckers[19518]: Netlink reflector reports IP 192.168.5.99 removed

  

Jun 29 09:52:13 gw-1 Keepalived_vrrp[12619]: VRRP_Script(check_run) succeeded
Jun 29 09:56:10 gw-1 Keepalived_vrrp[12619]: VRRP_Instance(VI_1) Transition to MASTER STATE
Jun 29 09:56:10 gw-1 Keepalived_vrrp[12619]: VRRP_Instance(VI_1) Entering MASTER STATE
Jun 29 09:56:10 gw-1 Keepalived_vrrp[12619]: VRRP_Instance(VI_1) setting protocol VIPs.
Jun 29 09:56:10 gw-1 Keepalived_vrrp[12619]: VRRP_Instance(VI_1) Sending gratuitous ARPs on eth0 for 192.168.5.99
Jun 29 09:56:10 gw-1 avahi-daemon[3351]: Registering new address record for 192.168.5.99 on eth0.IPv4.
Jun 29 09:56:10 gw-1 Keepalived_healthcheckers[12618]: Netlink reflector reports IP 192.168.5.99 added
Jun 29 09:56:15 gw-1 Keepalived_vrrp[12619]: VRRP_Instance(VI_1) Sending gratuitous ARPs on eth0 for 192.168.5.99

 

访问 http://192.168.5.99 依旧正常

 

分享到:
评论

相关推荐

    KeepAlived使用详解

    KeepAlived 使用详解 KeepAlived 是一个路由软件,可以工作在 IP/TCP 协议栈的 IP 层,TCP 层,及应用层,来检查机器的可用性,端口的可用性,以及服务的可用性。它可以在 Layer3、Layer4、Layer5 三个层次上工作。...

    keepalived配置

    Keepalived使用VRRP协议来管理虚拟IP地址,当主服务器出现故障时,备用服务器会接管这个VIP。例如: ``` vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 100 advert_int ...

    keepalived依赖包和安装包.rar

    3. 安装完成后,可以通过`systemctl start keepalived`启动keepalived服务,并使用`systemctl enable keepalived`设置开机启动。 4. 配置keepalived。配置文件通常位于`/etc/keepalived/keepalived.conf`,需要根据...

    nginx+keepalived使用文档.doc

    解压后,使用`yum install`命令安装必要的依赖,如openssl和openssl-devel。然后,进行编译和安装,确保安装路径为非默认路径,例如/usr/local/keepalived。 安装完成后,需要将Keepalived设置为系统服务。创建相应...

    nginx+keepalived使用文档

    第一步: 下载keepalived地址:http://www.keepalived.org/download.html 解压安装: tar -zxvf keepalived-1.2.18.tar....cd keepalived-1.2.18/ && ./configure --prefix=/usr/local/keepalived make && make install

    Keepalived以及LVS完全使用指南

    1.1 **前言**:文档旨在提供一个完整的Keepalived使用手册,结合理论与实践,逐步引导读者进行配置和实施。 1.2 **KEEPALIVED简介**:Keepalived是为LVS设计的一个辅助工具,它负责监控和管理LVS的负载均衡器,确保...

    Keepalived安装使用详解2

    * 可靠性高:Keepalived使用VRRP协议来实现高可用,VRRP协议可以确保服务器的可靠性。 *易于使用:Keepalived的配置文件简单易懂,易于使用和维护。 Keepalived的缺点: * 需要专门的服务器:Keepalived需要专门的...

    nginx+keepalived文档使用

    nginx+keepalived使用文档.nginx+keepalived使用文档.

    Nginx+keepalived双机热备(主从模式)

    在keepalived和heartbeat、corosync等集群组件中,keepalived使用VRRP协议方式,实现路由器的高可用性,而heartbeat和corosync则是基于主机或网络服务的高可用方式。因此,keepalived通常用于实现前端高可用,而...

    CentOS系统安装配置Nginx+keepalived实现负载均衡

    使用tar zxvf命令解压keepalived-1.2.2.tar.gz文件,然后使用./configure、make和make install命令安装keepalived。 6. 配置keepalived 使用vi命令编辑keepalived.conf文件,配置keepalived的基本设置,包括...

    keepalived1.4.3

    在 CentOS 7.4 上使用 Keepalived 1.4.3 版本,可以确保网络服务的不间断运行,提高系统的稳定性和可靠性。以下是关于 Keepalived 的核心知识点和在 CentOS 7.4 上的详细配置步骤: 1. **VRRP 协议** - VRRP 是一...

    Redis+keepalived搭建教程和高可用测试

    2. **VRRP协议**:Keepalived使用Virtual Router Redundancy Protocol (VRRP)来实现虚拟IP的管理和切换。在Redis集群中,主节点和从节点共享一个虚拟IP,客户端通过这个IP与Redis服务通信。 3. **健康检查**:...

    Keepalived权威指南中文

    Keepalived使用VRRP可以轻松实现IP地址的故障转移,从而在主路由器不可用时,自动将流量切换到备用路由器。 在Keepalived中,可以设置MASTER和BACKUP两个角色。MASTER是活动的路由器,它负责响应请求并转发数据包;...

    Redis哨兵主从模式+keepalived

    3. **VRRP协议**:Keepalived使用Virtual Router Redundancy Protocol (VRRP) 协议,来管理虚拟IP和心跳检测。 **Redis哨兵+Keepalived结合** 将Redis Sentinel与Keepalived结合,可以进一步提高系统的可用性和...

    nginx+keepalived高可用学习资料

    在`nginx+keepalived使用文档.doc`中,应包含了详细的步骤和示例,指导用户如何配置Nginx和Keepalived,如何测试和验证高可用性的实现,以及在实际环境中可能遇到的问题和解决方法。 总的来说,通过深入学习和实践...

    Amoeba+mysql 读写分离 Keepalived+mysql

    这里我们主要探讨的是如何使用Amoeba与MySQL实现读写分离,以及如何利用Keepalived来构建MySQL的高可用集群。这两部分内容对于保障数据库服务的稳定性和效率至关重要。 **Amoeba+MySQL 读写分离** Amoeba 是一个...

    keepalived-2.2.7.tar.gz

    1.4 配置管理:Keepalived使用简单易懂的配置文件,使得管理和维护高可用环境变得更加便捷。 二、Keepalived的工作原理 2.1 VRRP的工作流程:Keepalived通过VRRP协议将多台路由器组织成一组,每台路由器都有一个...

    keepalived.zip

    1. **libnl**: Netlink库,用于内核和用户空间之间的通信,Keepalived使用它来处理网络配置和状态。 2. **libnl-route**: 这是libnl的一个子模块,专注于路由和网络层功能,对于处理VRRP协议至关重要。 3. **...

Global site tag (gtag.js) - Google Analytics