keepalived+lvs配置详解
安装:tar -zxvf keepalived-1.2.2.tar.gz
yum list all |grep "ipvsadm"
yum -y install kernel-devel openssl-develpopt-devel ipvsadm libnl libnl-devel
service iptables stop
setenforce 0
./configure --prefix=/--with-kernel-dir=/usr/src/kernels/2.6.32-431.el6.x86_64 && make&& make install
添加系统服务:
chkconfig --add keepalived 添加后可以使用service、chkconfig工具管理keepalived服务
chkconfig keepalived on on级别为2、3、4
chkconfig --list keepalived 查看2、3、4级别是否开启
全局配置文件:
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.1.1
smtp_connect_timeout 30
router_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
#定义主备角色master和backup
interface eth0
#指定监听网卡
virtual_router_id51
#虚拟路由标识,此标识主备不许相同。
priority 100
#优先级。数字越大优先级越高,在同一个vrrp-instance下master必须比backup优先级大
advert_int 1
#设置master与backup之间同步检查的时间间隔,单位是秒
authentication {
auth_type PASS
auth_pass 1111
#设定master和backup验证类型(AH、PASS)和密码,主备密码一致才能通信。
}
notify_master “/etc/keep/master.sh”
notify_backup “/etc/keep/backup.sh”
notify_fault “/etc/keep/fault.sh”
#指定当keepalived进入master、backup、fault状态时执行到脚本。脚本举例在附录下。
track_script {
check_httpd
}
#调用vrrp_script模块,check_httpd为vrrp_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/bash
logfile=/var/log/keep/keep-http-statsu.log
echo “” >>$logfile
date >> $logfile
backup.sh和fault.sh 略过。
端口检查:
vrrp_script check_httpd {
script “/dev/null | grep"200 OK" | wc -l`
if [ ${CMD} -ne 1];then
echo"CRITCAL: check proxy ${PROXY_IP} failed."
exit 1
else
echo"OK: check proxy ${PROXY_IP} OK."
echo0
fi
fi
页:
[1]