`
lzkyo
  • 浏览: 463850 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

WebLogic监控脚本

阅读更多
#!/bin/sh
#
# WebLogic Server Runtime Monitor
# Auth:liaos
# Date:2009-11-12
#
username="weblogic"
password="weblogic"
admserv_ip="localhost"
admserv_port="7001"
domain_name="domain"
wl_jar="/bea/weblogic/server/lib/weblogic.jar"

_get_server_list() {
server_list=`/usr/java6_64/bin/java -cp "$wl_jar" weblogic.Admin -url t3://"$admserv_ip":"$admserv_port" -username "$username" -password "$password" GET -pretty -type Server -property Name -property ListenAddress -property ListenPort | grep -v -e '^[-]' | grep -v 'MBeanName' | sed -e 's/ //g' | sed -e 's/^[^\w]//g' | awk '{print $0}' | awk '{ if (NR%3 != 0) ORS=","; else ORS="\n"; print} ' `
}
_get_server_property() {
server_property=`/usr/java6_64/bin/java -cp "$wl_jar" weblogic.Admin -url t3://"$1":"$2" -username "$username" -password "$password" GET -pretty -type ServerRuntime -property Name -property State | grep -v -e '^[-]' | grep -v 'MBeanName' | sed -e 's/ //g' | sed -e 's/^[^\w]//g' | awk '{print $0}' `
}

_get_server_name() {
_get_server_property $1 $2 
server_name=`echo "$server_property" | grep "Name" | awk -F':' '{print $2}'`
}

_get_server_state() {
_get_server_property $1 $2 
server_state=`echo "$server_property" | grep "State" | awk -F':' '{print $2}'`
}

_get_queue_list() {
queue_list=`/usr/java6_64/bin/java -cp "$wl_jar" weblogic.Admin -url t3://"$1":"$2" -username "$username" -password  "$password" GET -pretty -type ExecuteQueueRuntime -property Name -property ExecuteThreadCurrentIdleCount -property ExecuteThreadTotalCount | grep -v -e '^[-]' | grep -v 'MBeanName' | sed -e 's/ //g' | sed -e 's/^[^\w]//g' | awk '{print $0}' | awk '{ if (NR%3 != 0) ORS=","; else ORS="\n"; print} ' | grep -v 'weblogic' | grep -v 'wl' | grep -v 'Jms' | grep -v 'Manager' | awk '{print $0}' `
}

_get_server_jvm() {
server_jvm=`/usr/java6_64/bin/java -cp "$wl_jar" weblogic.Admin -url t3://"$2":"$3" -username "$username" -password "$password" GET -pretty -mbean "$domain_name:ServerRuntime=$1,Name=$1,Type=JVMRuntime,Location=$1" -property HeapFreePercent | grep "HeapFreePercent" | awk -F ':' '{print $2}'`
}
_get_pool_list() {
pool_list=`/usr/java6_64/bin/java -cp "$wl_jar" weblogic.Admin -url t3://"$1":"$2" -username "$username" -password "$password" GET -pretty -type JDBCConnectionPoolRuntime -property Name -property ActiveConnectionsCurrentCount -property Properties -property State -property MaxCapacity | grep -v -e '^[-]' | grep -v 'MBeanName' | sed -e 's/ //g' | sed -e 's/^[^\w]//g' | awk '{print $0}' | awk '{ if ( NR%5 !=0 ) ORS=","; else ORS="\n"; print}' `
}

_get_server_info() {
if [ -n "$1" -a -n "$2" ] ; then
_get_server_name $1 $2
server_list=`echo "ListenAddress:$1,ListenPort:$2,Name:$server_name"`
else 
_get_server_list
fi
if [ -n "$server_list" ] ; then
echo "ServerName\tListenAddress\tListenPort\tRunState\tFreeMemoryPercent"
for server in $server_list
do
server_ip=`echo "$server" | sed -e 's/ //g' | awk -F ',' '{print $1}' | awk -F ':' '{print $2}'`
server_port=`echo "$server" | sed -e 's/ //g' | awk -F ',' '{print $2}' | awk -F ':' '{print $2}'`
server_name=`echo "$server" | sed -e 's/ //g' | awk -F ',' '{print $3}' | awk -F ':' '{print $2}'`
        if [ -z "$server_ip" ] ; then
        server_ip="$admserv_ip"
        fi

_get_server_state $server_ip $server_port

_get_server_jvm $server_name $server_ip $server_port
echo "$server_name\t$server_ip\t$server_port\t\t$server_state\t\t$server_jvm"
done
fi
}

_get_queue_info() {
if [ -n "$1" -a -n "$2" ] ; then
        _get_server_name $1 $2
        server_list=`echo "ListenAddress:$1,ListenPort:$2,Name:$server_name"`
else
        _get_server_list
fi
if [ -n "$server_list" ] ; then
echo "ServerName\tQueueName\tIdelThreads\tTotalThreads"
for server in $server_list
do
        server_ip=`echo "$server" | sed -e 's/ //g' | awk -F ',' '{print $1}' | awk -F ':' '{print $2}'`
        server_port=`echo "$server" | sed -e 's/ //g' | awk -F ',' '{print $2}' | awk -F ':' '{print $2}'`
        server_name=`echo "$server" | sed -e 's/ //g' | awk -F ',' '{print $3}' | awk -F ':' '{print $2}'`
        if [ -z "$server_ip" ] ; then
        server_ip="$admserv_ip"
        fi
        
_get_queue_list $server_ip $server_port

for queue in $queue_list
do
  thread_idel=`echo "$queue" | awk -F ',' '{print $1}' | awk -F ':' '{print $2}'`
  thread_total=`echo "$queue" | awk -F ',' '{print $2}' | awk -F ':' '{print $2}'`
  queue_name=`echo "$queue" | awk -F ',' '{print $3}' | awk -F ':' '{print $2}'`
         echo "$server_name\t$queue_name\t\t$thread_idel\t\t$thread_total"
done
done
fi
}
_get_pool_info() {
if [ -n "$1" -a -n "$2" ] ; then
        _get_server_name $1 $2
        server_list=`echo "ListenAddress:$1,ListenPort:$2,Name:$server_name"`
else
        _get_server_list
fi
if [ -n "$server_list" ] ; then
echo "ServerName\tDataSource\tProperties\tState\tCurrentCount\tMaxCapacity"
for server in $server_list
do
        server_ip=`echo "$server" | sed -e 's/ //g' | awk -F ',' '{print $1}' | awk -F ':' '{print $2}'`
        server_port=`echo "$server" | sed -e 's/ //g' | awk -F ',' '{print $2}' | awk -F ':' '{print $2}'`
        server_name=`echo "$server" | sed -e 's/ //g' | awk -F ',' '{print $3}' | awk -F ':' '{print $2}'`
        if [ -z "$server_ip" ] ; then
        server_ip="$admserv_ip"
        fi
        _get_pool_list $server_ip $server_port
        for pool in $pool_list
        do
                current_count=`echo "$pool" | awk -F ',' '{print $1}' | awk -F ':' '{print $2}'`
                max_capacity=`echo "$pool" | awk -F ',' '{print $2}' | awk -F ':' '{print $2}'`
                datasource=`echo "$pool" | awk -F ',' '{print $3}' | awk -F ':' '{print $2}'`
                db_user=`echo "$pool" | awk -F ',' '{print $4}' | awk -F ':' '{print $2}'`
                pool_state=`echo "$pool" | awk -F ',' '{print $5}' | awk -F ':' '{print $2}'`
                echo "$server_name\t$datasource\t$db_user\t$pool_state\t\t$current_count\t\t$max_capacity"
        done
done
fi
}

list() {
_get_server_list
if [ -n "$server_list" ] ; then
echo "ServerName\tListenAddress\tListenPort"
for server in $server_list
do
        server_ip=`echo "$server" | sed -e 's/ //g' | awk -F ',' '{print $1}' | awk -F ':' '{print $2}'`
        server_port=`echo "$server" | sed -e 's/ //g' | awk -F ',' '{print $2}' | awk -F ':' '{print $2}'`
        if [ -z "$server_ip" ] ; then
        server_ip="$admserv_ip"
        fi
_get_server_name $server_ip $server_port
        echo "$server_name\t$server_ip\t$server_port"
done
fi
}

