免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3295 | 回复: 0
打印 上一主题 下一主题

[WebLogic] Windows BAT 脚本监控 WebLogic 的运行状态、健康状态、打开的套接字数 [复制链接]

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-07-18 18:09 |只看该作者 |倒序浏览
本帖最后由 Shell_HAT 于 2014-07-19 08:21 编辑

经常看到有人通过检查 PID 或者端口号是否存在来判断 WebLogic 实例是否正常。

其实那种方法是不好的。因为在实际的线上环境里面,WebLogic 实例会因为很多种原因出现异常,比如内存溢出、过载、死锁等,这个时候它的 PID 或端口都没有问题,但实际上它已经无法正常工作了,需要通过重启 WebLogic 实例才能恢复正常。

一个更加靠谱的监控方法是,在脚本里面调用 WebLogic 的命令 weblogic.Admin 来判断实例的状态。希望本文的脚本对大家有所帮助。

操作系统版本:
C:\>systeminfo | findstr /c:"OS Name"
OS Name:                   Microsoft(R) Windows(R) Server 2003 Enterprise x64 Edition


WebLogic 版本:
C:\>java weblogic.version | findstr "WebLogic"
WebLogic Server 10.3.6.0  Tue Nov 15 08:52:36 PST 2011 1441050


代码:
  1. @echo off
  2. set "CLASSPATH=D:\WebLogic\Middleware\wlserver_10.3\server\lib\weblogic.jar;%CLASSPATH%"
  3. set "PATH=D:\WebLogic\Middleware\jrockit_160_29_D1.2.0-10\bin;%PATH%"

  4. set "URL=10.135.8.188:7001"
  5. set "USER_NAME=weblogic"
  6. set "PASS_WORD=welcome1"
  7. set "DOMAIN_NAME=wl_server"
  8. set "SERVER_NAME=examplesServer"
  9. set "SERVER_INFO=%DOMAIN_NAME%:%SERVER_NAME%"

  10. set CMD_WLS_ADMIN=java weblogic.Admin -url %URL% -username %USER_NAME% -password %PASS_WORD% get -pretty -mbean "%DOMAIN_NAME%:Location=%SERVER_NAME%,Name=%SERVER_NAME%,Type=ServerRuntime"
  11. set "STATE_FILE=WLS_STATE.log"
  12. %CMD_WLS_ADMIN% | more > "%STATE_FILE%" 2>&1

  13. REM Check WebLogic instance running status
  14. findstr /c:"State: RUNNING" "%STATE_FILE%" >nul 2>&1
  15. if errorlevel 1 (
  16.     echo %URL% %DOMAIN_NAME% %SERVER_NAME% running status is not OK
  17. ) else (
  18.     echo %URL% %DOMAIN_NAME% %SERVER_NAME% running status is OK
  19. )

  20. REM Check WebLogic instance health status
  21. findstr /c:"State:HEALTH_OK" "%STATE_FILE%" >nul 2>&1
  22. if errorlevel 1 (
  23.     echo %URL% %DOMAIN_NAME% %SERVER_NAME% health status is not OK
  24. ) else (
  25.     echo %URL% %DOMAIN_NAME% %SERVER_NAME% health status is OK
  26. )

  27. REM Check WebLogic instance open sockets number
  28. set "SOCKET_MAX=200"
  29. for /f "tokens=2" %%i in ('findstr "OpenSocketsCurrentCount" "%STATE_FILE%"') do (
  30.     set "SOCKET_NOW=%%i"
  31. )
  32. if "x%SOCKET_NOW%" equ "x" (
  33.     echo %URL% %DOMAIN_NAME% %SERVER_NAME% open sockets number is not OK: fail to get
  34. ) else (
  35.     if %SOCKET_NOW% gtr %SOCKET_MAX% (
  36.         echo %URL% %DOMAIN_NAME% %SERVER_NAME% health status is not OK: %SOCKET_NOW% greater than %SOCKET_MAX%
  37.     ) else (
  38.         echo %URL% %DOMAIN_NAME% %SERVER_NAME% health status is OK: %SOCKET_NOW% not greater than %SOCKET_MAX%
  39.     )
  40. )

  41. pause
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP