haproxy安装

12 篇文章 0 订阅
9 篇文章 0 订阅

MyCat服务主机(edu-mycat-01、edu-mycat-02)上需要增加mycat服务的状态检测脚本,
并开放相应的检测端口,以提供给HAProxy对MyCat的服务状态进行检测判断。
可以使用xinetd来实现,通过xinetd,HAProxy可以用httpchk来检测MyCat的存活状态。
(xinetd即extended internet daemon,xinetd是新一代的网络守护进程服务程序,
又叫超级Internet服务器。经常用来管理多种轻量级Internet服务。
xinetd提供类似于inetd+tcp_wrapper的功能,但是更加强大和安全。xinetd为linux系统的基础服务)

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

# yum install xinetd

2、检查/etc/xinetd.conf的末尾是否有 includedir /etc/xinetd.d ,没有就加上

# vi /etc/xinetd.conf

3、检查 /etc/xinetd.d 目录是否存在,不存在刚创建

# mkdir /etc/xinetd.d/

4、增加MyCat存活状态检测服务配置

# touch /etc/xinetd.d/mycat_status

# vi /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
}
//以下是说明。。begin

service mycat_status

{

flags = REUSE

## 使用该标记的socket_type为stream,需要设置wait为no

socket_type = stream ## 封包处理方式,Stream为TCP数据包

port = 48700 ## 服务监听端口

wait = no ## 表示不需等待,即服务将以多线程的方式运行

user = root ## 执行此服务进程的用户

server =/usr/local/bin/mycat_status ## 需要启动的服务脚本

log_on_failure += USERID ## 登录失败记录的内容

disable = no ## 要启动服务,将此参数设置为no

}
//以下是说明。。end

5、添加 /usr/local/bin/mycat_status 服务脚本

# touch /usr/local/bin/mycat_status

# vi /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=`/usr/local/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


6、给新增脚本赋予可执行权限

# chmod a+x /usr/local/bin/mycat_status

7、在 /etc/services 中加入 mycat_status 服务

# vi /etc/services

在末尾加入:

mycat_status 48700/tcp # mycat_status

保存后,重启xinetd服务

# service xinetd restart

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

# netstat -antup|grep 48700


9、MyCat服务主机的防火墙上打开 48700端口

# vi /etc/sysconfig/iptables

增加:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 48700 -j ACCEPT

保存后重启防火墙

# service iptables restart

脚本测试:

# /usr/local/bin/mycat_status


///HAProxy的安装
0.vi /etc/hosts
127.0.0.1 haproxy01
192.168.2.144 haproxy01
192.168.2.142 mycat01
192.168.2.143 mycat02

1.上传haproxy文件到/usr/local/src

2.解压:tar -zxvf haproxy-1.7.2.tar.gz

3.安装编译所需要的依赖包:
yum install gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel

4.编译:
make TARGET=linux2628 ARCH=x86_64 USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1 PREFIX=/usr/local/haproxy

## TARGET是指定内核版本,高于2.6.28的建议设置为linux2628,Linux操作系统内核版本查看命令# uname -r, ARCH指定系统架构,openssl pcre zlib 这三个包需要安装不然不支持

5、创建安装目录 /usr/local/haproxy

# mkdir /usr/local/haproxy

6、执行安装

[root@edu-haproxy-01 haproxy-1.5.16]# make install PREFIX=/usr/local/haproxy

7、创建配置文件目录

# mkdir -p /usr/local/haproxy/conf

# mkdir -p /etc/haproxy/

8、上传配置文件(haproxy.cfg)到/usr/local/haproxy/conf,并添加配置文件软连接

# ln -s /usr/local/haproxy/conf/haproxy.cfg /etc/haproxy/haproxy.cfg

9、拷贝错误页面,并添加目录软连接(HTTP模式选配)

# cp -r /usr/local/src/haproxy-1.7.2/examples/errorfiles /usr/local/haproxy

# ln -s /usr/local/haproxy/errorfiles /etc/haproxy/errorfiles

10、拷贝开机启动文件,并赋予可执行权限

# cp /usr/local/src/haproxy-1.7.2/examples/haproxy.init /etc/rc.d/init.d/haproxy

# chmod +x /etc/rc.d/init.d/haproxy

11、添加haproxy命令脚本软连接

# ln -s /usr/local/haproxy/sbin/haproxy /usr/sbin

12、设置HAProxy开机启动

# chkconfig --add haproxy

# chkconfig haproxy on


13、根据以上HAProxy配置文件要求做以下配置

(1)添加haproxy用户组和用户

# groupadd haproxy

# useradd -g haproxy haproxy

(2)创建chroot运行的路径

# mkdir /usr/share/haproxy

(3)防火墙中打开3306端口和48800端口

# vi /etc/sysconfig/iptables

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 48800 -j ACCEPT

重启防火墙

# service iptables restart

14、开启rsyslog的haproxy日志记录功能

默认情况下 haproxy是不记录日志的,如果需要记录日志,还需要配置系统的syslog,在linux系统中是rsyslog服务。
syslog服务器可以用作一个网络中的日志监控中心,rsyslog是一个开源工具,
被广泛用于Linux系统以通过TCP/UDP协议转发或接收日志消息。安装配置rsyslog服务:

# yum install rsyslog ## 没安装的情况下执行安装

# vi /etc/rsyslog.conf

把 $ModLoad imudp 和 $UDPServerRun 514前面的 # 去掉

$ModLoad imudp ## 是模块名,支持UDP协议

$UDPServerRun 514

##允许514端口接收使用UDP和TCP协议转发过来的日志,

##而rsyslog在默认情况下,正是在514端口监听UDP

确认 #### GLOBAL DIRECTIVES #### 段中是否有 $IncludeConfig /etc/rsyslog.d/*.conf没有则增加上此配置,增加后的效果:

# cd /etc/rsyslog.d/ ## rsyslog服务会来此目录加载配置

# touch haproxy.conf ## 创建haproxy的日志配置文件

# vi /etc/rsyslog.d/haproxy.conf

增加以下内容:

local0.* /var/log/haproxy.log

&~

##如果不加上面的的"&~"配置则除了在/var/log/haproxy.log中写入日志外,也会写入/var/log/message文件中

配置保存后重启rsyslog服务

# service rsyslog restart
(等到HAProxy服务启动后,就能在/var/log/haproxy.log中看到日志了)


15、配置系统内核的IP包转发功能

# vi /etc/sysctl.conf

net.ipv4.ip_forward = 1

使配置生效

# sysctl -p

16、启动HAProxy

# service haproxy start

# ps -ef | grep haproxy


16.使用MySQL客户端通过HAProxy连接MyCat
用mycat定义的用户名和密码,端口是3306-haproxy的端口

插入数据验证

然后查看MySQL中的数据库插入及数据同步情况。并分别停止和启用mycat,然后对日志进行实时查看

17、登录HAProxy的状态信息统计页面

http://192.168.2.144:48800/admin-status
用户名和密码都是admin


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhong_jianyu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值