Keepalived+haproxy 安装配置手册
Keepalived 安装
1.创建目录
a) mkdir –p /usr/keepalived 并上传安装包(需要 root)
openssl-1.0.1e-48.el6.x86_64.rpm
keepalived-1.2.13-5.el6_6.x86_64.rpm
2.安装 net-snmp-libs
a)
b) yum install
yum search net-snmp-libs,找出对应版本
net-snmp-libs.x86_64 –y
net-snmp-libs.x86_64 -y –nogpgcheck
如 果 有 校 验 执 行 yum install
3.安装 openssl(注:版本不能小于 openssl-1.0.1e)
a)
rpm -ivh openssl-1.0.1e-48.el6.x86_64.rpm --force –-nodeps
4.安装 keepalived
a)
rpm -ivh keepalived-1.2.13-5.el6_6.x86_64.rpm --force –-nodeps
5.设置 keepalived 开机启动
a) 检查是否开机启动命令:chkconfig
b) 设置开机启动命令:chkconfig
keepalived on
--list
keepalived
6.查看 keepalived.conf 配置文件
路径:/etc/keepalived/keepalived.conf
7.修改 keepalived 日志路径
a)
b)
/etc/sysconfig/keepalived
vi
修改为 KEEPALIVED_OPTIONS=" -D -S 0"
vi /etc/rsyslog.conf
加入:local0.*
/var/log/keepalived.log
c) 执行 service rsyslog restart 生效
8.上传配置文件
上传 keepalived.conf 配置文件至/etc/keepalived/目录下
keepalived.conf
9.配置修改
配置说明参考 http://blog.csdn.net/tantexian/article/details/50056229,以下讲解需要修改
的地方:本范例为 192.168.14.67, 192.168.14.68, 192.168.14.69 三台主机互为主备,一主
对应两备(以下配置为一套 keepalived 配置,即 68 主机为主,且 68 主机分别为 67,79
主机的备,其他主机同理)
#全局配置,keepalived 宕机后可以发送邮件,用不到可以不修改,但必须要
! Configuration File for keepalived
global_defs {
notification_email {
acassen@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
#haproxy 的健康检查脚本
vrrp_script check_haproxy {
script "/etc/keepalived/check_haproxy.sh"
interval 10
weight 2
}
#VRRP 实例
vrrp_instance VI_68_67 {
# VI_68_67 实例名名称
# MASTER 为主 BACKUP 为备,配置备机时需要修改
#绑定网卡,通过 ifconfig 查看网卡信息
state MASTER
interface em1
dont_track_primary
track_interface {
em1
}
garp_master_delay 10
virtual_router_id 68
priority 110
# id 标识为组信息,一组两备,在同一组内 id 相同
#优先级,主的优先级要高于备,由于有两备,备的优先级
也需要区分高低,以此来判定主宕机后,优先选择哪个备机
#检查时间,默认 1 秒
#安全认证,默认
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
#haproxy 健康检查,MASTER 进行检查,BACKUP 无需配置
check_haproxy weight 2
}
virtual_ipaddress {
#虚拟 IP 地址设置
192.168.14.61/24 dev em1
}
}
vrrp_instance VI_69_68 {
state BACKUP
interface em1
dont_track_primary
track_interface {
em1
}
garp_master_delay 10
virtual_router_id 69
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
virtual_ipaddress {
192.168.14.94/24 dev em1
}
}
vrrp_instance VI_67_68 {
state BACKUP
interface em1
dont_track_primary
track_interface {
em1
}
garp_master_delay 10
virtual_router_id 67
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.14.92/24 dev em1
}
}
10.Haproxy 检查脚本
上 传 check_haproxy.sh 至 /etc/keepalived 下 , 添 加 可 执 行 权 限 chmod u+x
check_haproxy.sh
check_haproxy.sh
#!/bin/bash
if [ $(ps -C haproxy --no-header | wc -l) -eq 0 ]; then
nohup /home/haproxy/sbin/haproxy -f /home/haproxy/conf/haproxy.cfg &
fi
sleep 2
if [ $(ps -C haproxy --no-header | wc -l) -eq 0 ]; then
service keepalived stop
fi
注:另外两台主机安装同理(即 67 为主,68,69 为备;68 为主,67,69 为备;69 为主,
67,68 为备;一共三组,每一组的 virtual_router_id 不能重复,id 取值范围 0-255)
haproxy 安装
1.修改参数(需要 root)
a)
b)
vi /etc/selinux/config
#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加
:wq!
setenforce 0 #使配置立即生效
#保存退出
2.修改防火墙配置(需要 root)
a)
vi /etc/sysconfig/iptables
加入
-A INPUT -d 224.0.0.18 -j ACCEPT
-A INPUT -p
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
保存退出,/etc/init.d/iptables restart #重启防火墙使配置生效
-j ACCEPT
vrrp
3.创建 haproxy 用户
a) useradd haproxy -d /home/haproxy
passwd haproxy
4.安装 gcc 编译器
yum install -y gcc --nogpgcheck
5.上传 haproxy-1.4.21.tar.gz
haproxy-1.4.21.tar.gz
haproxy-1.7.5.tar.gz
a) 上传 haproxy-1.4.21.tar.gz 并解压
tar -xvf haproxy-1.4.21.tar.gz
cd /home/haproxy/haproxy-1.4.21
#使用 uname -r 查看内核,如:2.6.18-371.el5,此时该参数就为 linux26
#kernel 大于 2.6.28 的用:TARGET=linux2628
#使用 uname -r 查看系统信息,如 x86_64 x86_64 x86_64 GNU/Linux,
#CPU=x86_64
此时该参数就为 x86_64
#PREFIX=/usr/local/haprpxy
#/usr/local/haprpxy 为 haprpxy 安装路径
b) TARGET=linux2628 CPU=x86_64
PREFIX=/home/haproxy(在 haproxy-1.7.5 版本里执
行 make TARGET=linux2628 CPU=x86_64 PREFIX=/home/haproxy)
make install PREFIX=/home/haproxy
mkdir -p /home/haproxy/conf
cp -r
/home/haproxy/haproxy-1.4.21/examples/errorfiles
/home/haproxy/errorfiles
c) 上传 haproxy.cfg 配置至/home/haproxy/conf 目录下
haproxy.cfg
haproxy-1.7.5.cfg
d) 启动 haproxy
/home/haproxy/sbin/haproxy -f /home/haproxy/conf/haproxy.cfg
注意:haproxy-1.7.5 版本配置与 haproxy-1.4.21 版本配置参数不略有更新,不通用
6.加日志
a) 首先 vi /etc/rsyslog.conf;
将配置中注释掉的
$ModLoad imudp
$UDPServerRun 514
两行注释打开
在有 local 数字.*的字眼下起一行写:
Local3.* /var/log/haproxy.log
此行效果就是第三个设备用于保存 haproxy 的日志;
保存退出;
b) 接着 vi /etc/sysconfig/rsyslog;没有该文件就创建一个;
然后里面写 SYSLOGD_OPTIONS="-r -m 0 -c 2"
保存退出;
c) 接着重启系统日志服务:
service rsyslog restart;
或者/etc/init.d/rsyslog restart
注:其他两台主机安装同理
测试
1.Keepalived 启动
service keepalived start
a)
b) ps –ef|grep keepalived 查看后台有 3 个进程
2.切换测试
注:由于以上配置了 haproxy 的健康检查脚本,故测试时需要主机已安装 haproxy
或者将 keepalived 实例配置中检查 haproxy 的配置注释
a) 3 台主机 keepalived 启动后,查看通过 ip a 查看虚拟 IP 是否生效