zoukankan      html  css  js  c++  java
  • HAproxy+Mycat

    haproxy+mycat搭建
    haproxy server 10.0.1.134
    mycat server 10.0.1.134,10.0.1.135
    mysql master 10.0.1.134
    mysql slave 10.0.1.135

    CentOS release 6.6 (Final)
    jdk-8u101-linux-x64
    Mycat-server-1.6-RELEASE-20161010173036-linux
    1 下载haproxy
    [root@hongquan soft]# tar zxvf haproxy-1.7.0.tar.gz
    [root@hongquan soft]# cd haproxy-1.7.0
    [root@hongquan haproxy-1.7.0]# make TARGET=linux26 PREFIX=/usr/local/haproxy ARCH=x86_64
    make install PREFIX=/usr/local/haproxy

    [root@hongquan haproxy-1.7.0]# useradd haproxy
    [root@hongquan haproxy-1.7.0]# cd /usr/local/haproxy/
    [root@hongquan haproxy]# chown -R haproxy:haproxy *
    #vim /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.0.1.134:48800 ##VIP
    stats uri /admin-status ##统计页面
    stats auth admin:admin
    mode http
    option httplog
    listen allmycat_service 10.0.1.134:8096 #10.0.1.134 8096端口转发到34,35 mycat 8086端口
    mode tcp
    option tcplog
    option httpchk OPTIONS * HTTP/1.1 Host: www
    balance roundrobin
    server mycat_26 10.0.1.134:8086 check port 48700 inter 5s rise 2 fall 3
    server mycat_27 10.0.1.135:8086 check port 48700 inter 5s rise 2 fall 3
    srvtimeout 20000
    listen allmycat_admin 10.0.1.134:8097 ##转发到mycat的9066端口,及mycat的管理控制台端口
    mode tcp
    option tcplog
    option httpchk OPTIONS * HTTP/1.1 Host: www
    balance roundrobin
    server mycat_26_admin 10.0.1.134:9086 check port 48700 inter 5s rise 2 fall 3
    server mycat_27_admin 10.0.1.135: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
    将rsyslog加入自动启动服务

    chkconfig --add rsyslog
    chkconfig --level 2345 rsyslog on
    现在你就可以看到日志(/var/log/haproxy.log)了
    配置监听mycat是否存活
    下面的配置是在10.0.1.134 10.0.1.135两台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 " (if mycat is running smoothly)
    #
    # "HTTP/1.x 503 Internal Server Error " (else)
    mycat=`/opt/mycat/bin/mycat status | grep 'not running' | wc -l`
    if [ "$mycat" = "0" ];
    then
    /bin/echo -e "HTTP/1.1 200 OK "
    else
    /bin/echo -e "HTTP/1.1 503 Service Unavailable "
    fi
    ##############################################
    注意:/opt/mycat/bin/mycat 为MYCAT的$HOME 目录
    chmod 777 /usr/local/bin/mycat_status
    chmod 777 /etc/xinetd.d/mycat_status
    4、/etc/services中加入mycat_status服务

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

    chkconfig --add xinetd
    chkconfig --level 2345 xinetd on
    5、验证mycat_status服务是否启动成功

    验证mycat_status服务是否启动成功
    #netstat -antup|grep 48700
    如果成功会现实如下内容:
    netstat -antup|grep 48700
    tcp 0 0 :::48700 :::* LISTEN 12609/xinetd
    启动HAPROXY
    /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg

  • 相关阅读:
    bash的for循环从命令读取值
    BFS-hdu-1226-超级密码
    计算机改名导致数据库链接的诡异问题
    There is insufficient system memory to run this query 错误
    SQL Server 2008 R2的发布订阅配置实践
    MS SQL 日常维护管理常用脚本(二)
    TreeSize工具介绍
    迁移Reporting Services的方法与WMI错误
    spring-session-data-redis解决session共享的问题
    elasticSearch6源码分析(12)DiscoveryModule
  • 原文地址:https://www.cnblogs.com/yhq1314/p/9968359.html
Copyright © 2011-2022 走看看