设为首页 收藏本站
查看: 5033|回复: 0

[经验分享] LVS+tomcat负载均衡部署

[复制链接]

尚未签到

发表于 2018-11-29 11:44:49 | 显示全部楼层 |阅读模式
今天去公安部部署考试系统,一共有俩台机器,想跑8个tomcat出来,作负载。
原定于用tomcat自己实现负载,不过怕出万一就准备了lvs这种方式,不过没有用到,不过把准备的资料贴一下。



tomcat状态监控脚本
这个脚本实现的是tomcat端口状态的监控,web页面是否能访问的到,进程存活状态的监控,如果任何一个死掉,就重启tomcat并发送邮件报警。
在2太机器上都在后台执行


[root@bogon 22]# cat monitor.sh
#!/bin/bash
while [ 1 ]
do
#set server ipadd
SERVERA=192.168.0.38
STATUS=SERVERA
#set tomcat path
SVRA_TOMCAT_DIR=/opt/service
SVRB_TOMCAT_DIR=/opt/service
#set server port
TOMCAT1=8081
TOMCAT2=8082
TOMCAT3=8083
TOMCAT4=8084
#set mail
MAILFROM=22@gongan.com
MAILTO=13525315648@139.com
##########################################################################
NULL=/dev/null
LOG=/var/log/monitor-tomcat.log
SLEEP="sleep 10"
TIME=`date +"%Y-%m-%d  %H:%M:%S"`
>.T1
>.T2
>.T3
>.T4
STARTUP=bin/startup.sh
SHUTDOWN=bin/shutdown.sh
AR1=`grep Restart $LOG |wc -l`
FILE="monitor tomcat status tomcat is alive"
if [ $STATUS = SERVERA ] ; then
T1WEB_ST=`links  http://$SERVERA:$TOMCAT1/monitor.jsp > .T1`
T1=`grep "$FILE" .T1 > $NULL ; echo $?`
T1STATUS=`nc -vv -z $SERVERA $TOMCAT1 > $NULL 2>&1 ; echo $?`
if [ $T1 -eq 0 ] ; then
echo $TIME  tomcat1 -------- is --------  alive >> $NULL
if [ $T1STATUS -eq 0 ]; then
TIME=`date +"%Y-%m-%d  %H:%M:%S"`
echo $TIME  tomcat1 -------- is --------  alive >> $LOG
else
TIME=`date +"%Y-%m-%d  %H:%M:%S"`
echo $TIME "tomcat1 -------- is -------- shutdown" >> $LOG
echo $TIME "tomcat1 ------------------->>> Restart" >> $LOG
PID=`ps aux |grep tomcat1 > $NULL ;echo $?`
if [ $PID -eq 0 ] ; then
$SVRA_TOMCAT_DIR/tomcat1/$SHUTDOWN 2 > $NULL
$SVRA_TOMCAT_DIR/tomcat1/$STARTUP 2 > $NULL
$SLEEP
else
$SVRA_TOMCAT_DIR/tomcat1/$STARTUP 2 > $NULL
$SLEEP
fi
fi
else
TIME=`date +"%Y-%m-%d  %H:%M:%S"`
echo $TIME "tomcat1 -------- is -------- shutdown" >> $LOG
echo $TIME "tomcat1 ------------------->>> Restart" >> $LOG
PID=`ps aux |grep tomcat1 > $NULL ;echo $?`
if [ $PID -eq 0 ] ; then
$SVRA_TOMCAT_DIR/tomcat1/$SHUTDOWN 2 > $NULL
$SVRA_TOMCAT_DIR/tomcat1/$STARTUP 2 > $NULL
$SLEEP
else
$SVRA_TOMCAT_DIR/tomcat1/$STARTUP 2 > $NULL
$SLEEP
fi
fi
T2WEB_ST=`links  http://$SERVERA:$TOMCAT2/monitor.jsp > .T2`
T2=`grep "$FILE" .T2 > $NULL ; echo $?`
T2STATUS=`nc -vv -z $SERVERA $TOMCAT2 > $NULL 2>&1 ; echo $?`
if [ $T2 -eq 0 ] ; then
echo $TIME  tomcat2  is   alive >> $NULL
if [ $T2STATUS -eq 0 ]; then
TIME=`date +"%Y-%m-%d  %H:%M:%S"`
echo $TIME  tomcat2 -------- is --------  alive >> $LOG
else
TIME=`date +"%Y-%m-%d  %H:%M:%S"`
echo $TIME "tomcat2 -------- is -------- shutdown" >> $LOG
echo $TIME "tomcat2 ------------------->>> Restart" >> $LOG
PID=`ps aux |grep tomcat2 > $NULL ;echo $?`
if [ $PID -eq 0 ] ; then
$SVRA_TOMCAT_DIR/tomcat2/$SHUTDOWN 2 > $NULL
$SVRA_TOMCAT_DIR/tomcat2/$STARTUP 2 > $NULL
$SLEEP
else
$SVRA_TOMCAT_DIR/tomcat2/$STARTUP 2 > $NULL
$SLEEP
fi
fi
else
TIME=`date +"%Y-%m-%d  %H:%M:%S"`
echo $TIME "tomcat2 -------- is -------- shutdown" >> $LOG
echo $TIME "tomcat2 ------------------->>> Restart" >> $LOG
PID=`ps aux |grep tomcat2 > $NULL ;echo $?`
if [ $PID -eq 0 ] ; then
$SVRA_TOMCAT_DIR/tomcat2/$SHUTDOWN 2 > $NULL
$SVRA_TOMCAT_DIR/tomcat2/$STARTUP 2 > $NULL
$SLEEP
else
$SVRA_TOMCAT_DIR/tomcat2/$STARTUP 2 > $NULL
$SLEEP
fi
fi

