码迷,mamicode.com
首页 > 其他好文 > 详细

Centos 部署Keepalive高可用软件

时间:2015-09-10 00:28:55      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:

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/

 

 

AMaster:

$ 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" 

}

 

 

 

 

BSlave:

$ 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 = 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            #用来查看地址是否切换的

 

三.结尾

 

以上是该软件的全部部署过程

Centos 部署Keepalive高可用软件

标签:

原文地址:http://www.cnblogs.com/caoguo/p/4796399.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!