天天看點

HaProxy+keepalived+mycat叢集實戰 2、haproxy記錄日志,預設haproxy是不記錄日志的,為了記錄日志還需要配置syslog子產品,在linux下是rsyslogd服務, #yum –y installrsyslog先安裝rsyslog

叢集部署圖的了解:

1、  keepalive和haproxy必須裝在同一台機器上,keepalived負責為該伺服器搶占VIP。

2、  192.168.1.107上的keepalived會搶占VIP,搶占VIP有優先級,配置keepalived.conf中參數priority值越大優先越高,在同等情況下,keepalived伺服器啟動先得會先搶到VIP。

3、  Harpoxy負責将對VIP的請求分發到mycat上,起到負載均衡的作用,同時haproxy也能檢測到mycat是否存活,haproxy隻會将請求轉發到存活的mycat上。

4、  如果一台伺服器(keepalive+mycat)當機,另外一台上的keepalived會立刻搶占vip并接管服務,如果一台mycat伺服器當機,haproxy轉發時候不會轉發到當機的mycat上.

keepalived的安裝配置:

兩台機器進行keepalived安裝,個别參數差別其他一緻。

1、      安裝:

#tar -zxvf  keepalived-1.2.19.tar.gz

# cd keepalived-1.2.19 &amp;&amp;<code>./configure --prefix=/usr/local/keepalived &amp;&amp;make&amp;&amp; make install</code>

<code>不報錯,表示ok,有些系統可能需要安裝gcc這個依賴包</code>

<code>Yum –y install gcc</code>

<code>2、    </code><code>配置</code>

<code>cp</code> <code>/usr/local/keepalived/sbin/keepalived </code> <code>/usr/sbin/</code>

cp /usr/local/keepalived/etc/sysconfig/keepalived  /etc/sysconfig/

cp /usr/local/keepalived/etc/rc.d/init.d/keepalived/etc/init.d/

<code>mkdir</code> <code>/etc/keepalived&amp;&amp; cd</code> <code>/etc/keepalived/</code>

cp /usr/local/keepalived/etc/keepalived/keepalived.conf/etc/keepalived

mkdir-p /usr/local/keepalived/var/log

vi/etc/keepalived/keepalived.conf ####Master

! Configuration File for keepalived

global_defs {

  notification_email {

    [email protected]

    [email protected]

    [email protected]

   }

  notification_email_from [email protected]

   smtp_server192.168.200.1

  smtp_connect_timeout 30

   router_idLVS_DEVEL

}

