天天看点

linux下tomcat监控脚本

#定义要监控的页面地址

WebUrl=localhost:8080

# 日志输出

GetPageInfo=/tmp/TomcatMonitor.Info

TomcatMonitorLog=/tmp/TomcatMonitor.log

#获取tomcat进程

TomcatID=$(ps -ef |grep tomcat |grep -v grep | awk '{print $2}')

TomcatServiceCode=`curl -o /dev/null -s -w "%{http_code}" "${WebUrl}"`

#发送邮件地址

email_address=********@qq.com

#当前服务器ip

IP=$(ifconfig -a|awk '/(cast)/ {print $2}'|cut -d':' -f2|head -1)

# tomcat启动程序(tomcat实际安装的路径)

StartTomcat=/homej-tomcat/bin/startup.sh

#tomcat的缓存

TomcatCache=/homej-tomcat/work

echo tomcat_ID:"$TomcatID"

echo TomcatStatus:"$TomcatServiceCode"

Monitor()

{

 echo "[info]开始监控tomcat...[$(date +'%F %H:%M:%S')]"

   # 这里判断TOMCAT进程是否存在

  if [ $TomcatID ] ; then  

   echo "[info]当前tomcat进程ID为:$TomcatID,继续检测页面..."

   # 检测是否启动成功(成功的话页面会返回状态"200")

if [ $TomcatServiceCode -eq 200 ] ; then

        echo "[info]页面返回码为$TomcatServiceCode,tomcat启动成功,测试页面正常......"

else

        echo "[error]tomcat页面出错,状态码为$TomcatServiceCode,错误日志已输出到$GetPageInfo"

        echo "[error]页面访问出错,开始重启tomcat"

echo "[error]发送告警开启邮件"  

        #echo "$IP的访问系统接口出错,$IP的tomcat开始自动重启 [$(date +'%F %H:%M:%S')]" | mail -s "魔售项目告警开启" $email_address

        # kill -9 $TomcatID  # 杀掉原tomcat进程

        # sleep 3

        # rm -rf $TomcatCache # 清理tomcat缓存

        $StartTomcat

fi

    else

    echo "[error]tomcat进程不存在!tomcat开始自动重启..."

    echo "[info]$StartTomcat,请稍候......"

    echo "[error]发送告警开启邮件"  

    #echo "由于$IP的tomcat进程不存在 tomcat开始自动重启 [$(date +'%F %H:%M:%S')]" | mail -s "项目告警开启" $email_address

    rm -rf $TomcatCache

    $StartTomcat 

  fi

 echo "------------------------------"

}

Monitor>>$TomcatMonitorLog