haproxy+keepalived集群搭建02
haproxy+keepalived集群搭建02
- 前言
- 1 安装haproxy
- 1.1 下载
- 1.2 安装依赖
- 1.3 编译
- 1.4 创建配置文件目录
- 1.5 添加配置文件软连接
- 1.6 拷贝错误页面并添加目录软连接(HTTP模式选配)
- 1.7 拷贝开机启动文件并授权
- 1.8 添加haproxy命令脚本软连接
- 1.9 设置HAProxy开机启动
- 1.10 添加haproxy用户组和用户并创建chroot运行路径
- 1.11 haproxy 配置文件
- 2 安装rsyslog日志服务
- 2.1 安装
- 2.2 配置
- 2.3 添加配置文件
- 2.4 重启rsyslog服务
- 3、开启端口
- 4、开启haproxy并验证
- 5、安装keepalived(自定义)
- 5.1 下载并解压
- 5.2 安装依赖
- 5.3 编译安装
- 5.4 配置
- 5.5 设置开机启动
- 5.6 其他命令
- 6、 验证keepalived
前言
安装方式:自定义安装
服务器环境:Centos7.5
haproxy版本:2.5.7
keepalived版本:2.0.20
1 安装haproxy
1.1 下载
HAProxy官方下载地址为: https://www.haproxy.org/#down,如果这个网站无法访问,也可以从 hkps:/src.fedoraproject.org/repo/pkgs/haproxy/上进行下载。这里我下载的是2.5.7版本,下载后通过xftp等工具将压缩包上传至服务器的/usr/local/目录下,然后进行解压:
cd /usr/local
tar -zxvf haproxy-2.5.7.tar.gz
1.2 安装依赖
yum -y install make gcc gcc-c++ libpcre3-dev openssl libssl-dev zlib1g-dev
1.3 编译
cd /usr/local/haproxy-2.5.7
make TARGET=3100 ARCH=x86_64 PREFIX=/usr/local/haproxy
make install TARGET=3100 ARCH=x86_64 PREFIX=/usr/local/haproxy
1.4 创建配置文件目录
mkdir -p /usr/local/haproxy/conf
mkdir -p /etc/haproxy/
1.5 添加配置文件软连接
touch /usr/local/haproxy/conf/haproxy.cfg
ln -s /usr/local/haproxy/conf/haproxy.cfg /etc/haproxy/haproxy.cfg
1.6 拷贝错误页面并添加目录软连接(HTTP模式选配)
cp -r /usr/local/haproxy-2.5.7/examples/errorfiles /usr/local/haproxy/
ln -s /usr/local/haproxy/errorfiles /etc/haproxy/errorfiles
1.7 拷贝开机启动文件并授权
cp /usr/local/haproxy-2.5.7/examples/haproxy.init /etc/init.d/haproxy
chmod +x /etc/init.d/haproxy
1.8 添加haproxy命令脚本软连接
ln -s /usr/local/haproxy/sbin/haproxy /usr/sbin
1.9 设置HAProxy开机启动
chkconfig --add haproxy
chkconfig haproxy on
1.10 添加haproxy用户组和用户并创建chroot运行路径
HAProxy配置文件有指定用户和用户组,以及chroot运行路径:
groupadd haproxy
useradd -g haproxy haproxy
mkdir /usr/share/haproxy
1.11 haproxy 配置文件
vi /usr/local/haproxy/conf/haproxy.cfg
配置文件内容如下:
globallog 127.0.0.1 local0chroot /usr/share/haproxygroup haproxyuser haproxydaemonmaxconn 4096node edu-haproxy-01description edu-haproxy-01
defaultsmode httplog globaloption httplogoption dontlognulloption http-server-closeoption forwardfor except 127.0.0.0/8option redispatchretries 3timeout http-request 10stimeout queue 1mtimeout connect 10stimeout client 1mtimeout server 1mtimeout http-keep-alive 10stimeout check 10smaxconn 3000
listen statsbind 0.0.0.0:8000mode httpstats enablestats hide-versionstats uri /haproxystatsstats realm Haproxy\statsstats auth admin:adminstats admin if TRUEfrontend http-inbind 0.0.0.0:5672mode tcplog globaloption httplogoption httpclosedefault_backend rabbitmq-serverbackend rabbitmq-servermode tcpbalance roundrobinserver rabbitmq-node1 192.168.45.201:5672 maxconn 2000 weight 1 check inter 5s rise 2 fall 2server rabbitmq-node2 192.168.45.202:5672 maxconn 2000 weight 1 check inter 5s rise 2 fall 2server rabbitmq-node3 192.168.45.203:5672 maxconn 2000 weight 1 check inter 5s rise 2 fall 2
2 安装rsyslog日志服务
2.1 安装
yum -y install rsyslog
2.2 配置
vi /etc/rsyslog.conf
# Provides UDP syslog reception
# 打开下面的配置
$ModLoad imudp
$UDPServerRun 514# Provides TCP syslog reception
# 打开下面的配置
$ModLoad imtcp
$InputTCPServerRun 514
2.3 添加配置文件
在/etc/rsyslog.d/目录下创建 haproxy的日志配置文件haproxy.log
vi /etc/rsyslog.d/haproxy.log
添加配置内容如下:
local0.* /var/log/haproxy.log
&~
2.4 重启rsyslog服务
systemctl restart rsyslog.service
3、开启端口
需要参考haproxy中的配置文件“/usr/local/haproxy/conf/haproxy.cfg”,该文件中使用到了哪些端口就开启哪些端口即可;我这里使用到了8000和5672端口;
# 查看防火墙状态,如果未开启防火墙,那么需要先开启防火墙
firewall-cmd --state
# 开启防火墙
systemctl start firewalld.service
#查看已开启的端口
firewall-cmd --list-ports
#开启指定端口
firewall-cmd --zone=public --add-port=8000/tcp --permanent
firewall-cmd --zone=public --add-port=5672/tcp --permanent
systemctl restart firewalld.service
firewall-cmd --reload
4、开启haproxy并验证
systemctl start haproxy
systemctl status haproxy
管理后台地址:http://192.168.45.191:8000/haproxystats
账号:admin
密码:admin
5、安装keepalived(自定义)
按照上述步骤安装完毕两台haproxy:
haproxy-01:192.168.45.191
haproxy-02:192.168.45.192
计划配置虚拟ip:192.168.45.190
5.1 下载并解压
下载地址:https://www.keepalived.org/download.html
cd /usr/local/
tar -zxvf keepalived-2.0.20.tar.gz
5.2 安装依赖
yum -y install openssl-devel libnl libnl-devel
5.3 编译安装
cd keepalived-2.0.20/
./configure --prefix=/usr/local/keepalived
make && make install
编译安装后会生成以下文件路径:
/usr/local/etc/keepalived/keepalived.conf
/usr/local/etc/sysconfig/keepalived
/usr/local/sbin/keepalived
5.4 配置
# keepalived启动脚本变量引用文件,默认文件路径是/etc/sysconfig/,也可以不做软链接,直接修改启动脚本中文件路径即可(安装目录下)
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/keepalived # 将keepalived主程序加入到环境变量(安装目录下)
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/keepalived# keepalived启动脚本(源码目录下),放到/etc/init.d/目录下就可以使用service命令便捷调用
cp /usr/local/keepalived-2.0.20/keepalived/etc/init.d/keepalived /etc/init.d/keepalived# 将keepalived配置文件放到默认路径下
mkdir /etc/keepalived
touch /etc/keepalived/keepalived.conf
haproxy-01的keepalived.conf配置文件内容如下:
vi /etc/keepalived/keepalived.conf
! Configuration File for keepalivedglobal_defs {router_id director1
}
vrrp_script check_haproxy {script "/etc/keepalived/haproxy_chk.sh"interval 5
}vrrp_instance VI_1 {state MASTERinterface ens33virtual_router_id 80priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.45.190}track_script {check_haproxy}
}
haproxy-02的keepalived.conf配置文件内容如下:
vi /etc/keepalived/keepalived.conf
! Configuration File for keepalivedglobal_defs {router_id director2
}
vrrp_script check_haproxy {script "/etc/keepalived/haproxy_chk.sh"interval 5
}vrrp_instance VI_1 {state BACKUPinterface ens33virtual_router_id 80priority 50advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.45.190}track_script {check_haproxy}
}
5.5 设置开机启动
# 添加为系统服务
chkconfig --add keepalived
# 设置开机启动
chkconfig keepalived on
5.6 其他命令
# 启动、关闭、重启、查看 keepalived
systemctl start keepalived
systemctl stop keepalived
systemctl restart keepalived
systemctl status keepalived
6、 验证keepalived