叢集部署圖的了解:
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 &&<code>./configure --prefix=/usr/local/keepalived &&make&& 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&& 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 {
}
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 && make TARGET=linux26 PREFIX=/usr/local/haproxyARCH=X86_64 && 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/ && 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]" >>$LOGFILE
A=`ps-C haproxy --no-header |wc-l`
date >>$LOGFILE
if [ $A-eq 0 ];then
echo $STARTHAPROXY>> $LOGFILE
$STARTHAPROXY >> $LOGFILE 2>&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