zoukankan      html  css  js  c++  java
  • Centos 部署Keepalive高可用软件

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

    三.结尾

     

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

  • 相关阅读:
    SpingMVC ModelAndView, Model,Control以及参数传递
    ModelAndView详解
    HibernateTemplate的一些常用方法总结
    选中的文本向左向右移动快捷键
    学习springMVC框架配置遇到的问题-数据写入不进数据库时的处理办法
    springMVC框架中,在hib-config.xml配置sqlserver2008数据库连接的代码
    amaze UI 笔记
    amaze UI 笔记
    jQuery 属性(十二)
    jQuery 核心函数 (十一)
  • 原文地址:https://www.cnblogs.com/caoguo/p/4796399.html
Copyright © 2011-2022 走看看