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 keepalivedglobal_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 keepalivedglobal_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/bashstatus=$(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 fifi
#郵件報警腳本 來自網絡劉天斯大牛$ 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 = 'xxxxx@126.com' #郵件來自哪里strTo = 'receive@Gmail.com' #收件箱smtp_server='smtp.126.com' #郵件服務器地址smtp_user='send@126.com' #發件箱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 #用來查看地址是否切換的
三.結尾
以上是該軟件的全部部署過程
新聞熱點
疑難解答