设为首页 收藏本站
查看: 1322|回复: 4

[经验分享] tomcat + keepalived 实现主备高可用

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-9-13 10:21:10 | 显示全部楼层 |阅读模式
tomacat7+ keepalived 高可用集群配置

服务器环境规划
    node1: 10.10.3.16   app01
    node2: 10.10.3.17    app02
    vip:
软件环境规划
    操作系统:oracle linux6.8  4.1.12-37.4.1.el6uek.x86_64
    keepalived:keepalived-1.3.5
    Java:jdk-1.7.0_80
    Tomcat:apache-tomcat-7.0.81
   
配置要求:
    tomcat主从,只有一台机器提供服务,另一台standby

安装keepalived(两台机器都需要安装)

1、准备:
    yum install openssl-devel libnl3-devel ipset-devel iptables-devel libnfnetlink-devel
    wget http://www.keepalived.org/software/keepalived-1.3.5.tar.gz
   
2、安装
    tar zxf keepalived-1.3.5.tar.gz
    cd keepalived-1.3.5
    ./configure --prefix=/usr/local/keepalived --with-init=SYSV  --不指定的话,默认不生成RECL6的启动脚本
     make && make install
     
3、准备脚本配置文件:
    [iyunv@app01 keepalived-1.3.5]# cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
    [iyunv@app01 keepalived-1.3.5]# cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
    [iyunv@app01 keepalived-1.3.5]# cp -p /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
    [iyunv@app01 keepalived-1.3.5]# mkdir /etc/keepalived
    [iyunv@app01 keepalived-1.3.5]# cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
    [iyunv@app01 local]# chkconfig --add keepalived
    [iyunv@app01 local]# chkconfig --list keepalived
    [iyunv@app01 local]# chkconfig  keepalived on
    [iyunv@app01 local]# chmod +x /etc/init.d/keepalived
****以上部分,在两台机器上的操作完全相同

4、调整keepalived配置文件
    node1
    [iyunv@app01 local]# vim /etc/keepalived/keepalived.conf
    global_defs {
    notification_email {
        root@localhost
    }
    notification_email_from root@localhost
    smtp_server 127.0.0.1
    smtp_connect_timeout 30
    router_id LVS_DEVEL
    vrrp_skip_check_adv_addr
    vrrp_strict
    vrrp_garp_interval 0
    vrrp_gna_interval 0
    }
   
    vrrp_script chk_http_port {
        script "/opt/tomcat.pid"
        interval 1
        weight -2
    }
   
    vrrp_instance VI_1 {
        state MASTER
        interface eth0
        virtual_router_id 51
        priority 100
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        track_interface {  
            eth0   
        }
        track_script {
        chk_httpp_port
        }
        virtual_ipaddress {
            10.10.3.200
        }
    }
   
    node2
    [iyunv@app02 local]# vim /etc/keepalived/keepalived.conf
    global_defs {
    notification_email {
        root@localhost
    }
    notification_email_from root@localhost
    smtp_server 127.0.0.1
    smtp_connect_timeout 30
    router_id LVS_DEVEL
    vrrp_skip_check_adv_addr
    vrrp_strict
    vrrp_garp_interval 0
    vrrp_gna_interval 0
    }
   
    vrrp_script chk_http_port {
        script "/opt/tomcat.pid"
        interval 1
        weight 2
    }
   
    vrrp_instance VI_1 {
        state BACKUP
        interface eth0
        virtual_router_id 51
        priority 99          #此处不同,要低于master
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        track_interface {  
            eth0   
        }        
        track_script {
        chk_httpp_port
        }
        virtual_ipaddress {
            10.10.3.200
        }
    }

5、在两台机器上编辑监控脚本
    [iyunv@app01 local]# vim /opt/tomcat.pid
    #!/bin/bash
    # keepalived for tomcat
    # edited by sky: 2017-09-12
    PS_NUM=`ps -C java --no-headers |wc -l`
    if [ $PS_NUM -eq 0 ]; then
            /etc/init.d/keepalived stop
    fi


6、在两台机器上编写tomcat启动脚本(相同)
    vim /etc/init.d/tomcat
    #!/bin/bash  
    #chkconfig: 2345 10 90  
    #description: Starts and Stops the tomcatdaemon  
    #edited by sky: 2017-09-12  
   
    CATALINA_HOME=/app/tomcat
    JAVA_HOME=/usr/local/jdk1.7.0_80
    export CATALINA_HOME  JAVA_HOME  
   
    start_tomcat=$CATALINA_HOME/bin/startup.sh  
    stop_tomcat=$CATALINA_HOME/bin/shutdown.sh  
   
    if [ ! -f $CATALINA_HOME/bin/catalina.sh ]  
    then  
            echo "===Tomcat is not available.==="  
            exit  
    fi  
   
    start()  
    {  
            echo -n "===Starting tomcat===:"  
            ${start_tomcat}  
            echo "===tomcat start ok.==="  
    }  
   
    stop()  
    {  
            echo -n "===Shutting down tomcat===:"  
            ${stop_tomcat}  
            echo "===tomcat stop ok.==="  
    }  
   
    status()  
    {  
            PS_NUM=`ps -C java --no-headers | wc -l`  
            if [ $PS_NUM -gt 0 ]  
                    then  
                                echo  -e "tomcat ( pid = `ps -C java --no-headers |awk '{print $1}'`) is running...\n"
                    else  
                                echo "tomcat is stopped"  
            fi  
    }  
   
    case "$1" in  
            start)  
                    start  
                    ;;  
            stop)  
                    stop  
                    ;;  
            restart)  
                    stop  
                    sleep 1  
                    start  
                    ;;  
            status)  
                    status  
                    ;;  
            *)  
                    echo "Usage:$0 {start|stop|restart|status}"  
                    exit 1  
    esac  
   
    exit 0  
    # shell end.
   
7、在两台机器上分别启动tomcat和keepalived
    service tomcat start
    service keepalived start
    测试:
        可关闭master上的tomcat, 则可以看到vip会漂移到backup服务器, 启动master的tomcat服务器,然后再重启keepalived,则vip会自动漂移到master
        
   
8、检查日志:
    tail -f /var/log/messages
   
9、检查vip是否在主服务器上
    ifconfig

10、vip切换及恢复原则:
    1、切换:master服务器的tomcat服务停止,则master上的keepalived会自动停止, vip漂移到backup服务器
    2、恢复: master服务器修复完毕后, 请分别启动tomcat和keepalived,则vip会自动漂移到master服务器

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-404485-1-1.html 上篇帖子: tomcat日志切割catalina.out 下篇帖子: Tomcat下使用自定义错误页面
累计签到:11 天
连续签到:1 天
发表于 2017-9-15 09:24:00 | 显示全部楼层
不错,点赞一个

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

累计签到:189 天
连续签到:1 天
发表于 2017-9-16 06:11:03 | 显示全部楼层

不错,点赞一个

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表