Linux上监控WebLogic的实用方案
一 监控总览与关键指标
二 快速方法 控制台与日志
三 命令行与脚本 WLST 与 Shell
connect('weblogic','welcome1','t3://localhost:7001')
serverRuntime = cmo.getServerRuntime()
print("HealthState:", serverRuntime.getHealthState())
disconnect()
可将 WLST 与定时任务结合,采集 ServerRuntime 指标并输出为 JSON/文本,供外部系统采集。#!/usr/bin/env bash
export CLASSPATH="/opt/Oracle/Middleware/wlserver_10.3/server/lib/weblogic.jar:$CLASSPATH"
URL="192.168.222.11:7020"
USER="weblogic"
PASS="$WEBLOGIC_PASSWORD" # 推荐用环境变量,避免明文
DOMAIN="MedRecDomain"
SERVER="MedRecAdmSvr"
STATE_ALL=$(java weblogic.Admin -url $URL -username $USER -password $PASS \
get -pretty -mbean "$DOMAIN:Location=$SERVER,Name=$SERVER,Type=ServerRuntime")
echo "$STATE_ALL" | grep -q "State: RUNNING" || echo "NOT_RUNNING"
echo "$STATE_ALL" | grep -q "State: HEALTH_OK" || echo "NOT_HEALTHY"
echo "$STATE_ALL" | awk '/OpenSocketsCurrentCount/{print "OpenSockets="$2}'
建议将脚本输出写入日志文件,由 Zabbix 等监控系统解析告警(如检测日志中是否出现 NO)。四 JMX 远程监控 JConsole 与 VisualVM
JAVA_OPTIONS="${JAVA_OPTIONS} -Dcom.sun.management.jmxremote.port=9000"
JAVA_OPTIONS="${JAVA_OPTIONS} -Dcom.sun.management.jmxremote.authenticate=false"
JAVA_OPTIONS="${JAVA_OPTIONS} -Dcom.sun.management.jmxremote.ssl=false"
五 企业级监控与告警集成