歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

Centos 部署Keepalive高可用軟件

一.環境介紹   1)Centos6.4   2) keepalived-1.2.12   3) 主備機的ip   Master:172.31.100.5   Slave: 172.31.100.54   Virtault ip:172.31.100.1   二.部署安裝   計劃具體部署步驟:   步驟1:安裝   步驟2:配置   步驟3:運行   步驟4:檢查   現在開始:   1)安裝   $ yum install -y gcc make openssl openssl-devel $ wget http://www.keepalived.org/software/keepalived-1.2.12.tar.gz $ tar zxvf keepalived-1.2.12.tar.gz $ cd keepalived-1.2.12 $ ./configure --prefix=/usr/local/keepalived $ make && make install   2)配置   $ 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/ $ cp -rf /usr/local/keepalived/etc/keepalived /etc/   A)Master:
$ vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs { 
   router_id LVS_DEVEL 
} 

vrrp_script chk_haproxy { 
          script "/etc/keepalived/chk_haproxy.sh" 
          interval 2 
          weight 2 
} 

vrrp_instance VI_1 { 
          interface eth0
          state BACKUP
          priority 101
          virtual_router_id 50
          garp_master_delay 1

          authentication { 
                      auth_type PASS 
                      auth_pass Hc8scrRddsLsc3
          } 

          virtual_ipaddress { 
                      172.31.100.1
          } 

          track_script { 
                      chk_haproxy
          } 

        #notify_master "/etc/keepalived/Mailnotify.py backup"
        #notify_backup "/etc/keepalived/Mailnotify.py master"
        #notify_fault "/etc/keepalived/Mailnotify.py fault" 

}

 

  B)Slave:  
$ vi /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs { 
   router_id LVS_DEVEL 
} 

vrrp_script chk_haproxy { 
          script "/etc/keepalived/chk_haproxy.sh" 
          interval 2 
          weight 2 
} 

vrrp_instance VI_1 { 
          interface eth0
          state BACKUP
          priority 100
          virtual_router_id 50
          garp_master_delay 1

          authentication { 
                      auth_type PASS 
                      auth_pass Hc8scrRddsLsc3
          } 

          virtual_ipaddress { 
                      172.31.100.1
          } 

          track_script { 
                      chk_haproxy
          } 

        notify_master "/etc/keepalived/Mailnotify.py backup"
        notify_backup "/etc/keepalived/Mailnotify.py master"
        #notify_fault "/etc/keepalived/Mailnotify.py fault" 

}

 

  C)主備兩邊都需要的檢測腳本和郵件報警腳本:  
#keepalive調用該腳本檢測haproxy是否停止
$ vi /etc/keepalived/chk_haproxy.sh
#!/bin/bash
status=$(ps aux|grep haproxy | grep -v grep | grep -v bash | wc -l)
if [ "${status}" = "0" ]; then
    /etc/init.d/haproxy start
    status2=$(ps aux|grep haproxy | grep -v grep | grep -v bash |wc -l)
    if [ "${status2}" = "0"  ]; then
            /etc/init.d/keepalived stop
    fi
fi

#郵件報警腳本 來自網絡劉天斯大牛

$ vi /etc/keepalived/chk_haproxy.sh

#!/usr/bin/env python
#coding: utf-8 
from email.MIMEMultipart import MIMEMultipart 
from email.MIMEText import MIMEText 
from email.MIMEImage import MIMEImage 
from email.header import Header 
import sys 
import smtplib 

strFrom = '[email protected]'      #郵件來自哪裡
strTo = '[email protected]'    #收件箱
smtp_server='smtp.126.com'     #郵件服務器地址
smtp_user='[email protected]'       #發件箱
smtp_pass='passwdxx'           #密碼


if sys.argv[1]!="master" and sys.argv[1]!="backup"  and sys.argv[1]!="fault": 
    sys.exit() 
else: 
    notify_type=sys.argv[1] 


mail_title='[緊急]負載均衡器郵件通知' 
mail_body_plain=notify_type+'被激活,請做好應急處理。' 
mail_body_html='<b><font color=red>'+notify_type+'被激活,請做好應急處理。</font></b>' 

msgRoot = MIMEMultipart('related') 
msgRoot['Subject'] =Header(mail_title,'utf-8') 
msgRoot['From'] = strFrom 
msgRoot['To'] = strTo 

msgAlternative = MIMEMultipart('alternative') 
msgRoot.attach(msgAlternative) 

msgText = MIMEText(mail_body_plain, 'plain', 'utf-8') 
msgAlternative.attach(msgText) 
msgText = MIMEText(mail_body_html, 'html','utf-8') 
msgAlternative.attach(msgText) 

smtp = smtplib.SMTP() 
smtp.connect(smtp_server) 
smtp.login(smtp_user,smtp_pass) 
smtp.sendmail(strFrom, strTo, msgRoot.as_string()) 
smtp.quit()

 

  3)運行   $ /etc/init.d/keepalived start $ chkconfig keepalived on   4)檢查   $ ps aux|grep keeepalived #查看進程 $ ip addr show            #用來查看地址是否切換的   三.結尾   以上是該軟件的全部部署過程
Copyright © Linux教程網 All Rights Reserved