本章節(jié)主要介紹配置HaProxy+Keepalived高可用群集,Mycat的配置就不在這里做介紹,可以參考我前面寫(xiě)的幾篇關(guān)于Mycat的文章。
創(chuàng)新互聯(lián)公司于2013年開(kāi)始,先為同德等服務(wù)建站,同德等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為同德企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。部署圖:
HaProxy安裝
181和179兩臺(tái)服務(wù)器安裝haproxy的步驟一致
--創(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配置
cd /usr/local/haproxy touch haproxy.cfg vim 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_stats 192.168.57.180:48800 ##統(tǒng)計(jì)頁(yè)面
stats uri /admin-status
stats auth admin:admin
mode http
option httplog
listen mycat_service 192.168.57.180:18066 ##客戶端就是通過(guò)這個(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 ##客戶端就是通過(guò)這個(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記錄日志功能
yum –y install rsyslog mkdir /etc/rsyslog.d cd /etc/rsyslog.d/ touch haproxy.conf vim haproxy.conf
$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
在local7.* /var/log/boot.log下面加入以下內(nèi)容
local0.* /var/log/haproxy.log
重啟rsyslog服務(wù)
service rsyslog restart
將rsyslog加入自動(dòng)啟動(dòng)服務(wù)
chkconfig --add rsyslogchkconfig --level 2345 rsyslog on
配置監(jiān)聽(tīng)mycat是否存活
安裝xinetd插件
yum install xinetd -y
cd etc
service mycat_status { flags = REUSE socket_type = stream port = 48700wait = nouser = nobody server =/usr/local/bin/mycat_status log_on_failure += USERID disable = no }
創(chuàng)建xinetd啟動(dòng)服務(wù)腳本
vim /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
修改腳本文件權(quán)限
我就是在這里被坑了很久,根據(jù)權(quán)威指南上面mycat_status這個(gè)腳本里面的內(nèi)容也有很多問(wèn)題,好幾個(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
頁(yè)面測(cè)試
http://192.168.57.180:48800/admin-status
由于179還沒(méi)有安裝好,所以這里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的安裝步驟過(guò)程在兩臺(tái)服務(wù)器上除了keepalived.conf配置文件稍微有點(diǎn)區(qū)別外其他的地方都一致。
openssl安裝
./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
在文件末尾加入以下內(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安裝
./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
創(chuàng)建配置文件和腳本
mkdir etckeepalivedscripts cd /etc/keepalived/scripts
vim /etc/keepalived/keepalived.conf
master
! 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ù)說(shuō)AH使用時(shí)有問(wèn)題 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 }
backup
! 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ù)說(shuō)AH使用時(shí)有問(wèn)題 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 }
vim /etc/keepalived/scripts/check_haproxy.sh
#!/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
vim /etc/keepalived/scripts/haproxy_master.sh
#!bin`usrlocalhaproxysbinhaproxy f usrlocalhaproxy"usrlocalkeepalivedkeepalivedhaproxystate." $LOGFILE $LOGFILE $LOGFILE $LOGFILE $LOGFILE $LOGFILE
vim /etc/keepalived/scripts/haproxy_backup.sh
#!/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
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
權(quán)威指南上面代碼部分好多處都存在問(wèn)題,幾乎每一塊代碼都存在問(wèn)題,有時(shí)候往往一個(gè)空格需要花很長(zhǎng)的時(shí)間去找這個(gè)問(wèn)題,所以在代碼方面要細(xì)心;特別是復(fù)制別人的代碼不要原本照抄最好是檢查一下,除了代碼本身的問(wèn)題權(quán)限有時(shí)候也是容易忽略的錯(cuò)誤,特別是可執(zhí)行文件要注意是否有可執(zhí)行權(quán)限。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
文章標(biāo)題:HaProxy+Keepalived+Mycat高可用群集配置-創(chuàng)新互聯(lián)
本文URL:http://bm7419.com/article30/cdioso.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、響應(yīng)式網(wǎng)站、服務(wù)器托管、標(biāo)簽優(yōu)化、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容