windows服务器监控多个tomcat运行状态

 第一步,修改tomcat默认的进程名

因为所有的tomcat项目的进程名默认都叫java.exe,所以需要修改tomcat容器bin目录下的setclasspath.bat。注释掉:(在set前加上:冒号就行)

set _RUNJAVA="%JRE_HOME%\bin\java.exe"

这句,改成

copy "%JAVA_HOME%\bin\java.exe" "%JAVA_HOME%\bin\xxxx.exe"
set _RUNJAVA="%JAVA_HOME%\bin\xxxx"

这样,重启tomcat项目,在 任务管理器 中就会看到更改后的进程名。

第二步,编写bat脚本

@echo off
rem setlocal是批处理本地化的一种操作,在执行setlocal之后所做的环境改动只限于批处理文件
rem ENABLEDELAYEDEXPANSION 启用变量延迟,直到出现匹配的endlocal命令
SETLOCAL ENABLEDELAYEDEXPANSION

rem rem的意思是注释
rem 链接
set URL="http://xx.xx.xx.xx:808x/xxxx/xxxx.jsp"
rem tomcat目录
set TOMCAT_HOME="C:\xxxx-tomcat-8.5.31"
rem 关闭tomcat命令的路径(xxx.exe就是第一步中设置的进程名)
set CLOSE_CMD=taskkill /f /t /im xxxx.exe
rem 启动tomcat命令的路径
set START_CMD=%TOMCAT_HOME%\bin\startup.bat
rem tomcat缓存目录
set TOMCAT_CACHE=%TOMCAT_HOME%\work
rem 日志文件的路径
set LOG_PATH=%TOMCAT_HOME%\logs\check.log
rem 每次检测完后等待时间,再进行下一次检测,若将程序部署到系统计划任务,可忽略
rem set TIME_WAIT=30
rem echo string:将字符串显示在屏幕中
rem :loop 和下面的goto组合成循环
:loop
rem 设置变量http状态码
set httpcode=0
rem 打开tomcat目录
cd /d %TOMCAT_HOME%
rem 打印时间
echo %date% %time%
rem 在屏幕上打印执行状态
echo ‘begin checking tomcat‘  

rem 将记录保存在日志文件中
echo %date% %time% >>%LOG_PATH%
rem 循环
rem FOR [参数] %%变量名 IN (相关文件或命令)   DO 执行的命令
rem 其中参数有/d /l /r /f
rem 参数 /d (参数只能显示当前目录下的目录名字)
rem 参数 /R (搜索指定路径及所有子目录中与set相符合的所有文件)
rem 参数 /L (该集表示以增量形式从开始到结束的一个数字序列。可以使用负的 Step)
rem 参数 /F (使用文件解析来处理命令输出、字符串及文件内容。)
rem (相关文件或命令)指定一个或一组文件。可以使用通配符
for /l %%i in (1,1,10) do (
    echo %%i
    rem 借助工具获得项目的状态头(curl工具的安装会在下面提及)
    for /f "delims=" %%r in (‘curl -sL -w "%%{http_code}" %URL% -o /dev/null‘) do (
    rem 将变量r的值赋值给httpcode
        set httpcode=%%r
        if !httpcode!==200 (
            GOTO :OUTFOR
        )
    )
)

:OUTFOR
echo %httpcode% >>%LOG_PATH%  

if not %httpcode%==200 (
    call %NOTIFICATION_MESS%
    echo close tomcat >>%LOG_PATH%
    rem 关闭tomcat   call在批处理中用于调用另一个批处理文件,start用于执行一些外部程序
    start %CLOSE_CMD%
    timeout -t 10 >nul
    rem 记录日志
    echo success to close tomcat >>%LOG_PATH%
    rem 清除tomcatwork空间 /s意思是不需要确认的删除  /Q是清除目录及子目录
    rd /S /Q %TOMCAT_CACHE%
    echo start tomcat >>%LOG_PATH%
    rem 开启tomcat,执行bat文件
    call %START_CMD%  

    echo success to start tomcat
    echo success to start tomcat >>%LOG_PATH%
) else (
    echo the tomcat is running
    echo the tomcat is running>>%LOG_PATH%
)
timeout -t 3 >nul
rem 若将脚本程序部署到系统计划程序中,将以下代码可注释
rem timeout -t %TIME_WAIT% >nul
rem goto loop

第三步,设置windows计划任务。

如何设置计划任务,可以自行百度。贴一个我设置的。

程序或脚本中,选择第二步创建的bat脚本。这样每隔5分钟,系统调用一次bat脚本,bat判断tomcat是否还在运行。如果10秒钟之后,访问bat中的url失败,tomcat项目将会自动启动。



如果有多个tomcat需要此类操作,只需要将每个tomcat项目按照上面三步操作一遍,最终实现监控多个tomcat,避免项目自动关闭的问题。

原文地址:https://www.cnblogs.com/tzzt01/p/11003482.html

时间: 2024-08-01 16:58:52

windows服务器监控多个tomcat运行状态的相关文章

Zabbix利用JMX监控多实例Tomcat运行状态