T3WEB_ST=`links  http://$SERVERA:$TOMCAT3/monitor.jsp > .T3`
T3=`grep "$FILE" .T3 > $NULL ; echo $?`
T3STATUS=`nc -vv -z $SERVERA $TOMCAT3 > $NULL 2>&1 ; echo $?`
if [ $T3 -eq 0 ] ; then
echo $TIME  tomcat3  is   alive >> $NULL
if [ $T3STATUS -eq 0 ]; then
TIME=`date +"%Y-%m-%d  %H:%M:%S"`
echo $TIME  tomcat3 -------- is --------  alive >> $LOG
else
TIME=`date +"%Y-%m-%d  %H:%M:%S"`
echo $TIME "tomcat3 -------- is -------- shutdown" >> $LOG
echo $TIME "tomcat3 ------------------->>> Restart" >> $LOG
PID=`ps aux |grep tomcat3 > $NULL ;echo $?`
if [ $PID -eq 0 ] ; then
$SVRA_TOMCAT_DIR/tomcat3/$SHUTDOWN 2 > $NULL
$SVRA_TOMCAT_DIR/tomcat3/$STARTUP 2 > $NULL
$SLEEP
else
$SVRA_TOMCAT_DIR/tomcat3/$STARTUP 2 > $NULL
$SLEEP
fi
fi
else
TIME=`date +"%Y-%m-%d  %H:%M:%S"`
echo $TIME "tomcat3 -------- is -------- shutdown" >> $LOG
echo $TIME "tomcat3 ------------------->>> Restart" >> $LOG
PID=`ps aux |grep tomcat3 > $NULL ;echo $?`
if [ $PID -eq 0 ] ; then
$SVRA_TOMCAT_DIR/tomcat3/$SHUTDOWN 2 > $NULL
$SVRA_TOMCAT_DIR/tomcat3/$STARTUP 2 > $NULL
$SLEEP
else
$SVRA_TOMCAT_DIR/tomcat3/$STARTUP 2 > $NULL
$SLEEP
fi
fi

T4WEB_ST=`links  http://$SERVERA:$TOMCAT1/monitor.jsp > .T4`
T4=`grep "$FILE" .T4  > $NULL ; echo $?`
T4STATUS=`nc -vv -z $SERVERA $TOMCAT4 > $NULL 2>&1 ; echo $?`

