keepalived部署
来源:互联网 发布:2016最好用的优化软件 编辑:程序博客网 时间:2024/06/03 21:35
keepalived是一种轻量级的高可用软件解决方案,主要功能为监控检查和VRRP冗余协议。基于三层检测,即IP层/TCP层/应用层,当检测到某台服务器的服务出现故障等,会自动剔除有故障的服务,服务恢复正常后自动加入到服务器群中。
- 环境
192.168.2.118 nginx主/keepalived-master
192.168.2.119 nginx从/keepalived-slave
192.168.2.112 lap
- keepalived部署
在118服和119服上部署keepalived服务(注意执行权限)
wget http://www.keepalived.org/software/keepalived-1.2.24.tar.gz tar -zxvf keepalived-1.2.24.tar.gzcd keepalived-1.2.24./configuremakemake installcp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/cp /usr/local/sbin/keepalived /usr/sbin/
完成预编译后,上图表示开启了VRRP模块
- keepalived+nginx主备架构
118服的keepalived配置
手动添加配置目录和检测脚本目录
mkdir -p /etc/keepalivedmkdir -p /data/sh/
添加配置文件keepalived.conf
! Configuration File for keepalived global_defs { notification_email { abc@163.com } notification_email_from abc@163.com smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id LVS_DEVEL } vrrp_script chk_nginx { script "/data/sh/check_nginx.sh" interval 2 weight 2 } vrrp_instance VI_1 { state BACKUP interface eth0 lvs_sync_daemon_inteface eth0 virtual_router_id 151 priority 100 advert_int 5 nopreempt authentication { auth_typePASS auth_pass 1111 } virtual_ipaddress { 192.168.2.129 } track_script { chk_nginx } }
常用参数说明:
notification_email 当切换的时候发送通知对象notification_email_from 发件人smtp_server smtp服务地址smtp_connect_timeout smtp连接超时时间router_id 运行keepalived的标识vrrp_script 检测脚本script 脚本路径interval 检测时间间隔weight 权重vrrp_instance vrrp实例state 主机状态,包括MASTER和BACKUPvirtual_router 路由idpriority 优先级,值越高,主机状态就是MASTERadvert_int 检查间隔nopreempt 不抢占authentication 设置认证auth_type 认证方式auth_pass 认证密码virtual_ipaddress 设置VIPtrack_script 脚本监控,名称为vrrp_script设置virtual_server 虚拟服务器定义模块delay_loop 健康检查时间间隔lb_algo wrr 调度算法,包括rr/wrr/lc等lb_kind DR 转发规则,包括NAT/DR/TUNpersistence_timeout 会话保持时间protocol TCP 采用的协议real_server 真实ip端口weight 给每台主机的权重,0代表失效TCP_CHECKconnect_timeout 连接超时时间nb_get_retry 重连次数delay_before_retry 重连时间间隔connect_port 连接端口
nginx检测脚本check_nginx.sh(注意执行权限chmod u+x check_nginx.sh)
#!/bin/bash#2017年12月5日21:50:40#auto check nginx#by me###################killall -0 nginxif [[ $? -ne 0 ]];then /etc/init.d/keepalived stopfi
在119服上也根据上述操作部署keepalived,在配置文件中,把优先级priority的值改成80
启动keepalived服务
/etc/init.d/keepalived start或service keepalived startmodprobe ip_vs 内核加载ipvs模块
查看启动情况
[root@leeclient init.d]# ps -ef | grep keepalived root 8212 1 0 22:05 ? 00:00:00 keepalived -Droot 8214 8212 0 22:05 ? 00:00:00 keepalived -Droot 8215 8212 0 22:05 ? 00:00:00 keepalived -Droot 8427 1712 0 22:08 pts/0 00:00:00 grep keepalived[root@leeclient init.d]#
查看日志
tail -f /var/log/messages
表示一开始是backup状态,后来检测到118和119都是backup,然后根据优先级来判断,118服的keepalived升级成master
查看ip状态
ip addr list
主
从
浏览器输入VIP:192.168.2.129
此时访问nginx是118服的
手动停止118服的nginx服务,再查看日志和ip
pkill nginxtail -f /var/log/messagesip addr list
118服的keepalived检测到nginx服务停止后,会执行检测脚本,停止keepalived服务:
119服可以看到进入了master状态:
此时再看ip,则发现nginx切换到了119服上。
118服:
119服:
此时继续访问192.168.2.129也可以正常访问web。从而实现了高可用。
再开启118的nginx及keepalived服务后,118的keepalived变成了backup状态,只有119的nginx挂了,才会自动切换到119的nginx上。
当118和119同时设置state为backup,118的priority为100,119的priority为80,并且同时设置为nopreempt,此时谁先启动keepalived,谁就是master,当master挂了后再恢复时状态一直为backup。如果注释掉nopreempt,则在状态同为backup的情况下,谁的优先级高谁就抢占成功成为master。
备注:
1) 在预编译的时候,出现错误configure: error: Popt libraries is required
没有安装popt开发包,执行
yum -y install popt-devel
- 部署keepalived
- keepalived部署
- LVS+Keepalived 部署
- LVS + Keepalived + mycat部署
- keepalived + LVS 配置和部署
- HAProxy1.6+keepalived部署方法
- Keepalived+LVS 安装部署文档
- nginx + keepalived 部署及配置
- keepalived安装部署及Flume+keepalived高可用
- bash 脚本编程十八 Keepalived自动部署
- amoeza+keepalived+mmm+mysql 高可用部署
- LVS+keepalived+nginx+tomcat部署实现
- keepalived+twemproxy部署redis高可用集群
- centos6.5集群lvs+keepalived部署
- keepalived+twemproxy部署redis集群高可用
- LVS+keepalived+nginx+tomcat部署实现
- LVS+Keepalived+Nginx+Tomcat部署实现
- LVS+keepalived+nginx+tomcat部署实现
- Android 利用WebViewJavascriptBridge 实现js和java的交互(一),androidjsbridge
- IT界的风投
- python---模拟用户正常登录系统,破解用户名与登录密码
- 反编译apk文件重新打包并签名
- 使用EqualsBuilder简化equals的方法的重写
- keepalived部署
- 使用CXF与Spring集成实现RESTFul WebService
- sklearn中的回归决策树
- struts2-18基于XML配置方式实现对action的所有方法或指定方法进行输入校验
- bootstrapValidator与datetimepicker混合使用时日期验证不刷新
- 跟着jdk学奇技淫巧~
- SDUT-1172-->C语言实验——矩阵下三角元素之和
- 事件
- 外部主机访问虚拟机redis的配置