keepalived+lvs配置详解


安装:tar -zxvf keepalived-1.2.2.tar.gzyum list all |grep “ipvsadm”yum -y install kernel-devel openssl-develpopt-devel ipvsadm libnl libnl-develservice iptables stopsetenforce 0./configure –prefix=/–with-kernel-dir=/usr/src/kernels/2.6.32-431.el6.x86_64 && make&& make install添加系统服务:chkconfig –add keepalived 添加后可以使用servicechkconfig工具管理keepalived服务chkconfig keepalived on on级别为234chkconfig –list keepalived 查看234级别是否开启全局配置文件:global_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc }notification_email_from Alexandre.Cassen@firewall.locsmtp_server 192.168.1.1smtp_connect_timeout 30router_id LVS_master}vrrp_script check_httpd {#vrrp_script模块专门用于对集群中服务资源进行监控(HA集群监控)。于此模块一起使用的还有track_script模块,track_script模块主要是调用vrrp_script模块。还可以检查端口、shell语句检查、脚本检查。在附录下面演示script “killall –O httpd”#killall –O httpd 查看httpd服务返回状态,如果是零则表示运行正常,为1则表示运行异常。interval 2#检查的时间间隔,单位为秒。}Vrrp配置(keepalived高可用配置)实例:vrrp_instance VI_1 {#标识,vrrp实例开始的标识state MASTER#定义主备角色masterbackupinterface eth0#指定监听网卡virtual_router_id51#虚拟路由标识,此标识主备不许相同。priority 100#优先级。数字越大优先级越高,在同一个vrrp-instancemaster必须比backup优先级大advert_int 1#设置masterbackup之间同步检查的时间间隔,单位是秒authentication {auth_type PASSauth_pass 1111 #设定masterbackup验证类型(AHPASS)和密码,主备密码一致才能通信。}notify_master “/etc/keep/master.sh”notify_backup “/etc/keep/backup.sh”notify_fault “/etc/keep/fault.sh”#指定当keepalived进入masterbackupfault状态时执行到脚本。脚本举例在附录下。track_script { check_httpd}#调用vrrp_script模块,check_httpdvrrp_script模块后面跟的名字。virtual_ipaddress {192.168.1.250#虚拟地址,可以设置多个。它是以ip address add的方式加入地址。 }#nopreempt#不抢占功能,此功能只能用在state状态是backup的节点上,而且这个节点优先级要高于其他节点#preempt_delay 300#抢占延迟时间,单位是秒。例如:网络有抖动master节点向backup节点发送探测包不及时实际master节点没有问题,无需主备切换。重启服务或重启系统也是如此。}————————————————vrrp配置附录————————————————————————————–vrrp配置附录——————————————–
notify_master “/etc/keep/master.sh” 脚本实例如下:#!/bin/bashlogfile=/var/log/keep/keep-http-statsu.logecho “[MASTER]” >>$logfiledate >> $logfilebackup.shfault.sh 略过。端口检查:vrrp_script check_httpd {script “/tcp/127.0.0.1/80”#这个方式是定义了对本机的80端口的状态检查。interval 2#检查的时间间隔,单位为秒。fall 2#表示检查到失败的最大次数rise 1#表示检查到一次成功,则认为节点恢复正常。}shell语句检查:vrrp_script check_httpd {script “if [ -f /var/run/httpd/httpd.pid ];hten exit 0; else exit 1; fi”# 检查pid文件是否存在,如果返回0表示正常,返回1则表示异常。interval 2#检查的时间间隔,单位为秒。fall 2#表示检查到失败的最大次数rise 1#表示检查到一次成功,则认为节点恢复正常。}vrrp_script需要track_script模块调用我在演示时省略,但是不要忘记在vrrp_instance配置实例中调用。——————————————————————————————LVS(负载均衡)配置实例:virtual_server 192.168.1.250 {#LVS配置实例已virtual_server表示开始delay_loop 6#设置健康检查的间隔,单位是秒。lb_algo rr#负载调度算法,有rr(轮巡)、wrr(加权轮询)、lcwlclblcshdhlb_kind NAT#负载均衡机制,有NATTUNDRnat_mask255.255.255.0#不知道是什么意思,后续在查。persistence_timeout50#同一IP的连接50秒内被分配到同一台realserverpersistence_granularity255.255.255.0#此选项是配合persistence_timeout,如果后面写的是4255就代表单个ip,如果是255.255.255.0则代表客户端所在的整个网段的请求都会分配到同一台real_server上。protocol TCP #指定转发协议类型有tcpudpsorry_server192.168.1.120 80#相当一个备用节点,当所有real_server节点失效则启用备用节点real_server192.168.1.108 80 {# real_server段的开始标识,后面跟着的是后端节点真实ip地址。Ip和端口用空格分开。weight 1 #权重。数值越大权重越高。为性能高的节点分配高权重。合理使用节点 notify_up/root/keepalived/keepup.sh notify_down/root/keepalived/keepdown.sh #表示在检测到real_server节点是up或是down时执行的脚本。HTTP_GET |SSL_GET { #HttpSSL检测方式实例url { #可以指定多个URL path /index.html #后面跟详细的路径 digestff20ad2481f97b1754ef3e12ecd3a9cc #SSl检查后的摘要信息,这个摘要信息可以通过ganhash命令工具获取。例如:ganhash -s192.168.1.108 –p 80 –u / status_code 200 #返回的结果是200状态码。} connect_port80 #健康检查的端口,如果不指定,默认是real_server指定的端口 bindto192.168.1.108 #通过此地址发送请求检查服务器健康状态。connect_timeout 3 #无响应时间,单位是秒。nb_get_retry 3 #重试次数delay_before_retry 3 #重试次数的间隔。} }}————————————————LVS配置附录—————————————————————————————-lvs配置附录——————————————除了HTTP_GET SSL_GET这两个real_server健康状态检查外还有TCP_CHECKMISC_CHECKSMTP_CHECK这三个。接下来演示TCP_CHECK(端口检查)、MISC_CHECK(外部程序检查也就是脚本检查)TCP_CHECK connect_port80 #健康检查的端口,如果不指定,默认是real_server指定的端口connect_timeout 3 #无响应时间,单位是秒。nb_get_retry 3 #重试次数delay_before_retry 3 #重试次数的间隔。MISC_CHECKmisc_path “/usr/local/bin/script.sh 1.1.1.180 http://www.baidu.com”#指定脚本的执行路径,后面可以带参数。跟普通方式执行脚本相同。misc_timeout 5#设定脚本的超时时间! misc_dynamic#表示不启用节点动态调整real_server权重。#如果启用并且返回码是零则表示检查正常,权重不变。如果是1则表示节点异常权重降为零。如果返回值是2-255之间的数字则用返回值减2。如:返回值是10,权重则是810-2/usr/local/bin免费云主机域名/script.sh 脚本如下:cat/usr/local/bin/check_squidproxy.sh 1.1.1.1 80 http://www.baidu.com#!/bin/bashif [ $#-ne 3 ];thenecho”Warning: check_command error.”exit 1elsePROXY_IP=$1PROXY_PORT=$2CHECK_URL=$3CMD=`/usr/bin/curl-I -x ${PROXY_IP}:${PROXY_PORT} “${CHECK_URL}” 2>/dev/null | grep”200 OK” | wc -l`if [ ${CMD} -ne 1];thenecho”CRITCAL: check proxy ${PROXY_IP} failed.”exit 1elseecho”OK: check proxy ${PROXY_IP} OK.”echo0fifi

相关推荐: linux内核源码怎么看

本篇内容主要讲解“linux内核源码怎么看”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux内核源码怎么看”吧! linux的内核源码的位置一般在系统中的“/usr/src/linux内核版本”目录中;若系统…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 01/25 11:35
Next 01/25 11:35