自使用Zabbix监控系统以来,一直想用JMX来监控Tomcat,但是一直都没配置成功,总有一些问题,监控端的报错又很抽象,搜索网上大都是复制粘贴之产物,或者是缺斤短两之网文,但是一直都没放弃,至今终于配置成功,并且成功获取数据,形成图形,现在把自己解决问题的过程和配置的一些心得整理成文. 环境介绍: Centos 6.5 Zabbix 2.2.15 Tomcat 7.0.68 监控JMX配置步骤 1.在zabbix服务器上安装配置zabbix-java-gateway,并且配置相关参数. 2.

部署tomcat在windows服务器下,将tomcat控制台日志记录到日志文件中

在Linux系统中,Tomcat 启动后默认将很多信息都写入到 catalina.out 文件中,我们可以通过tail  -f  catalina.out 来跟踪Tomcat 和相关应用运行的情况. 在windows下,我们使用startup.bat启动Tomcat以后,会发现catalina日志与Linux记录的内容有很大区别,大多信息只输出到屏幕而没有记录到catalina.out里面. 本文的内容就是要实现在windows下,将相关的控制台输出记录到后台的catalina.out文件中以便

Zabbix 监控windows服务器监控闪断zabbix_get [12577]: Timeout while executing operatio

现象由于: windows bug 由于开机497天之后,触发TCP连接无法释放导致连接数占满,一直time wait 10050 连接28230 80 占用了79530 在计算机上运行的 Windows Vista,Windows 7,Windows Server 2008 中,还是 Windows Server 2008 R2,您遇到以下问题. 问题 1 在系统启动时从 497 天后所有在TIME_WAIT状态的 TCP/IP 端口都不会被关闭.因此,TCP/IP 端口可能已经用完,而且不能

Zabbix监控DB,Tomcat

因项目需要,Zabbix要监控SQL server的连接数,MySQL以及tomcat,下面是对监控上述item的简要介绍. 1. SQL server连接数 1.1 SQL server连接数 1. SQL Server查询当前连接数 2. Sql Server当前并发连接数的查看方法 3. 亲测SQLServer的最大连接数 4. SQL SERVER用户数.连接数.连接池License SELECT * FROM [Master].[dbo].[SYSPROCESSES] WHERE [D

搭建基于Nagios的监控系统——之监控远程Windows服务器

分享了如何监控Linux服务器,我们来看看使用Nagios如何监控Windows服务器. 第一部分:配置被监控的Windows服务器   首先,访问 http://sourceforge.net/projects/nscplus/,下载符合自己服务器的 NSClinent++.我下载下来以后的文件名为:NSCP-0.4.1.73-Win32.msi 双击安装程序,选择 Complete Install,并且选择生成实例配置文件,其他的就一路下一步就OK了. 其次,在 NSClient++ 的安装

Cacti监控一台Web服务器上多个Tomcat端口的实现

因为一台web应用服务器上面安装了多台tomcat,有多个端口,比如默认的8080,还有后续追加的9100,9300,9500等等.一个cacti_host_template_tomcat_server.xml模板只能指定监控一个tomcat服务端口. 因此如果想要监控一台web服务器上的多个tomcat服务器,那么就必须另外想办法,按照一个host上面一个模板监控一个tomcat服务来说的话,要想在一个host上面监控多个tomcat服务就需要构建多个模板xml文件.目前想到2种方法: (1)

zabbix监控windows服务器上进程的内存使用情况

zabbix监控windows服务器上进程的内存使用情况 由于在windows服务器上不能像linux上一样使用top,或者类似于/pro目录下的数据信息,所以在在windows服务器上获得一个进程的内存或者CPU的使用情况不是很容易. 这里通过在windows服务器上使用python脚本获得进程的内存使用值,通过key传递给zabbix客户端,也就是本机上安装的zabbix客户端. windows上安装zabbix客户端网上的文章很多,这里不再记录. 1,首先安装python环境: 点击这里下

服务器监控cacti

第九章:服务器监控系统cacti 防伪码:海阔天空 前言:在企业网络运维过程中,管理员必须时刻关注服务器的运行状态,如CPU.内存.磁盘空间使用情况等.为了能够及时的发现问题,尽量减少故障的发生.当网络中的设备,服务器等数量较多时,可以部署一套监控系统来实时跟踪服务器,我们通常会借助一些软件来实现.今天就以Cacti套件为例,介绍服务器集中监测体系的构建和使用. 今天所讲的cacti服务器监控系统与windows操作系统中的"性能监视器"属于同一类,都是为了监控cpu占用,内存使用,运

Windows系统性能监控设置

*** Windows系统性能监控设置 ### 注意:这是用Windows 2003时总结过的.今天有朋友问起来了,一想曾经总结过,也是看Windows帮助或网络上查询总结的,发出来留作纪念,回忆曾经维护上千台Windows 2003的岁月! 1.内存信息: Memory\ Available Bytes .Memory\ Pages/sec .Memory\ Available Bytes.Available Mbytes .Page/sec (1)如果您怀疑有内存泄露,请监视 Memory\