日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
HaProxy+Keepalived+Mycat高可用群集配置

概述  

本章節(jié)主要介紹配置HaProxy+Keepalived高可用群集,Mycat的配置就不在這里做介紹,可以參考我前面寫的幾篇關(guān)于Mycat的文章。

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比平谷網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式平谷網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋平谷地區(qū)。費(fèi)用合理售后完善,十多年實(shí)體公司更值得信賴。

 部署圖:

HaProxy+Keepalived+Mycat高可用群集配置

 

配置  

 HaProxy安裝

181和179兩臺(tái)服務(wù)器安裝haproxy的步驟一致

HaProxy+Keepalived+Mycat高可用群集配置

--創(chuàng)建haproxy用戶
useradd haproxy--解壓完后進(jìn)入haproxy目錄
cd haproxy-1.4.25/

--編譯安裝
make TARGET=linux26 PREFIX=/usr/local/haproxy ARCH=x86_64

make install PREFIX=/usr/local/haproxy

HaProxy+Keepalived+Mycat高可用群集配置

HaProxy配置

 

cd /usr/local/haproxy

touch haproxy.cfg

vim haproxy.cfg

HaProxy+Keepalived+Mycat高可用群集配置


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_stats 192.168.57.180:48800 ##統(tǒng)計(jì)頁面
stats uri /admin-status 
stats auth admin:admin
mode http
option httplog
listen mycat_service 192.168.57.180:18066 ##客戶端就是通過這個(gè)ip和端口進(jìn)行連接,這個(gè)vip和端口綁定的是mycat8066端口
mode tcp
option tcplog
option httpchk OPTIONS * HTTP/1.1\r\nHost:\ www
balance roundrobin
server mycat_181 192.168.57.181:8066 check port 48700 inter 5s rise 2 fall 3
server mycat_179 192.168.57.179:8066 check port 48700 inter 5s rise 2 fall 3
srvtimeout 20000

listen mycat_admin 192.168.57.180:19066 ##客戶端就是通過這個(gè)ip和端口進(jìn)行連接,這個(gè)vip和端口綁定的是mycat9066端口
mode tcp
option tcplog
option httpchk OPTIONS * HTTP/1.1\r\nHost:\ www
balance roundrobin
server mycat_181 192.168.57.181:9066 check port 48700 inter 5s rise 2 fall 3
server mycat_179 192.168.57.179:9066 check port 48700 inter 5s rise 2 fall 3
srvtimeout 20000

HaProxy+Keepalived+Mycat高可用群集配置

配置haproxy記錄日志功能

HaProxy+Keepalived+Mycat高可用群集配置

yum –y install rsyslog

mkdir /etc/rsyslog.d

cd /etc/rsyslog.d/

touch haproxy.conf

vim haproxy.conf

HaProxy+Keepalived+Mycat高可用群集配置

$ModLoad imudp
$UDPServerRun 514local0.* /var/log/haproxy.log

vim /etc/rsyslog.conf

在#### RULES ####上面一行加入以下內(nèi)容

# Include all config files in /etc/rsyslog.d/$IncludeConfig /etc/rsyslog.d/*.conf

HaProxy+Keepalived+Mycat高可用群集配置

在local7.* /var/log/boot.log下面加入以下內(nèi)容

local0.* /var/log/haproxy.log

HaProxy+Keepalived+Mycat高可用群集配置

 重啟rsyslog服務(wù)

service rsyslog restart

將rsyslog加入自動(dòng)啟動(dòng)服務(wù)

chkconfig --add rsyslogchkconfig --level 2345 rsyslog on

 

配置監(jiān)聽mycat是否存活

安裝xinetd插件

yum install xinetd -y
cd etc

HaProxy+Keepalived+Mycat高可用群集配置

service mycat_status
{
flags = REUSE
socket_type = stream
port = 48700wait = nouser = nobody
server =/usr/local/bin/mycat_status
log_on_failure += USERID
disable = no
}

HaProxy+Keepalived+Mycat高可用群集配置

創(chuàng)建xinetd啟動(dòng)服務(wù)腳本

vim /usr/local/bin/mycat_status

HaProxy+Keepalived+Mycat高可用群集配置

#!/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

HaProxy+Keepalived+Mycat高可用群集配置

修改腳本文件權(quán)限

我就是在這里被坑了很久,根據(jù)權(quán)威指南上面mycat_status這個(gè)腳本里面的內(nèi)容也有很多問題,好幾個(gè)地方?jīng)]有空格.

chmod 777 /usr/local/bin/mycat_status
chmod 777 /etc/xinetd.d/mycat_status

 

