之前的文章中介绍了如何通过编写自己的脚本,并通过Nagios监控Weblogic服务。近日在实践中配置该监控,发现了之前脚本中的一些不足,进行了脚本修改。现将脚本共享。
   
    脚本的名称是check_weblogic.sh,可以建立一个软link check_weblogic
   
    1、使用的方法如下,
    check_weblogic.sh -H host -p port -v '--type [jdbcpool|server] --username username --password password --domain domainname --server servername [--pool poolname]'
   
    其中,
    host -- 主机名/IP
    port -- weblogic server的端口号   
    -v后面的参数是具体的监控内容,可监控server和jdbcpool。
    一共三个参数。
   
    例如    ,
    要监控的weblogic配置情况如下
    例1
    主机IP:192.168.10.1
    端口:9503
    域:mydomain
    server:myserver
    用户名和密码:weblogic/weblogic
    则,监控命令如下,
    ./check_weblogic.sh -H 192.168.10.1 -p 9503 -v '--type server --username weblogic --password weblogic --domain mydomain --server myserver'
    运行结果
    OK - mydomain:myserver State is RUNNING,HealthState is State:HEALTH_OK,ReasonCode:[,]
   
    2、将其配置到Nagios中
    首先需要修改${NAGIOS_HOME}/etc/objects/commands.cfg,增加一个命令配置。
    添加如下内容,   
    # 'check_weblogic' command definition
    define command{
        command_name    check_weblogic
        command_line    $USER1$/check_weblogic -H $HOSTADDRESS$ -p $ARG1$ -v "$ARG2$"
        }
    其中,HOSTADDRESS是主机IP,ARG1是端口号,ARG2是监控内容
   
    然后就可以定义service了,我们通过一个例子来说明,监控的是“例1”中weblogic实例,具体的配置应如下,
    define service{
        use                     generic-service
        host_name               linux_192.168.10.1
        service_description     Weblogic myserver
        check_command           check_weblogic!9503!--type server --username weblogic --password weblogic --domain mydomain --server myserver
        }
    其中,linux_192.168.10.1是之前配置过的一个主机。
   
    3、其他
    当然如果你使用NRPE来获得被监控主机的信息,那么配置上就没这么繁琐了,至少commands.cfg的配置就省去了,可以直接将监控的内容配置成nrpe.cfg中的command就行了,例如,
    command[check_wls_mydomain_myserver]=/usr/local/nagios/libexec/check_weblogic -H 192.168.10.1 -p 9503 -v '--type server --username weblogic --password weblogic --domain mydomain --server myserver'
    Nagios端直接通过check_nrpe调用该command就可以获得相应server的健康情况了。