haproxy+mycat 搭建

这里先讲haproxy+mycat 搭建,假如想扩展的再加上keepalived 也不是什么难事。


haproxy  10.10.9.114 port 8096

mycat 1  10.10.9.26  port 8086

mycat2   10.10.9.27 port 8086


HAPROXY 安装

#useradd haproxy

#下载链接可能失效,HA软件自备

#wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.25.tar.gz
 
# tar zxvf haproxy-1.4.25.tar.gz
# cd haproxy-1.4.25
# make TARGET=linux26 PREFIX=/usr/local/haproxy ARCH=x86_64
# make install PREFIX=/usr/local/haproxy
 
#cd /usr/local/haproxy
#chown -R haproxy.haproxy *
编辑haproxy 配置文件

#vi/usr/local/haproxy/haproxy.cfg

@@@@@@@@@@@@@@@@@@@@配置文件内容如下:

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_status 10.10.9.114:48800 ##VIP
      stats uri /admin-status        ##统计页面
      stats auth  admin:admin
      mode    http
      option  httplog
listen    allmycat_service 10.10.9.114:8096 #10.10.9.114 8096端口转发到26 27 mycat 8086端口
      mode tcp
      option tcplog
        option httpchk OPTIONS * HTTP/1.1\r\nHost:\ www
      balance    roundrobin
        server    mycat_26 10.10.9.26:8086 check port 48700 inter 5s rise 2 fall 3
        server    mycat_27 10.10.9.27:8086 check port 48700 inter 5s rise 2 fall 3
      srvtimeout 20000
listen    allmycat_admin 10.10.9.114:8097 ##转发到mycat的9066端口,及mycat的管理控制台端口
      mode tcp
      option tcplog
        option httpchk OPTIONS * HTTP/1.1\r\nHost:\ www
      balance    roundrobin
        server    mycat_26_admin  10.10.9.26:9086 check port 48700 inter 5s rise 2 fall 3
        server    mycat_27_admin  10.10.9.27:9086 check port 48700 inter 5s rise 2 fall 3
      srvtimeout 20000

################################################

安装haproxy日志

默认haproxy是不记录日志的,为了记录日志还需要配置syslog模块,在linux下是rsyslogd服务,yum –y install rsyslog先安装rsyslog,然后

记录haproxy日志的配置
#cd /etc/rsyslog.d/
如果没有这个目录,新建
#cd /etc
#mkdir rsyslog.d
#cd /etc/rsyslog.d/
#touch haproxy.conf
#vi /etc/rsyslog.d/haproxy.conf
$ModLoad imudp
$UDPServerRun 514
 
local0.*  /var/log/haproxy .log
 
 
 
#vi /etc/rsyslog.conf
1、在 #### RULES ####上面一行的地方加入以下内容:
# Include all config files in /etc/rsyslog.d/
$IncludeConfig  /etc/rsyslog .d/*.conf
#### RULES ####
2、在local7.*                                           /var/log/boot .log的下面加入以下内容(增加后的效果如下):
# Save boot messages also to boot.log
local7.*                                                /var/log/boot .log
local0.*                                                /var/log/haproxy .log
这里告诉一个VIM 技巧 进入VI 编辑页面按G可以跳转到文件的最后一行

保存,重启rsyslog服务

service rsyslog restart

现在你就可以看到日志(/var/log/haproxy.log)了


##########################################################

配置监听mycat是否存活

下面的配置是在10.10.9.26  10.10.9.27 两台MYCAT 服务器上配置

在Mycat server1 Mycat server2上都需要添加检测端口48700的脚本,为此需要用到xinetd,xinetd为linux系统的基础服务

首先在xinetd目录下面增加脚本与端口的映射配置文件

1、如果xinetd没有安装,使用如下命令安装:

yum install xinetd -y

2、检查/etc/xinetd.conf的末尾是否有这一句:includedir /etc/xinetd.d

没有就加上,

3、检查 /etc/xinetd.d文件夹是否存在,不存在也加上

#cd /etc

#mkdir xinetd.d

4、增加 /etc/xinetd.d/mycat_status

#vim /etc/xinetd.d/mycat_status
service mycat_status
{
         flags           = REUSE
         socket_type     = stream
         port            = 48700
         wait            = no
         user            = root
         server          = /usr/local/bin/mycat_status
         log_on_failure  += USERID
         disable         = no
}
创建编辑 /usr/local/bin/mycat_status 文件, 并赋予执行权限

[root@test927 xinetd.d]# cat /usr/local/bin/mycat_status
#!/bin/bash
#/usr/local/bin/mycat_status.sh
# This script checks if a mycat server is healthy running on localhost. It will
# return:
#
# "HTTP/1.x 200 OK\r" (if mycat is running smoothly)
#
# "HTTP/1.x 503 Internal Server Error\r" (else)
mycat=`/opt/mycat/bin/mycat status | grep 'not running' | wc -l`
if [ "$mycat" = "0" ];
then
 /bin/echo -e "HTTP/1.1 200 OK\r\n"
 else
   /bin/echo -e "HTTP/1.1 503 Service Unavailable\r\n"
fi

##############################################

注意:/opt/mycat/bin/mycat 为MYCAT的$HOME 目录

赋权 chmod +x /usr/local/bin/mycat_status

4、/etc/services中加入mycat_status服务

 

加入mycat_status服务
#cd /etc
#vi services
在末尾加入
mycat_status    48700 /tcp               # mycat_status
保存
重启xinetd服务
service xinetd restart

5、验证mycat_status服务是否启动成功

 

验证mycat_status服务是否启动成功
#netstat -antup|grep 48700
如果成功会现实如下内容:
[root@localhost log] # netstat -antup|grep 48700
tcp        0      0 :::48700                    :::*                        LISTEN      12609 /xinetd  

启动HAPROXY

/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg

启动后可以通过http://10.10.9.114:48800/admin-status (用户名密码都是admin,haproxy.cfg中配置的)

haproxy+mycat 搭建_第1张图片


你可能感兴趣的:(高可用)