MyCat集羣部署(HAProxy + MyCat)

1、依賴博客文章html

http://www.javashuo.com/article/p-bkbflcel-k.html前端

http://www.javashuo.com/article/p-bzulnqnf-k.htmlnode

http://www.javashuo.com/article/p-xikuetbt-bb.htmlmysql

 

2、軟件版本linux

操做系統:CentOS-6.6-x86_64c++

JDK版本:jdk1.7.0_72git

HAProxy版本:haproxy-1.5.16.tar.gzgithub

MyCat版本:Mycat-server-1.4-release-20151019230038-linux.tar.gzredis

MySQL版本:mysql-5.6.26.tar.gz算法

 

3、部署環境規劃

名稱

IP

主機名

配置

HAProxy主機1

192.168.1.191

edu-haproxy-01

2核、2G

MyCat主機1

192.168.1.203

edu-mycat-01

4核、4G

MyCat主機2

192.168.1.204

edu-mycat-02

4核、4G

MySQL主節點

192.168.1.205

edu-mysql-01

4核、4G

MySQL從節點

192.168.1.206

edu-mysql-02

4核、4G

4、MyCat集羣部署架構圖以下:

圖解說明:

HAProxy負責將請求分發到MyCat上,起到負載均衡的做用,同時HAProxy也能檢測到MyCat是否存活,HAProxy只會將請求轉發到存活的MyCat上。若是一臺MyCat服務器宕機,HAPorxy轉發請求時不會轉發到宕機的MyCat上,因此MyCat依然可用。

 

5、MyCat節點2的部署

MyCat主機2(edu-mycat-02,192.168.1.204)請參考《高可用架構篇--第15節--MyCat在MySQL主從複製基礎上實現讀寫分離》進行對等部署和作相應配置。

注意:edu-mycat-01(192.168.1.203)和 edu-mycat-02(192.168.1.204) 中都要加上(或更新)主機名映射配置。

# vi /etc/hosts

192.168.1.203 edu-mycat-01

192.168.1.204 edu-mycat-02

192.168.1.205 edu-mysql-01

192.168.1.206 edu-mysql-02

6、配置MyCat狀態檢查服務(在MyCat節點主機上配置

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,須要設置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

}

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

在末尾加入:shift+g去到文件末尾

mycat_status    48700/tcp               # mycat_status

保存後,重啓xinetd服務

# service xinetd restart

 

8、驗證mycat_status服務是否成功啓動

# netstat -antup|grep 48700

 

能看到上圖這樣的信息,說明服務配置成功。

這裏須要說明一下做者遇到的坑,若是監控端口沒有輸出以上截圖信息,說明是service_mycat這個文件建立格式不對,解決方案

1:複製service_mycat裏面的全部內容,粘貼在新建立的txt文件裏面編輯,並刪除service_mycat文件

2:把txt文件內的註釋所有去掉

3:把txt文件裏的內容複製一下,在服務器用vi /etc/xinetd.d/mycat_status命令,粘貼txt文件內容進來,保存便可。

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

 

 

7、HAProxy介紹

HAProxy官網:http://www.haproxy.org/

HAProxy各版本的官方文檔:http://cbonte.github.io/haproxy-dconv/index.html

HAProxy 是一款提供高可用性、負載均衡以及基於TCP(第四層)和HTTP(第七層)應用的代理軟件,支持虛擬主機,它是免費、快速而且可靠的一種解決方案。

HAProxy目前主要有三個版本:1.四、1.五、1.6,CentOS6.6自帶的RPM包爲1.5的。

HAProxy1.5版開始,支持SSL、DDoS防禦等功能,可看官網說明:

version 1.5 : the most featureful version, supports SSL, IPv6, keep-alive, DDoS protection, etc...

MyCat官方推薦使用HAProxy作MyCat的高可用負載均衡代理。

 

 

