本章节主要介绍配置HaProxy+Keepalived高可用群集,Mycat的配置就不在这里做介绍,可以参考我前面写的几篇关于Mycat的文章。
部署图:
HaProxy安装
181和179两台服务器安装haproxy的步骤一致
HaProxy配置
global
log 127.0.0.1 local0 ##记日志的功能
maxconn 4096
chroot /usr/local/haproxy
user haproxy
group haproxy
daemon
defaults
log global
option dontlognull
retries 3
option redispatch
maxconn 2000
contimeout 5000
clitimeout 50000
srvtimeout 50000
listen admin_stats 192.168.57.180:48800 ##统计页面
stats uri /admin-status
stats auth admin:admin
mode http
option httplog
listen mycat_service 192.168.57.180:18066 ##客户端就是通过这个ip和端口进行连接,这个vip和端口绑定的是mycat8066端口
mode tcp
option tcplog
option httpchk OPTIONS * HTTP/1.1\r\nHost:\ www
balance roundrobin
server mycat_181 192.168.57.181:8066 check port 48700 inter 5s rise 2 fall 3
server mycat_179 192.168.57.179:8066 check port 48700 inter 5s rise 2 fall 3
srvtimeout 20000
listen mycat_admin 192.168.57.180:19066 ##客户端就是通过这个ip和端口进行连接,这个vip和端口绑定的是mycat9066端口
server mycat_181 192.168.57.181:9066 check port 48700 inter 5s rise 2 fall 3
server mycat_179 192.168.57.179:9066 check port 48700 inter 5s rise 2 fall 3
配置haproxy记录日志功能
vim /etc/rsyslog.conf
在#### RULES ####上面一行加入以下内容
在local7.* /var/log/boot.log下面加入以下内容
重启rsyslog服务
将rsyslog加入自动启动服务
配置监听mycat是否存活
安装xinetd插件
创建xinetd启动服务脚本
vim /usr/local/bin/mycat_status
修改脚本文件权限
我就是在这里被坑了很久,根据权威指南上面mycat_status这个脚本里面的内容也有很多问题,好几个地方没有空格.
将启动脚本加入服务
vim /etc/services
在末尾加入
重启xinetd服务
将xinetd加入自启动服务
页面测试
http://192.168.57.180:48800/admin-status
由于179还没有安装好,所以这里179显示连接失败
创建haproxy启停脚本
启动脚本
关闭脚本
授权
Keepalived安装步骤
keepalived的安装步骤过程在两台服务器上除了keepalived.conf配置文件稍微有点区别外其他的地方都一致。
openssl安装
在文件末尾加入以下内容
修改环境变量
vim /etc/profile
使环境变量立刻生效
安装openssl-devel
测试
keepalived安装
创建配置文件和脚本
vim /etc/keepalived/keepalived.conf
master
backup
vim /etc/keepalived/scripts/check_haproxy.sh
vim /etc/keepalived/scripts/haproxy_master.sh
vim /etc/keepalived/scripts/haproxy_backup.sh
vim /etc/keepalived/scripts/haproxy_fault.sh
vim /etc/keepalived/scripts/haproxy_stop.sh
赋予脚本可执行权限
将keepalived加入自启动服务
权威指南上面代码部分好多处都存在问题,几乎每一块代码都存在问题,有时候往往一个空格需要花很长的时间去找这个问题,所以在代码方面要细心;特别是复制别人的代码不要原本照抄最好是检查一下,除了代码本身的问题权限有时候也是容易忽略的错误,特别是可执行文件要注意是否有可执行权限。
本文转自 Mr_sheng 51CTO博客,原文链接:http://blog.51cto.com/sf1314/2073257