[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

多tomcat监控脚本问题 20元

一台windows服务器,上面部署了多个tomcat
现在用zabbix监控各个tomcat运行状态
首先获取tomcat命名:jvm_name.bat
@echo off & setlocal EnableDelayedExpansion

set j=0

for /f "delims=""" %%i in (jvm_name.txt) do (

set /a j+=1

set con!j!=%%i

call set tomcat_name=%%con!j!%%

echo !tomcat_name!

)
复制代码
然后jstat.bat去获取各个进程的状态
@echo off  & setlocal EnableDelayedExpansion

        set j=0

        for /f "delims=""" %%i in (E:\soft\jvm_name.txt) do (

        set /a j+=1

        set con!j!=%%i

        call set tomcat_name=%%con!j!%%

        echo !tomcat_name!
)

wmic process where (name="java.exe" and CommandLine like "%%%i%") get Handle |gawk  -F "Handle"  '{print $NF}' >E:\soft\t_id.txt
        set j=0

        for /f "delims=""" %%a in (E:\soft\t_id.txt) do (

        set /a b+=1

        set con!b!=%%a

        call set t_id=%%con!b!%%

        echo !t_id!

)
set jstat_home=%java_home%
pushd %jstat_home%  
bin\jstat -gc "%t_id%" > E:\soft\"%tomcat_name%".gc
复制代码
最后监控客户端取值:jvm_status.bat
@echo off

set t=$1

set jvm_key=$2

cat E:\soft\zabbix_agent\logs\$t.gc | grep -w "$jvm_key" | gawk '{print $2}'
复制代码
现在遇到了一些问题,由于本人基础太差,修改了几天的脚本,依旧无法解决
特求助各位大佬,望大家有空能帮忙看看
问题一:wmic process where (name="java.exe" and CommandLine like "%%%i%") get Handle |gawk  -F "Handle"  '{print $NF}' >E:\soft\t_id.txt
获取的值开头和行尾,最后,有空格和空行,导致bin\jstat -gc "%t_id%"  参数错误,无法执行
问题二:bin\jstat -gc "%t_id%" > E:\soft\"%tomcat_name%".gc  这里的两个变量只能取到最后一次的值,放到变量赋值内执行又报错
QQ图片20171227100226.png
问题三:E:\soft\"%tomcat_name%".gc  写入这个问题的参数,是两横排的数据,如何去改成两竖排的数据
从  227101308.png 变成  27101354.png




最后说明下后面的步骤
定时任务jstat.bat每分钟去获取一次状态
然后再zabbix-agent中配置监控
UserParameter=jvm.name,E:\soft/jvm_name.sh
UserParameter=jvm.status
,E:\soft/jvm_status.sh $1 $2
后面的还没测试验证过


各位大佬,跪求帮助,万分感谢!!!


联系Q:276834758
20红包奉上

结帖,自己研究

TOP

返回列表