8、HAProxy的安裝(192.168.1.191

一、下載(或上傳) haproxy-1.5.16.tar.gz 到 /usr/local/src,解壓安裝

[root@edu-haproxy-01 src]# cd /usr/local/src/

#wget http://www.haproxy.org/download/1.5/src/haproxy-1.5.16.tar.gz

[root@edu-haproxy-01 src]# tar -zxvf haproxy-1.5.16.tar.gz

[root@edu-haproxy-01 src]# cd haproxy-1.5.16

 

2、如需瞭解安裝注意點,可查看HAProxy的軟件說明

[root@edu-haproxy-01 haproxy-1.5.16]# less README

 

三、安裝編譯所需的依賴包

# 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

install -d "/usr/local/haproxy/sbin"

install haproxy  "/usr/local/haproxy/sbin"

install -d "/usr/local/haproxy/share/man"/man1

install -m 644 doc/haproxy.1 "/usr/local/haproxy/share/man"/man1

install -d "/usr/local/haproxy/doc/haproxy"

for x in configuration architecture haproxy-en haproxy-fr; do \

                install -m 644 doc/$x.txt "/usr/local/haproxy/doc/haproxy" ; \

        done

 

7、建立配置文件目錄

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

# mkdir -p /etc/haproxy/

 

8、從配置文件模版複製配置文件,並添加配置文件軟鏈接

# cp /usr/local/src/haproxy-1.5.16/examples/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.5.16/examples/errorfiles /usr/local/haproxy/

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

 

10、拷貝開機啓動文件,並賦予可執行權限

# cp /usr/local/src/haproxy-1.5.16/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

 

9、HAProxy配置MyCat負載均衡集羣

     HAProxy支持TCP(第四層)和HTTP(第七層)應用的代理,本節課程咱們使用HAProxy來作MyCat的負載均衡代理使用的是TCP模式。在4層模式下HAProxy僅在客戶端和服務器之間轉發雙向流量。HAProxy配置簡單,擁有很是不錯的服務器健康檢查功能,當其代理的後端服務器出現故障,HAProxy會自動將該服務器摘除,故障恢復後會自動將該服務器加入進來。

 

1、修改haproxy.cfg 配置文件

具體參數說明可參考官方配置文檔 /usr/local/haproxy/doc/haproxy/configuration.txt

或GitHub鏈接:http://cbonte.github.io/haproxy-dconv/configuration-1.5.html

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

## global配置中的參數爲進程級別的參數,一般與其運行的操做系統有關

global

      log 127.0.0.1    local0     info ## 定義全局的syslog服務器,最多能夠定義2個

      ### local0是日誌設備,對應於/etc/rsyslog.conf中的配置,默認回收info的日誌級別

      #log 127.0.0.1   local1 info

      chroot /usr/share/haproxy   ## 修改HAProxy的工做目錄至指定的目錄並在放棄權限以前執行

                                             ### chroot() 操做,能夠提高 haproxy 的安全級別

      group haproxy    ## 同gid,不過這裏爲指定的用戶組名

      user  haproxy    ## 同uid,但這裏使用的爲用戶名

      daemon     ## 設置haproxy後臺守護進程形式運行

      nbproc     1     ## 指定啓動的haproxy進程個數,

                      ### 只能用於守護進程模式的haproxy;默認爲止啓動1個進程,

                      ### 通常只在單進程僅能打開少數文件描述符的場中中才使用多進程模

      maxconn 4096     ## 設定每一個haproxy進程所接受的最大併發鏈接數,

                            ### 其等同於命令行選項"-n","ulimit-n"自動計算的結果正式參照從參數設定的

      # pidfile  /var/run/haproxy.pid  ## 進程文件(默認路徑 /var/run/haproxy.pid)

      node  edu-haproxy-01   ## 定義當前節點的名稱,用於HA場景中多haproxy進程共享同一個IP地址時

      description      edu-haproxy-01  ## 當前實例的描述信息

 

## defaults:用於爲全部其餘配置段提供默認參數,這默認配置參數可由下一個"defaults"所從新設定

defaults

      log   global     ## 繼承global中log的定義

      mode  http  ## mode:所處理的模式 (tcp:四層 , http:七層 , health:狀態檢查,只會返回OK)

      ### tcp: 實例運行於純tcp模式,在客戶端和服務器端之間將創建一個全雙工的鏈接,

      #### 且不會對7層報文作任何類型的檢查,此爲默認模式

      ### http:實例運行於http模式,客戶端請求在轉發至後端服務器以前將被深度分析,

      #### 全部不與RFC模式兼容的請求都會被拒絕

      ### health:實例運行於health模式,其對入站請求僅響應「OK」信息並關閉鏈接,

      #### 且不會記錄任何日誌信息 ,此模式將用於相應外部組件的監控狀態檢測請求

      option     httplog

      retries    3

      option redispatch     ## serverId對應的服務器掛掉後,強制定向到其餘健康的服務器

      maxconn    2000  ## 前端的最大併發鏈接數(默認爲2000)

      ### 其不能用於backend區段,對於大型站點來講,能夠儘量提升此值以便讓haproxy管理鏈接隊列,

      ### 從而避免沒法應答用戶請求。固然,此最大值不能超過「global」段中的定義。

      ### 此外,須要留心的是,haproxy會爲每一個鏈接維持兩個緩衝,每一個緩存的大小爲8KB,

      ### 再加上其餘的數據,每一個鏈接將大約佔用17KB的RAM空間,這意味着通過適當優化後 ,

      ### 有着1GB的可用RAM空間時將維護40000-50000併發鏈接。

      ### 若是指定了一個過大值,極端場景中,其最終所佔據的空間可能會超過當前主機的可用內存,

      ### 這可能會帶來意想不到的結果,所以,將其設定一個可接受值放爲明智絕對,其默認爲2000

      timeout connect  5000ms     ## 鏈接超時(默認是毫秒,單位能夠設置us,ms,s,m,h,d)

      timeout client   50000ms    ## 客戶端超時

      timeout server   50000ms    ## 服務器超時

 

## HAProxy的狀態信息統計頁面

listen admin_stats

bind  :48800  ## 綁定端口

stats uri /admin-status     ##統計頁面

stats auth admin:admin ## 設置統計頁面認證的用戶和密碼,若是要設置多個,另起一行寫入便可

mode  http

option     httplog    ## 啓用日誌記錄HTTP請求

 

## listen: 用於定義經過關聯「前端」和「後端」一個完整的代理,一般只對TCP流量有用

listen mycat_servers

bind  :3306 ## 綁定端口

      mode  tcp

      option     tcplog     ## 記錄TCP請求日誌

      option     tcpka ## 是否容許向server和client發送keepalive

      option     httpchk OPTIONS * HTTP/1.1\r\nHost:\ www     ## 後端服務狀態檢測

      ### 向後端服務器的48700端口(端口值在後端服務器上經過xinetd配置)發送 OPTIONS 請求

      ### (原理請參考HTTP協議) ,HAProxy會根據返回內容來判斷後端服務是否可用.

      ### 2xx 和 3xx 的響應碼錶示健康狀態,其餘響應碼或無響應表示服務器故障。

      balance    roundrobin ## 定義負載均衡算法,可用於"defaults"、"listen"和"backend"中,默認爲輪詢方式

      server     mycat_01 192.168.1.203:8066 check port 48700 inter 2000ms rise 2 fall 3 weight 10

      server     mycat_02 192.168.1.204:8066 check port 48700 inter 2000ms rise 2 fall 3 weight 10

      ## 格式:server <name> <address>[:[port]] [param*]

      ### serser 在後端聲明一個server,只能用於listen和backend區段。

      ### <name>爲此服務器指定的內部名稱,其將會出如今日誌及警告信息中

      ### <address>此服務器的IPv4地址,也支持使用可解析的主機名,但要在啓動時須要解析主機名至響應的IPV4地址

      ### [:[port]]指定將客戶端鏈接請求發往此服務器時的目標端口,此爲可選項

      ### [param*]爲此server設定的一系列參數,均爲可選項,參數比較多,下面僅說明幾個經常使用的參數:

      #### weight:權重,默認爲1,最大值爲256,0表示不參與負載均衡

      #### backup:設定爲備用服務器,僅在負載均衡場景中的其餘server均不能夠啓用此server

      #### check:啓動對此server執行監控狀態檢查,其能夠藉助於額外的其餘參數完成更精細的設定

      #### inter:設定監控狀態檢查的時間間隔,單位爲毫秒,默認爲2000,

      ##### 也可使用fastinter和downinter來根據服務器端專題優化此事件延遲

      #### rise:設置server從離線狀態轉換至正常狀態須要檢查的次數(不設置的狀況下,默認值爲2)

      #### fall:設置server從正常狀態轉換至離線狀態須要檢查的次數(不設置的狀況下,默認值爲3)

      #### cookie:爲指定server設定cookie值,此處指定的值將會在請求入站時被檢查,

      ##### 第一次爲此值挑選的server將會被後續的請求所選中,其目的在於實現持久鏈接的功能

      #### maxconn:指定此服務器接受的最大併發鏈接數,若是發往此服務器的鏈接數目高於此處指定的值,

      #####其將被放置於請求隊列,以等待其餘鏈接被釋放

注意:多節點部署時node 、 description的值要作相應調整。詳細的配置文件以下

## global配置中的參數爲進程級別的參數,一般與其運行的操做系統有關
global
	log 127.0.0.1	local0	info ## 定義全局的syslog服務器,最多能夠定義2個
	### local0是日誌設備,對應於/etc/rsyslog.conf中的配置,默認回收info的日誌級別
	#log 127.0.0.1	local1 info
	chroot /usr/share/haproxy	## 修改HAProxy的工做目錄至指定的目錄並在放棄權限以前執行
								### chroot() 操做,能夠提高 haproxy 的安全級別
	group	haproxy	## 同gid,不過這裏爲指定的用戶組名
	user	haproxy	## 同uid,但這裏使用的爲用戶名
	daemon	## 設置haproxy後臺守護進程形式運行
	nbproc	1	## 指定啓動的haproxy進程個數,
				### 只能用於守護進程模式的haproxy;默認爲止啓動1個進程,
				### 通常只在單進程僅能打開少數文件描述符的場中中才使用多進程模式
	maxconn 4096	## 設定每一個haproxy進程所接受的最大併發鏈接數,
					### 其等同於命令行選項"-n","ulimit-n"自動計算的結果正式參照從參數設定的
	# pidfile	/var/run/haproxy.pid	## 進程文件(默認路徑 /var/run/haproxy.pid)
	node	dubbo-provider-02	## 定義當前節點的名稱,用於HA場景中多haproxy進程共享同一個IP地址時
	description	dubbo-provider-02	## 當前實例的描述信息

## defaults:用於爲全部其餘配置段提供默認參數,這默認配置參數可由下一個"defaults"所從新設定
defaults
	log	global	## 繼承global中log的定義
	mode	http	## mode:所處理的模式 (tcp:四層 , http:七層 , health:狀態檢查,只會返回OK) 
	### tcp: 實例運行於純tcp模式,在客戶端和服務器端之間將創建一個全雙工的鏈接,
	#### 且不會對7層報文作任何類型的檢查,此爲默認模式
	### http:實例運行於http模式,客戶端請求在轉發至後端服務器以前將被深度分析,
	#### 全部不與RFC模式兼容的請求都會被拒絕
	### health:實例運行於health模式,其對入站請求僅響應「OK」信息並關閉鏈接,
	#### 且不會記錄任何日誌信息 ,此模式將用於相應外部組件的監控狀態檢測請求
	option	httplog
	retries	3
	option redispatch	## serverId對應的服務器掛掉後,強制定向到其餘健康的服務器
	maxconn	2000	## 前端的最大併發鏈接數(默認爲2000)
	### 其不能用於backend區段,對於大型站點來講,能夠儘量提升此值以便讓haproxy管理鏈接隊列,
	### 從而避免沒法應答用戶請求。固然,此最大值不能超過「global」段中的定義。
	### 此外,須要留心的是,haproxy會爲每一個鏈接維持兩個緩衝,每一個緩存的大小爲8KB,
	### 再加上其餘的數據,每一個鏈接將大約佔用17KB的RAM空間,這意味着通過適當優化後 ,
	### 有着1GB的可用RAM空間時將維護40000-50000併發鏈接。
	### 若是指定了一個過大值,極端場景中,其最終所佔據的空間可能會超過當前主機的可用內存,
	### 這可能會帶來意想不到的結果,所以,將其設定一個可接受值放爲明智絕對,其默認爲2000
	timeout connect	5000ms	## 鏈接超時(默認是毫秒,單位能夠設置us,ms,s,m,h,d)
	timeout client	50000ms	## 客戶端超時
	timeout server	50000ms	## 服務器超時

## HAProxy的狀態信息統計頁面
listen admin_stats 
	bind	:48800  ## 綁定端口
	stats	uri /admin-status	## 統計頁面URI
	stats	auth admin:admin	## 設置統計頁面認證的用戶和密碼,若是要設置多個,另起一行寫入便可
	mode	http
	option	httplog	## 啓用日誌記錄HTTP請求

## listen: 用於定義經過關聯「前端」和「後端」一個完整的代理,一般只對TCP流量有用
listen	mycat_servers
	bind	:3306  ## 綁定端口
	mode	tcp
	option	tcplog	## 記錄TCP請求日誌
	option	tcpka	## 是否容許向server和client發送keepalive
	option	httpchk OPTIONS * HTTP/1.1\r\nHost:\ www	## 後端服務狀態檢測
	### 向後端服務器的48700端口(端口值在後端服務器上經過xinetd配置)發送 OPTIONS 請求
	### (原理請參考HTTP協議) ,HAProxy會根據返回內容來判斷後端服務是否可用.
	### 2xx 和 3xx 的響應碼錶示健康狀態,其餘響應碼或無響應表示服務器故障。
	balance	roundrobin	## 定義負載均衡算法,可用於"defaults"、"listen"和"backend"中,默認爲輪詢方式
	server	mycat_01 192.168.186.136:8066 check port 48700 inter 2000ms rise 2 fall 3 weight 10
	server	mycat_02 192.168.186.129:8066 check port 48700 inter 2000ms rise 2 fall 3 weight 10
	## 格式:server <name> <address>[:[port]] [param*]
	### serser 在後端聲明一個server,只能用於listen和backend區段。
	### <name>爲此服務器指定的內部名稱,其將會出如今日誌及警告信息中
	### <address>此服務器的IPv4地址,也支持使用可解析的主機名,但要在啓動時須要解析主機名至響應的IPV4地址
	### [:[port]]指定將客戶端鏈接請求發往此服務器時的目標端口,此爲可選項
	### [param*]爲此server設定的一系列參數,均爲可選項,參數比較多,下面僅說明幾個經常使用的參數:
	#### weight:權重,默認爲1,最大值爲256,0表示不參與負載均衡
	#### backup:設定爲備用服務器,僅在負載均衡場景中的其餘server均不能夠啓用此server
	#### check:啓動對此server執行監控狀態檢查,其能夠藉助於額外的其餘參數完成更精細的設定
	#### inter:設定監控狀態檢查的時間間隔,單位爲毫秒,默認爲2000,
	##### 也可使用fastinter和downinter來根據服務器端專題優化此事件延遲
	#### rise:設置server從離線狀態轉換至正常狀態須要檢查的次數(不設置的狀況下,默認值爲2)
	#### fall:設置server從正常狀態轉換至離線狀態須要檢查的次數(不設置的狀況下,默認值爲3)
	#### cookie:爲指定server設定cookie值,此處指定的值將會在請求入站時被檢查,
	##### 第一次爲此值挑選的server將會被後續的請求所選中,其目的在於實現持久鏈接的功能
	#### maxconn:指定此服務器接受的最大併發鏈接數,若是發往此服務器的鏈接數目高於此處指定的值,
	#####其將被放置於請求隊列,以等待其餘鏈接被釋放

2、根據以上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

 

3、開啓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

Shutting down system logger: [  OK  ]

Starting system logger: [  OK  ]

(等到HAProxy服務啓動後,就能在/var/log/haproxy.log中看到日誌了)

 

4、配置系統內核的IP包轉發功能

# vi /etc/sysctl.conf

net.ipv4.ip_forward = 1

使配置生效

# sysctl -p

5、啓動HAProxy

# service haproxy start

# ps -ef | grep haproxy

haproxy 23921  1  0 23:27 ? 00:00:00 /usr/sbin/haproxy -D -f /etc/haproxy/haproxy.cfg -p /var/run/haproxy.pid

root     23924 23179  0 23:27 pts/1    00:00:00 grep haproxy

 

6、使用MySQL客戶端經過HAProxy鏈接MyCat

E:\MySQL-5.6.17-winx64\bin>mysql -uuser2 -proncoo.2 -h192.168.1.191 -P3306

mysql> show databases;

mysql> use rc_schema2;

mysql> show tables;

mysql> select * from edu_user;

寫數據測試

mysql> insert into edu_user (userName, pwd) values('吳水成', 'roncoo.com');

而後查看MySQL中的數據庫插入及數據同步狀況。

 

8、登陸HAProxy的狀態信息統計頁面

http://192.168.1.191:48800/admin-status

用戶名和密碼都是admin,對應的haproxy.cfg配置片斷

 

相關文章
相關標籤/搜索