失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > tomcat监控脚本(监控进程 测试接口 告警动作为发送邮件)

tomcat监控脚本(监控进程 测试接口 告警动作为发送邮件)

时间:2022-04-19 00:10:24

相关推荐

tomcat监控脚本(监控进程 测试接口 告警动作为发送邮件)

服务器环境:centos7.2 64位 tomcat8.5.6

tomcat 监控功能共需要两个脚本,如下:

initMonitor.sh

#!/bin/sh#初始化监控脚本相关变量export tomcat_name=apache-tomcat-8.5.6 export tomcat_home=/usr/local/apache-tomcat-8.5.6 #测试接口访问地址 export webUrl=127.0.0.1:8080/yanglao/sysUserController/sysTest #监控脚本日志路径 export tomcatMonitorLog=/tmp/yanglao/tomcatMonitor.log export email_address=ruixin_yu@ #执行tomcat监控脚本 #获取当前脚本所在目录 baseDirForScriptSelf=$(cd "$(dirname "$0")"; pwd) $baseDirForScriptSelf/tomcatMonitor.sh

tomcatMonitor.sh

#!/bin/sh# 获取tomcat进程ID /usr/local/tomcat_ds_apiTomcatID=$(ps -ef |grep tomcat |grep -w $tomcat_name|grep -v 'grep'|awk '{print $2}') # tomcat启动程序 StartTomcat=$tomcat_home/bin/startup.sh # 日志输出 if [ -f $tomcatMonitorLog ]; then echo "日志文件已创建" else echo "日志文件为创建,马上创建!" touch $tomcatMonitorLog fi #tomcatMonitorLog=/tmp/yanglao/tomcatMonitor.log TryConnection(){ echo $tomcat_name echo '$tomcat_name' TryTomcatID=$(ps -ef |grep tomcat |grep -w $tomcat_name|grep -v 'grep'|awk '{print $2}') echo "[info]开始重新查看tomcat进程:$TryTomcatID...[$(date +'%F %H:%M:%S')]" if [[ $TryTomcatID ]];then echo "[info]当前tomcat进程ID为:$TryTomcatID,继续重新检测接口..." # 检测是否启动成功(成功的话接口会返回状态"200") TomcatServiceCodeTry=$(curl -s -m 10 --connect-timeout 10 $webUrl -w %{http_code}) if [[ $TomcatServiceCodeTry -eq 200 ]];then echo "[info]系统接口返回码为$TomcatServiceCodeTry,tomcat重启成功,访问系统接口正常......" echo "[error]发送告警关闭邮件" echo "tomcat重启成功,访问系统接口正常 [$(date +'%F %H:%M:%S')]"|mail -s "智能养老项目告警关闭" $email_address else sleep 30 TryConnection fi else sleep 30 TryConnection fi } Monitor() { echo "[info]开始监控tomcat...[$(date +'%F %H:%M:%S')]" if [[ $TomcatID ]];then # 这里判断TOMCAT进程是否存在 echo "[info]当前tomcat进程ID为:$TomcatID,继续检测系统接口..." # 检测是否启动成功(成功的话接口会返回状态"200") TomcatServiceCode=$(curl -s -m 10 --connect-timeout 10 $webUrl -w %{http_code}) if [[ $TomcatServiceCode -eq 200 ]];then echo "[info]接口返回码为$TomcatServiceCode,tomcat运行正常,访问系统接口正常......" else echo "[error]访问系统接口出错,请注意......状态码为$TomcatServiceCode" echo "[error]访问系统接口出错,开始重启tomcat" echo "[error]发送告警开启邮件" echo "由于访问系统接口出错,tomcat开始自动重启 [$(date +'%F %H:%M:%S')]"|mail -s "智能养老项目告警开启" $email_address kill -9 $TomcatID # 杀掉原tomcat进程 sleep 3 rm -rf $TomcatCache # 清理tomcat缓存 $StartTomcat sleep 3m TryConnection #检查是否启动成功 fi else echo "[error]tomcat进程不存在!tomcat开始自动重启..." echo "[info]$StartTomcat,请稍候......" echo "[error]发送告警开启邮件" echo "由于tomcat进程不存在 tomcat开始自动重启 [$(date +'%F %H:%M:%S')]"|mail -s "智能养老项目告警开启" $email_address rm -rf $TomcatCache $StartTomcat sleep 3m TryConnection #检查是否启动成功 fi echo "------------------------------" } Monitor>>$tomcatMonitorLog

前期准备:

安装crontab配置邮件发送环境

脚本介绍:

initMonitor.sh中可配置脚本中使用的变量,除参数配置外,此脚本中将调用tomcatMonitor.sh,此脚本再次调用的原因是export所设置的变量,仅在该shell以及它的子shell中有效。tomcatMonitor.sh为tomcat监控的业务逻辑脚本

使用说明:

1.将initMonitor.sh,tomcatMonitor.sh两个脚本放入服务器同级目录下(如:/usr/bin/yanglao)

2.如需配置脚本对应变量,请编辑initMonitor.sh,不需要更改的可跳过此步

3.使用crontab设置定时执行initMonitor.sh:

1)# crontab -e

2 )插入/5* * * /usr/bin/yanglao/initMonitor.sh

3)#systemctl reload crond

#systemctl restart crond

经过以上操作,脚本即可运行,开始检测tomcat。

检测范围:tomcat进程关闭 , 系统接口无法访问

告警动作:发送邮件至initMonitor.sh设置的邮件,并重启tomcat。

重启后对tomcat重新进行检测,检测运行正常后,发送告警关闭邮件

/article/detail/153863.html

c:\>curl -sL -w"%{http_code}"""-o/dev/null200我是状态码,还好不是返回250c:\>curl -sL -w"我是状态码:%{http_code}"-o/dev/null我是状态码:200##从apache中剔除此节点

sed -i 's/worker.controller.balance_workers=tomcat1,tomcat2,tomcat3/worker.controller.balance_workers=tomcat2,tomcat3/g' /usr/local/apache2/conf/workers.properties

/usr/local/apache2/bin/apachectl graceful

如果觉得《tomcat监控脚本(监控进程 测试接口 告警动作为发送邮件)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。