1. 使用WebLogic自帶管理工具
WebLogic Server提供了內置的圖形化與命令行工具,適合快速監控基礎性能指標。
http://<weblogic-server>:7001/console
,使用管理員賬戶登錄。導航至“Servers”→“Your Server”→“Monitoring”→“Performance”,可實時查看CPU使用率、內存占用、線程池狀態(活躍線程數、等待隊列長度)、JDBC連接池使用率等核心指標。connect('weblogic', 'password', 't3://<weblogic-server>:7001')
serverRuntime = cmo.getServerRuntime()
print("Server Health:", serverRuntime.getHealthState())
disconnect()
可擴展腳本收集更多指標(如JVM堆內存、子系統健康狀態)并輸出到日志。2. 基于JMX的監控(靈活且可擴展)
JMX是Java標準監控接口,WebLogic通過JMX暴露大量性能指標,需先配置遠程訪問:
DOMAIN_HOME/bin/setDomainEnv.sh
,添加以下參數(替換端口為實際值):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"
重啟WebLogic使配置生效。jconsole
,選擇“遠程”→輸入<weblogic-server>:9000
,即可查看內存、線程、類加載等指標。3. 第三方監控工具(專業且全面)
第三方工具提供集中化監控、告警及可視化功能,適合生產環境:
weblogic_exporter
(WebLogic專用指標采集器)抓取WebLogic指標。配置prometheus.yml
添加WebLogic job:scrape_configs:
- job_name: 'weblogic'
static_configs:
- targets: ['<weblogic-server>:<exporter-port>']
4. 系統層面監控(輔助定位資源瓶頸)
通過Debian系統工具監控WebLogic所在服務器的基礎資源使用情況,輔助判斷性能問題根源:
htop
(sudo apt install htop
)顯示CPU、內存占用排名,glances
(sudo apt install glances
)提供更全面的系統指標(磁盤IO、網絡流量)。sar
(系統活動報告)、iostat
(磁盤IO統計)、mpstat
(CPU使用率統計)等命令,記錄系統歷史性能數據。例如,sar -u 1 5
每秒采集1次CPU使用率,共5次。5. 日志分析與告警(定位問題根源)
通過分析WebLogic日志識別性能問題(如內存泄漏、線程死鎖):
DOMAIN_HOME/servers/<server-name>/logs/access.log
,分析請求響應時間、HTTP狀態碼(如5xx錯誤增多可能表示服務器壓力大)。DOMAIN_HOME/servers/<server-name>/logs/<server-name>.log
,查找“OutOfMemoryError”“ThreadDeadlock”等關鍵字??墒褂?code>grep、awk
等工具提取關鍵信息,或通過ELK Stack(Elasticsearch+Logstash+Kibana)實現日志集中化分析與告警。6. 自動化監控與告警(持續保障性能)
通過定時任務或工具實現自動化監控,及時通知異常:
check_threads.sh
:#!/bin/bash
ACTIVE_THREADS=$(curl -s -u weblogic:password http://<weblogic-server>:7001/console/jmx-console/HtmlAdaptor?action=invokeOpByName&name=weblogic.management.runtime.ThreadPoolRuntimeMBean&methodName=getActiveThreads)
THRESHOLD=100
if [ "$ACTIVE_THREADS" -gt "$THRESHOLD" ]; then
echo "High active threads: $ACTIVE_THREADS" | mail -s "WebLogic Alert" admin@example.com
fi
添加到crontab:* * * * * /path/to/check_threads.sh
(每分鐘執行一次)。