2022年通过nagios监控weblogic服务 .pdf

上传人:H****o 文档编号:33657254 上传时间:2022-08-12 格式:PDF 页数:9 大小:212.47KB
返回 下载 相关 举报
2022年通过nagios监控weblogic服务 .pdf_第1页
第1页 / 共9页
2022年通过nagios监控weblogic服务 .pdf_第2页
第2页 / 共9页
点击查看更多>>
资源描述

《2022年通过nagios监控weblogic服务 .pdf》由会员分享,可在线阅读,更多相关《2022年通过nagios监控weblogic服务 .pdf(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、通过 Nagios 监控 Weblogic 服务 1. 前言本文主要介绍如何通过Nagios 软件来监控 Weblogic 服务运行状况,其中主要包括Weblogic Server以及 Weblogic JDBC Pool 的运行状态。Nagios 的插件中本身并不提供对于 Weblogic 服务监控的功能,所以要根据Nagios Plugin API编写自己的脚本,扩展其插件,完成我们所需要的功能。对于Weblogic 运行状态信息的获得需通过JMX 。本文参考了 Nagios3 的官方文档中有关 Nagios Plugin部分,以及 Weblogic 官方文档有关 JMX和命令行部分,具体

2、的Weblogic 版本是 8.14。 2.Nagios Plugin API概述作为一个 Nagios 插件,无论你是用脚本(如shell 、perl )还是用c 编译后的可执行程序实现,它必须至少完成两件事,1、退出时有一个返回值。2、至少向标准输出设备(STDOUT)输出一行文本。返回值定义:Plugin Return CodeService StateHost State0 OK UP1 WARNINGUP or DOWN/UNREACHABLE*2 CRITICAL DOWN/UNREACHABLE3 UNKNOWN DOWN/UNREACHABLE输出文本至少要一行,其信息主要反映

3、被监控应用、服务的状态。例如:DISK OK - free space: / 3326 MB (56%); 3. 监控 Weblogic 的实现方法对于 Weblogic 运行状况的获得,我们是通过命令行的方式实现的,通过调用Weblogic的 weblogic.Admin 类实现的。这个类的功能很强大,可以通过它管理和配置Weblogic。以下介绍几个常用的命令写法。1、获得 server 运行状态名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 9 页 - - - -

4、- - - - - -mbean $DOMAIN_NAME:Location=$SERVER_NAME,Name=$SERVER_NAME,Type=ServerRuntime”2、获得 JDBC Pool运行状态 -mbean $DOMAIN_NAME:Location=$SERVER_NAME,Name=$POOL_NAME,ServerRuntime=$SERVER_NAME,Type=JDBCConnectionPoolRuntime将黄色标记部分的变量替换成相应真实环境值即可。$URLweblogic 的 URL ,例如 t3:/192.168.1.2:7002$USER_NAME用

5、户名$PASS_WORD密码$DOMAIN_NAMEweblogic 域的名称,如 mydomain$SERVER_NAMEServer 名$POOL_NAMEJDBC Pool 名称在运行上述命令前需要设置JAVA_HOME,并且将$JAVA_HOME/bin添加到 PATH 中,将weblogic 的 weblogic81/server/lib/weblogic.jar包添加到 CLASSPATH中。 4. 具体实现的 shell脚本有了监控的方法,根据Nagios Plugin API规则编写自己的 shell实现脚本。具体的shell 脚本如下:check_wls.sh#!/bin/k

6、sh#check_wls.sh -jdbcpool url username password domainname servername poolname#check_wls.sh -server url username password domainname servernamePROGNAME=basename $0PROGPATH=echo $0 | sed -e s,/*$,REVISION=echo $Revision: 1749 $ | sed -e s/0-9./g. $PROGPATH/utils.shprint_usage() echo Usage: echo $PROG

7、NAME -jdbcpool url username password domainname servername poolname echo $PROGNAME -server url username password domainname servername echo $PROGNAME -help echo $PROGNAME -version名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 9 页 - - - - - - - - - print_help()

8、print_revision $PROGNAME $REVISION echo print_usage echo echo Check Weblogic status echo echo -jdbcpool url username password domainname servername poolname echo Check Weblogic JDBC Pool echo -server url username password domainname servername echo Check Weblogic Server if -z $JAVA_HOME then echo Pl

9、ease set JAVA_HOME! exit $STATE_UNKNOWNfiif -z $CLASSPATH then echo Please set CLASSPATH! exit $STATE_UNKNOWNelse echo $CLASSPATH | grep weblogic.jar | wc -l | read N if $N = 0 then echo Please add weblogic.jar to CLASSPATH! exit $STATE_UNKNOWN fifiPATH=$JAVA_HOME/bin:$PATHexport PATHJDBC_TYPE=JDBCC

10、onnectionPoolRuntimeSERVER_TYPE=ServerRuntimecmd=$1# Information optionscase $cmd in-help) print_help exit $STATE_OK ;-h) print_help exit $STATE_OK ;-version) print_revision $PROGNAME $REVISION名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 9 页 - - - - - - - - -

11、 exit $STATE_OK ;-V) print_revision $PROGNAME $REVISION exit $STATE_OK ;esaccase $cmd in-server) URL=$2 USER_NAME=$3 PASS_WORD=$4 DOMAIN_NAME=$5 SERVER_NAME=$6 SERVER_INFO=$DOMAIN_NAME:$SERVER_NAME RE=java weblogic.Admin -url $URL -username $USER_NAME -password $PASS_WORD get -mbean $DOMAIN_NAME:Loc