if [ $T4 -eq 0 ] ; then
echo $TIME  tomcat4  is   alive >> $NULL
if [ $T4STATUS -eq 0 ]; then
TIME=`date +"%Y-%m-%d  %H:%M:%S"`
echo $TIME  tomcat4 -------- is --------  alive >> $LOG
else
TIME=`date +"%Y-%m-%d  %H:%M:%S"`
echo $TIME "tomcat4 -------- is -------- shutdown" >> $LOG
echo $TIME "tomcat4 ------------------->>> Restart" >> $LOG
PID=`ps aux |grep tomcat4 > $NULL ;echo $?`
if [ $PID -eq 0 ] ; then
$SVRA_TOMCAT_DIR/tomcat4/$SHUTDOWN 2 > $NULL
$SVRA_TOMCAT_DIR/tomcat4/$STARTUP 2 > $NULL
$SLEEP
else
$SVRA_TOMCAT_DIR/tomcat4/$STARTUP 2 > $NULL
$SLEEP
fi
fi
else
TIME=`date +"%Y-%m-%d  %H:%M:%S"`
echo $TIME "tomcat4 -------- is -------- shutdown" >> $LOG
echo $TIME "tomcat4 ------------------->>> Restart" >> $LOG
PID=`ps aux |grep tomcat4 > $NULL ;echo $?`
if [ $PID -eq 0 ] ; then
$SVRA_TOMCAT_DIR/tomcat4/$SHUTDOWN 2 > $NULL
$SVRA_TOMCAT_DIR/tomcat4/$STARTUP 2 > $NULL
$SLEEP
else
$SVRA_TOMCAT_DIR/tomcat4/$STARTUP 2 > $NULL
$SLEEP
fi
fi
fi
sleep 20
TOMCAT='(tomcat1|tomcat2|tomcat3|tomcat4)'
PIDSTATE=` ps aux |grep -v grep | egrep $TOMCAT  > /dev/null ;echo $?`
PORTSTATE1=`nc -vv -z $SERVERA $TOMCAT1 > $NULL 2>&1 ; echo $?`
PORTSTATE2=`nc -vv -z $SERVERA $TOMCAT2 > $NULL 2>&1 ; echo $?`
PORTSTATE3=`nc -vv -z $SERVERA $TOMCAT3 > $NULL 2>&1 ; echo $?`
PORTSTATE4=`nc -vv -z $SERVERA $TOMCAT4 > $NULL 2>&1 ; echo $?`
if [ $PIDSTATE -eq 0 ] && [ $PORTSTATE1 -eq 0 ] && [ $PORTSTATE2 -eq 0 ] &&  [ $PORTSTATE3 -eq 0 ] &&  [ $PORTSTATE4 -eq 0 ]  ; then
$SLEEP
else
$SLEEPMIN
fi
PIDSTATE=` ps aux |grep -v grep | egrep $TOMCAT  > /dev/null ;echo $?`
PORTSTATE1=`nc -vv -z $SERVERA $TOMCAT1 > $NULL 2>&1 ; echo $?`
PORTSTATE2=`nc -vv -z $SERVERA $TOMCAT2 > $NULL 2>&1 ; echo $?`
PORTSTATE3=`nc -vv -z $SERVERA $TOMCAT3 > $NULL 2>&1 ; echo $?`
PORTSTATE4=`nc -vv -z $SERVERA $TOMCAT4 > $NULL 2>&1 ; echo $?`
if [ $PIDSTATE -eq 0 ] && [ $PORTSTATE1 -eq 0 ] && [ $PORTSTATE2 -eq 0 ] &&  [ $PORTSTATE3 -eq 0 ] &&  [ $PORTSTATE4 -eq 0 ]  ; then
$SLEEP
else
$SLEEPMIN
fi
PIDSTATE=` ps aux |grep -v grep | egrep $TOMCAT  > /dev/null ;echo $?`
PORTSTATE1=`nc -vv -z $SERVERA $TOMCAT1 > $NULL 2>&1 ; echo $?`
PORTSTATE2=`nc -vv -z $SERVERA $TOMCAT2 > $NULL 2>&1 ; echo $?`
PORTSTATE3=`nc -vv -z $SERVERA $TOMCAT3 > $NULL 2>&1 ; echo $?`
PORTSTATE4=`nc -vv -z $SERVERA $TOMCAT4 > $NULL 2>&1 ; echo $?`
if [ $PIDSTATE -eq 0 ] && [ $PORTSTATE1 -eq 0 ] && [ $PORTSTATE2 -eq 0 ] &&  [ $PORTSTATE3 -eq 0 ] &&  [ $PORTSTATE4 -eq 0 ]  ; then
$SLEEP
else
$SLEEPMIN
fi
PIDSTATE=` ps aux |grep -v grep | egrep $TOMCAT > /dev/null ;echo $?`
PORTSTATE1=`nc -vv -z $SERVERA $TOMCAT1 > $NULL 2>&1 ; echo $?`
PORTSTATE2=`nc -vv -z $SERVERA $TOMCAT2 > $NULL 2>&1 ; echo $?`
PORTSTATE3=`nc -vv -z $SERVERA $TOMCAT3 > $NULL 2>&1 ; echo $?`
PORTSTATE4=`nc -vv -z $SERVERA $TOMCAT4 > $NULL 2>&1 ; echo $?`
if [ $PIDSTATE -eq 0 ] && [ $PORTSTATE1 -eq 0 ] && [ $PORTSTATE2 -eq 0 ] &&  [ $PORTSTATE3 -eq 0 ] &&  [ $PORTSTATE4 -eq 0 ]  ; then
$SLEEP
else
TIME=`date +"%Y-%m-%d  %H:%M:%S"`
echo $TIME "tomcat  -------- is -------- shutdown" >> $LOG
$SLEEPMIN
fi

AR2=`grep Restart $LOG  |wc -l`
LINEB=`echo "$AR2-$AR1"|bc `
MAILSUBJECT=` grep Restart $LOG | tail -n $LINEB `

if [ $LINEB -gt 0 ] ; then
TIME=`date +"%Y-%m-%d  %H:%M:%S"`
echo $TIME send mail  to $MAILTO >> $LOG
sendmail -t

运维网声明 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-641134-1-1.html 上篇帖子: tomcat jsvc 调优及JMX监控 下篇帖子: tomcat和memcached
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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