將啟動(dòng)腳本加入服務(wù)

vim /etc/services

在末尾加入

mycat_status 48700/tcp # mycat_status

重啟xinetd服務(wù)

service xinetd restart

將xinetd加入自啟動(dòng)服務(wù)

chkconfig --add xinetdchkconfig --level 2345 xinetd on

 

頁面測(cè)試

http://192.168.57.180:48800/admin-status

HaProxy+Keepalived+Mycat高可用群集配置

由于179還沒有安裝好,所以這里179顯示連接失敗

創(chuàng)建haproxy啟停腳本

啟動(dòng)腳本

touch /usr/local/haproxy/sbin/start
chmod +x /usr/local/haproxy/sbin/start
vim  /usr/local/haproxy/sbin/start
#!/bin/sh/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg &

關(guān)閉腳本

touch /usr/local/haproxy/sbin/stop
chmod +x /usr/local/haproxy/sbin/stop
vim /usr/local/haproxy/sbin/stop
#!/bin/sh
ps -ef | grep sbin/haproxy | grep -v grep |awk '{print $2}'|xargs kill -s 9

授權(quán)

chown -R haproxy.haproxy /usr/local/haproxy/*

Keepalived安裝步驟

keepalived的安裝步驟過程在兩臺(tái)服務(wù)器上除了keepalived.conf配置文件稍微有點(diǎn)區(qū)別外其他的地方都一致。

openssl安裝

HaProxy+Keepalived+Mycat高可用群集配置

./config --prefix=/usr/local/openssl./config -t
make depend
make
make test
make install
ln -s /usr/local/openssl /usr/local/ssl

vim /etc/ld.so.conf

HaProxy+Keepalived+Mycat高可用群集配置

在文件末尾加入以下內(nèi)容

/usr/local/openssl/lib

修改環(huán)境變量

vim /etc/profile

在文件末尾加入以下內(nèi)容

export OPENSSL=/usr/local/openssl/bin
export PATH=$PATH:$OPENSSL

使環(huán)境變量立刻生效

source /etc/profile

安裝openssl-devel

yum install openssl-devel -y

 

測(cè)試

ldd /usr/local/openssl/bin/openssl
vdso.so.  ( lib64libdl.so. ( lib64libc.so. (lib64ldlinuxx86.so. (
which openssl
/usr/bin/openssl
openssl version
OpenSSL 1.0.0-fips 29 Mar 2010

keepalived安裝

HaProxy+Keepalived+Mycat高可用群集配置

./configure --prefix=/usr/local/keepalivedmake
make install
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/mkdir /etc/keepalived
cd /etc/keepalived/cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived
mkdir -p  /usr/local/keepalived/var/log

HaProxy+Keepalived+Mycat高可用群集配置

 

創(chuàng)建配置文件和腳本

mkdir etckeepalivedscripts

cd /etc/keepalived/scripts

vim /etc/keepalived/keepalived.conf

master

HaProxy+Keepalived+Mycat高可用群集配置

! Configuration Fileforkeepalived
vrrp_script chk_http_port {
script"/etc/keepalived/scripts/check_haproxy.sh"
interval 2weight 2}
vrrp_instance VI_1 {
state MASTER #192.168.57.179上改為BACKUP
interface eth0 #對(duì)外提供服務(wù)的網(wǎng)絡(luò)接口
virtual_router_id 51 #VRRP組名,兩個(gè)節(jié)點(diǎn)的設(shè)置必須一樣,以指明各個(gè)節(jié)點(diǎn)屬于同一VRRP組
priority 150 #數(shù)值愈大,優(yōu)先級(jí)越高,backup上改為120
advert_int 1 #同步通知間隔
authentication { #包含驗(yàn)證類型和驗(yàn)證密碼。類型主要有PASS、AH兩種,通常使用的類型為PASS,據(jù)說AH使用時(shí)有問題
auth_type PASS
auth_pass 1111}
track_script {
chk_http_port #調(diào)用腳本check_haproxy.sh檢查haproxy是否存活
}
virtual_ipaddress { #vip地址,haproxy配置的使用的就是這里配置的VIP192.168.57.180 dev eth0 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
}

HaProxy+Keepalived+Mycat高可用群集配置

backup

HaProxy+Keepalived+Mycat高可用群集配置

! Configuration Fileforkeepalived
vrrp_script chk_http_port {
script"/etc/keepalived/scripts/check_haproxy.sh"
interval 2weight 2}
vrrp_instance VI_1 {
state BACKUP #192.168.57.179上改為BACKUP
interface eth0 #對(duì)外提供服務(wù)的網(wǎng)絡(luò)接口
virtual_router_id 51 #VRRP組名,兩個(gè)節(jié)點(diǎn)的設(shè)置必須一樣,以指明各個(gè)節(jié)點(diǎn)屬于同一VRRP組
priority 120 #數(shù)值愈大,優(yōu)先級(jí)越高,backup上改為120
advert_int 1 #同步通知間隔
authentication { #包含驗(yàn)證類型和驗(yàn)證密碼。類型主要有PASS、AH兩種,通常使用的類型為PASS,據(jù)說AH使用時(shí)有問題
auth_type PASS
auth_pass 1111}
track_script {
chk_http_port #調(diào)用腳本check_haproxy.sh檢查haproxy是否存活
}
virtual_ipaddress { #vip地址192.168.57.180 dev eth0 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
}

HaProxy+Keepalived+Mycat高可用群集配置

vim /etc/keepalived/scripts/check_haproxy.sh

HaProxy+Keepalived+Mycat高可用群集配置

#!/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_haproxy status]" >> $LOGFILE
A=`ps -C haproxy --no-header |wc -l`echo "[check_haproxy status]" >> $LOGFILE
date >> $LOGFILEif [ $A -eq 0 ];thenecho $STARTHAPROXY >> $LOGFILE
$STARTHAPROXY >> $LOGFILE 2>&1sleep 5
fiif [ `ps -C haproxy --no-header |wc -l` -eq 0 ];thenexit 0elseexit 1fi

HaProxy+Keepalived+Mycat高可用群集配置

vim /etc/keepalived/scripts/haproxy_master.sh

HaProxy+Keepalived+Mycat高可用群集配置

#!bin`usrlocalhaproxysbinhaproxy f usrlocalhaproxy"usrlocalkeepalivedkeepalivedhaproxystate."  $LOGFILE  $LOGFILE  $LOGFILE  $LOGFILE  $LOGFILE  $LOGFILE

HaProxy+Keepalived+Mycat高可用群集配置

vim /etc/keepalived/scripts/haproxy_backup.sh

HaProxy+Keepalived+Mycat高可用群集配置

#!/bin/bash
STARTHAPROXY=`/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg`
STOPHAPROXY=`ps -ef | grep sbin/haproxy | grep -v grep | awk '{print $2}'| xargs kill -s 9`
LOGFILE="/usr/local/keepalived/var/log/keepalived-haproxy-state.log"
echo "[backup]" >> $LOGFILE
date >> $LOGFILE
echo "Being backup...." >> $LOGFILE 2>&1echo "stop haproxy...." >> $LOGFILE 2>&1$STOPHAPROXY >> $LOGFILE 2>&1echo "start haproxy...." >> $LOGFILE 2>&1$STARTHAPROXY >> $LOGFILE 2>&1echo "haproxy stared ..." >> $LOGFILE

HaProxy+Keepalived+Mycat高可用群集配置

vim /etc/keepalived/scripts/haproxy_fault.sh

#!/bin/bash
LOGFILE=/usr/local/keepalived/var/log/keepalived-haproxy-state.logecho "[fault]" >> $LOGFILE
date >> $LOGFILE

vim /etc/keepalived/scripts/haproxy_stop.sh

#!/bin/bash
LOGFILE=/usr/local/keepalived/var/log/keepalived-haproxy-state.logecho "[stop]" >> $LOGFILE
date >> $LOGFILE

 賦予腳本可執(zhí)行權(quán)限

chmod 777 /etc/keepalived/scripts/*

將keepalived加入自啟動(dòng)服務(wù)

chkconfig --add keepalivedchkconfig --level 2345 keepalived on--啟動(dòng)服務(wù)service keepalived start

 

 HaProxy+Keepalived+Mycat高可用群集配置

總結(jié)  

權(quán)威指南上面代碼部分好多處都存在問題,幾乎每一塊代碼都存在問題,有時(shí)候往往一個(gè)空格需要花很長(zhǎng)的時(shí)間去找這個(gè)問題,所以在代碼方面要細(xì)心;特別是復(fù)制別人的代碼不要原本照抄最好是檢查一下,除了代碼本身的問題權(quán)限有時(shí)候也是容易忽略的錯(cuò)誤,特別是可執(zhí)行文件要注意是否有可執(zhí)行權(quán)限。

 


本文名稱:HaProxy+Keepalived+Mycat高可用群集配置
分享路徑:http://www.dlmjj.cn/article/ghppgo.html