12、ation=$SERVER_NAME,Name=$SERVER_NAME,Type=$SERVER_TYPE printf $RE | grep - | wc -l | read N if $N -lt 1 then #error printf $RE | awk printf $0 | read ERR_INFO echo CRITICAL - $ERR_INFO exit $STATE_CRITICAL fi if $N -ge 1 then HEALTH_STATE= RUN_STATE= #HealthState State printf $RE | while read NAME V

13、ALUE do #PoolState WaitingForConnectionCurrentCount State #echo NAME:$NAME VALUE:$VALUE case $NAME in HealthState:) HEALTH_STATE=$VALUE ; State:) RUN_STATE=$VALUE ; esac done #echo HEALTH_STATE:$HEALTH_STATE #echo RUN_STATE:$RUN_STATE名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 -

14、- - - - - - 第 4 页,共 9 页 - - - - - - - - - HEALTH_STATE_INFO=$HEALTH_STATE echo $HEALTH_STATE_INFO | awk -F, print $1 | awk -F: print $2 | read HEALTH_STATE #echo HEALTH_STATE:$HEALTH_STATE #HEALTH_OK HEALTH_WARN HEALTH_CRITICAL HEALTH_FAILED if $RUN_STATE != RUNNING then echo CRITICAL - $SERVER_INFO

15、 State is $RUN_STATE exit $STATE_CRITICAL fi case $HEALTH_STATE in EALTH_OK) ; HEALTH_WARN) echo WARN - $SERVER_INFO HealthState is $HEALTH_STATE_INFO exit $STATE_WARNING ; HEALTH_CRITICAL) echo CRITICAL - $SERVER_INFO HealthState is $HEALTH_STATE_INFO exit $STATE_CRITICAL ; HEALTH_FAILED) echo FAIL

16、ED - $SERVER_INFO HealthState is $HEALTH_STATE_INFO exit $STATE_CRITICAL ; esac fi echo OK - $SERVER_INFO State is $RUN_STATE,HealthState is $HEALTH_STATE_INFO exit $STATE_OK ;-jdbcpool) URL=$2 USER_NAME=$3 PASS_WORD=$4 DOMAIN_NAME=$5 SERVER_NAME=$6 POOL_NAME=$7 POOL_INFO=$DOMAIN_NAME:$SERVER_NAME:$

17、POOL_NAME RE=java weblogic.Admin -url $URL -username $USER_NAME -password $PASS_WORD GET -mbean $DOMAIN_NAME:Location=$SERVER_NAME,Name=$POOL_NAME,ServerRuntime=$SERVER_NAME,Type=$JDBC_TYPE printf $RE | grep - | wc -l | read N if $N -lt 1 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心

18、整理 - - - - - - - 第 5 页,共 9 页 - - - - - - - - - then #error printf $RE | awk printf $0 | read ERR_INFO echo CRITICAL - $ERR_INFO exit $STATE_CRITICAL fi if $N -ge 1 then POOL_STATE= WAIT_CNT= RUN_STATE= printf $RE | while read NAME VALUE do #PoolState WaitingForConnectionCurrentCount State #echo NAME