go_server_info() {
if [ "$#" -eq 3 ] ; then
_get_server_info $2 $3
else
_get_server_info
fi
exit 0;
}

go_queue_info() {
if [ "$#" -eq 3 ] ; then
_get_queue_info $2 $3
else
_get_queue_info
fi
exit 0;
}

go_pool_info() {
if [ "$#" -eq 3 ] ; then
_get_pool_info $2 $3
else
_get_pool_info
fi
exit 0;
}

help() {
cat <<EOF
wlsm -- WebLogic Server Monitor
USAGE: wlsm.sh [-h] [-l] [-s] [-q] [-p] [listen_address] [listen_port]
OPTIONS: -h help text.
-l list all server info,
-s [listen_address,listen_port] for runtime state of server,
-q [listen_address,listen_port] for queue thread state of server,
-p [listen_address,listen_port] for connection pool state of server,
EXAMPLE: wlsm.sh -s 10.131.54.11 8080
EOF
exit 0;
}

while [ -n "$1" ]; do
case $1 in
-h) help; exit 0;; 
-l) list; exit 0;;
-s*) go_server_info $1 $2 $3; shift 1;;
-q*) go_queue_info $1 $2 $3; shift 1;;
-p*) go_pool_info $1 $2 $3; shift 1;;
-*) echo "error : no such option $1. -h for help"; exit 0;;
*) break;;
esac
done
if [ -z "$1" ] ; then
help; exit 0;; 
fi

 

分享到:
评论