vrrp_instance VI_1 {

    state MASTER  ##把MASTER改成BACKUP

    interface eth1   #和本機網卡接口名一緻

   virtual_router_id 51

    priority 100    ###權重 ,SLAVE點改小于100就好

    advert_int 1

    authentication{

        auth_typePASS

        auth_pass1111

    }

   virtual_ipaddress {

        192.168.1.219 dev eth1 scope global

notify_master /etc/keepalived/scripts/haproxy_master.sh

notify_backup /etc/keepalived/scripts/haproxy_backup.sh

notify_fault /etc/keepalived/scripts/haproxy_fault.sh

notify_stop /etc/keepalived/scripts/haproxy_stop.sh

###到這裡可以測試下VIP的漂移功能。

二、安裝HAPROXY

1、安裝HAPROXY:

#useradd  haproxy

tar -zxvfhaproxy-1.4.20.tar.gz

cdhaproxy-1.4.20 &amp;&amp; make TARGET=linux26 PREFIX=/usr/local/haproxyARCH=X86_64 &amp;&amp; make install PREFIX=/usr/local/haproxy

chown –R  haproxy.haproxy /usr/local/haprox

cd /usr/local/haproxy

編輯配置檔案haproxy.cfg,以提供,修改内容即可

若yum安裝rsyslog 有這樣問題:

<a href="http://s4.51cto.com/wyfs02/M01/89/93/wKioL1gXXAPi9kPFAABxhJs4tOA997.png-wh_500x0-wm_3-wmp_4-s_3384979875.png" target="_blank"></a>

一般安裝好rsyslog會自動生成rsyslog.d這個目錄,若無自己建立

 #cd /etc/rsyslog.d/ &amp;&amp; touch haproxy.conf

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

$ModLoad imudp

$UDPServerRun 514

 local0.* /var/log/haproxy.log ###這個必須和haproxy.cfg的配置檔案一緻。

#vim /etc/rsyslog.cnf

<a href="http://s2.51cto.com/wyfs02/M00/89/95/wKiom1gXXCSxPZC9AAB7MGU5SJk178.png-wh_500x0-wm_3-wmp_4-s_1871194254.png" target="_blank"></a>

3、重新開機服務

#service rsyslogrestart

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

到此haproxy+keepalived 的結合完畢,隻需要在haproxy.cfg添加服務即可。

配置監聽 mycat是否存活

在192.168.1.112 和192.168.1.113 上添加檢測端口48700,為此需要用到xinetd,xinetd為LINUX系統基礎服務

1、若無xinetd服務,則安裝

#yum –y installxinetd

2、檢查/etc/xined.conf是否有:

3、添加/etc/xinetd.d/mycat_status,此目錄安裝後預設存在。

#vimmycat_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

4、把mycat_status添加到/etc/services服務中去

<a href="http://s2.51cto.com/wyfs02/M00/89/95/wKiom1gXXHPyhkgYAAA9nJACaRg738.png-wh_500x0-wm_3-wmp_4-s_2209662831.png" target="_blank"></a>

5、/usr/local/bin/mycat_status的腳本,并設定權限777

6、重新開機服務、驗證mycat_status服務是否啟動成功

#service xinetd restart

#netstat –antup |grep 48700

<a href="http://s2.51cto.com/wyfs02/M02/89/96/wKiom1gXXKPRycFuAAAX4GEe1M4675.png-wh_500x0-wm_3-wmp_4-s_3732285218.png" target="_blank"></a>

配置haproxy的腳本腳本,在/etc/keepalived目錄添加目錄sripts,存放haproxy的腳本腳本。

1、check_haproxy.sh

vi/etc/keepalived/scripts/check_haproxy.sh

##腳本含義:如果沒有haproxy程序存在,就啟動haproxy,停止keepalived

#!/bin/bash

STARTHAPROXY="/usr/local/haproxy/sbin/haproxy -f/usr/local/haproxy/haproxy.cfg"

STOPKEEPALIVED="/etc/init.d/keepalived stop"

LOGFILE="/usr/local/keepalived/var/log/keepalived-haproxy-state.log"

echo "[check_haproxystatus]" &gt;&gt;$LOGFILE

A=`ps-C haproxy --no-header |wc-l`

date &gt;&gt;$LOGFILE

if [ $A-eq 0 ];then

echo $STARTHAPROXY&gt;&gt; $LOGFILE

$STARTHAPROXY &gt;&gt; $LOGFILE  2&gt;&amp;1

sleep5

fi

if [`ps -C haproxy --no-header |wc-l` -eq 0 ];then

exit 0

else

exit 1

2、haproxy_master.sh(master和slave一樣):

3、haproxy_backup.sh(master和slave一樣)

4、haproxy_fault.sh(master和slave一樣)

5、haproxy_stop.sh

在/etc/keepalived.conf配置檔案去掉#好,啟動這些腳本

要給腳本的權限:777

<a href="http://s2.51cto.com/wyfs02/M00/89/94/wKioL1gXXOiRZa0BAAAerExqxPw625.png-wh_500x0-wm_3-wmp_4-s_3961955892.png" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M00/89/94/wKioL1gXXOmAhr3iAAA8yOS9ke8298.png-wh_500x0-wm_3-wmp_4-s_593174943.png" target="_blank"></a>

5、重新開機keepalived 服務

#Service keepalived restart

測試~~~Ing~~~~

本文轉自 DBAspace 51CTO部落格,原文連結:http://blog.51cto.com/dbaspace/1867872