19、:$NAME VALUE:$VALUE case $NAME in PoolState:) POOL_STATE=$VALUE ; WaitingForConnectionCurrentCount:) WAIT_CNT=$VALUE ; State:) RUN_STATE=$VALUE ; esac done #echo POOL_STATE:$POOL_STATE #echo WAIT_CNT:$WAIT_CNT #echo RUN_STATE:$RUN_STATE if $POOL_STATE != true then echo CRITICAL - $POOL_INFO PoolStat

20、e is $POOL_STATE exit $STATE_CRITICAL fi if $RUN_STATE != Running then echo CRITICAL - $POOL_INFO State is $RUN_STATE exit $STATE_CRITICAL fi if $WAIT_CNT -gt 0 then echo WARNING - $POOL_INFO WaitingForConnectionCurrentCount is $WAIT_CNT exit $STATE_WARNING fi else #error printf $RE | awk printf $0

21、| read ERR_INFO名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 9 页 - - - - - - - - - echo CRITICAL - $ERR_INFO exit $STATE_CRITICAL fi echo OK - $POOL_INFO State is $RUN_STATE,PoolState is $POOL_STATE,WaitingForConnectionCurrentCount is $WAIT_CNT exit $STATE_OK

22、;*) print_usage exit $STATE_UNKNOWN ;esac 5. 配置 Weblogic 监控将 check_wls.sh 上传到 Nagios 软件的 libexec 目录下,并创建一个ln 文件check_wls。$ ln -s ./check_wls.sh ./check_wls在 nrpe 的配置文件中增加相关的命令定义。Weblogic 的具体配置信息如下,$URLt3:/172.17.1.2:7001$USER_NAMEweblogic$PASS_WORDweblogic$DOMAIN_NAMEmydomain$SERVER_NAMEmyserver$POO

23、L_NAMEmypool编辑 nrpe.cfg文件,增加如下内容,$ vi ./nrpe.cfg. . . . . . . . . . . .#check weblogic check_wlscommandcheck_wls_server_myserver=/usr/local/nagios/libexec/check_wls -server t3:/172.2.10.2:7001 weblogic weblogic mydomain myservercommandcheck_wls_jdbcpool_mypool=/usr/local/nagios/libexec/check_wls -jd

24、bcpool t3:/172.2.10.2:7001 weblogic weblogic mydomain myserver mypool在 nrpe 的启动脚本中添加环境变量(CLASSPATH、JAVA_HOME). . . . . . . . . . . .JAVA_HOME=/data/bea/bea/jdk142_05export JAVA_HOMECLASSPATH=/data/bea/bea/weblogic81/server/lib/weblogic.jarexport CLASSPATH. . . . . . . . . . . .名师资料总结 - - -精品资料欢迎下载 -

25、 - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 9 页 - - - - - - - - - 编辑监控主机的 nagios.cfg文件,添加如下内容。$ vi ./nagios.cfg. . . . . . . . . . . .# Define a host for the local machinedefine host use linux-box ; Name of host template to use ; This host definition will inherit all variables th

26、at are defined ; in (or inherited by) the linux-server host template definition. host_name sol_172.2.10.2 alias sol_172.2.10.2 address 172.2.10.2 #the check_wls_server_myserver on the remote host.define service use generic-service host_name sol_172.2.10.2 service_description Weblogic Server myserver

27、 check_command check_nrpe!check_wls_server_myserver #the check_wls_jdbcpool_mypool on the remote host.define service use generic-service host_name sol_172.2.10.2 service_description Weblogic JDBCPool mypool check_command check_nrpe!check_wls_jdbcpool_mypool 验证配置是否正确。重启监控主机上的 nagios 服务以及 远程主机上的 nrpe

28、服务。通过 IE 观察监控情况。图 5.1就此配置工作完成。 6. 结语名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 9 页 - - - - - - - - - 本文介绍了一 种通过 Nagios 监控 Weblogic 应用的实现方式, 按照 Nagios Plugin API规则编写自己的 Shell 脚本实现 该功能,并 简单的描述了配置过程,提供了Shell 源码。希望大家指正。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 9 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