相关推荐

    weblogic监控脚本

    这篇博客文章“Weblogic监控脚本”可能涉及了如何利用脚本来自动化监控WebLogic服务器的关键指标,如内存使用、CPU利用率、JVM性能等。 在WebLogic中,监控可以通过多种方式实现,包括使用内置的管理控制台、WLST...

    weblogic监控 weblogic调优 weblogic版本区别 weblogic启动关闭脚本

    一、WebLogic监控 WebLogic提供了强大的内置监控功能,包括性能监控、资源监控和健康检查等。通过WebLogic Administration Console可以实时查看服务器状态,如JVM内存使用情况、线程池状态、HTTP请求统计等。此外,...

    weblogic守护进程:监控weblogic进程,当发现进程停止时调用重启脚本重启

    #功能:weblogic守护进程:监控weblogic进程,当发现进程停止时调用重启脚本重启 #参数:进程唯一标识码,例如“weblogic” #依赖脚本:数据库操作脚本dbExecurteSQL.sh,weblogic重启脚本$PSSC_DOMAIN/startPssc.sh...

    weblogic监控

    【WebLogic监控】 WebLogic是Oracle公司开发的一款企业级Java应用程序服务器,用于部署和管理Java EE应用程序。WebLogic服务的监控对于确保应用的稳定性和性能至关重要。以下是对WebLogic服务监控的一些关键点: 1...

    WLST 监控weblogic脚本

    使用WLST 监控weblogic application server的脚本。

    weblogic虚幻脚本日志设置

    在WebLogic的运行过程中,日志系统扮演着至关重要的角色,它记录了服务器的运行状态、错误信息以及诊断数据,帮助管理员监控和调试应用。针对"weblogic 虚幻脚本日志设置"这个主题,我们将深入探讨WebLogic的日志...

    weblogic-monitoring-exporter:WebLogic监视导出器通过REST API公开指标和监视数据,以供其他工具(例如Prometheus)使用

    要下载Web应用程序wls-exporter.war并将您的配置文件放入WAR中,请下载每个版本随附的getXXX.sh脚本,也可以从“发行版”页面下载该脚本,然后运行: bash getXXX.sh 从源头建造 使用mvn install来构建Web应用...

    jmx监控weblogic,tomcat,websphere源码

    在本项目中,"jmx监控weblogic,tomcat,websphere源码"涉及了使用JMX来监控三个主流的Java应用服务器:WebLogic、Tomcat和WebSphere。这些服务器都是企业级应用部署的常见选择,对它们的监控对于确保系统性能、稳定性...

    weblogic自动化管理脚本

    WLST是WebLogic Server的一个内置工具,它提供了一种基于Python的交互式和脚本化的环境,用于配置、管理和监控WebLogic域。WLST允许用户通过命令行界面或脚本文件执行各种操作,如创建、修改和查询WebLogic Server的...

    监控系统进程,当weblogic进程停掉时产生日志并记录到库

    #功能:进程状态监控脚本,当发现指定进程停止时记录日志并记录入库 #参数:进程唯一标识码,例如“weblogic” #依赖脚本:数据库操作脚本dbExecurteSQL.sh #数据库操作脚本资源:...

    shell脚本实现服务器进程监控的方法

    ### Shell 脚本实现服务器进程监控方法详解 在IT运维和开发环境中,服务器进程的稳定运行至关重要。本文将深入探讨如何使用Shell脚本实现服务器进程监控,这不仅有助于及时发现异常情况,还能提高系统的可用性和...

    weblogic日常巡检,问题排查

    ### WebLogic 日常巡检与问题排查 #### 引言 WebLogic作为一款广泛使用的Java应用服务器,在企业级应用环境中扮演着重要的角色。为了确保WebLogic服务器能够稳定、高效地运行,定期进行健康检查(巡检)是非常必要...

    weblogic反序列化漏洞验证脚本(python版)对4.18最新漏洞检测

    这个脚本,名为`weblogic_poc2628.py`,是漏洞验证工具,它可以帮助安全研究人员或管理员检测其WebLogic服务器是否易受这种特定漏洞的影响。Python是一种流行的编程语言,因其简洁和强大的库支持而常被用于安全测试...

    java jvisualvm 监控weblogic配置方法

    ### Java VisualVM 监控 WebLogic 配置详解 #### 一、Java VisualVM 概述及环境配置 Java VisualVM 是一个强大的工具,用于监控和分析 Java 应用程序的性能。它自 JDK 1.6 版本起集成在 JDK 中,允许开发者和系统...

    Jprofile资源监控WebLogic部署项目占用资源的大小步骤---操作步骤,图片

    7、**配置WebLogic启动脚本**:为了监控WebLogic部署的程序,你需要指定WebLogic域的启动和停止脚本。这些脚本通常位于WebLogic域的`bin`目录下,例如`startWebLogic.cmd`和`stopWebLogic.cmd`。确保这些脚本被正确...

    解决BEA WebLogic Platform 8.14跨站点脚本编制漏洞问题

    "解决BEA WebLogic Platform 8.14跨站点脚本编制漏洞问题" 这个标题表明了我们关注的核心是BEA WebLogic Platform 8.14版本的安全问题,特别是针对跨站脚本(XSS)攻击的解决方案。BEA WebLogic是一个由Oracle公司...

    Linux系统监控shell程序包-含内存cpu硬盘监控进程监控进程守护删除过期日志url监控webservice监控

    sysWeblogicMonitorRestart.sh:系统weblogic监控重启(守护进程),当weblogic进程停止时调用脚本(startPssc.sh)自动重启 startPssc.sh:重启weblogic并生成带日期的日志文件 sh\utils:工具文件夹 ...

    linux bash脚本监控启动停止weblogic服务的脚本写法

    有时,linux系统需要做HA或者类似的功能,需要配置weblogic脚本来启动,停止,查看状态,可以如下方式写 命令形式:Weblogic server start|stop|restart|status ### BEGIN WLS Configration DOMAIN_NAME=base_...

    pinpoint安装部署、监控tomcat、weblogic、webSphere手册

    6. **监控 Weblogic 和 WebSphere**:对于 Weblogic 和 WebSphere 等其他应用服务器,安装 Agent 的过程略有不同,但基本原理相似,主要是通过相应的启动脚本或配置文件加入 Agent 参数。 #### 五、总结 通过以上...

Global site tag (gtag.js) - Google Analytics