在CentOS系統中,監控WebLogic Server的運行狀態與性能可采用圖形化工具、命令行工具、腳本化方案及第三方監控系統等多種方式,以下是具體實現方法:
WebLogic自帶的圖形化管理控制臺是最基礎的監控方式,通過瀏覽器即可訪問。操作步驟:
http://<WebLogic服務器IP>:7001/console
(默認管理端口為7001);JMX是Java標準的監控接口,支持遠程獲取WebLogic的詳細性能數據。需先配置遠程訪問,再通過客戶端工具連接:
bin/setDomainEnv.sh
文件,在JAVA_OPTIONS
中添加以下參數(關閉認證與SSL,生產環境建議開啟):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服務使配置生效。bin
目錄下運行jconsole
,選擇“遠程”選項卡,輸入WebLogic服務器IP及JMX端口(如192.168.1.100:9000
),點擊“連接”即可查看JVM堆內存、線程、類加載、MBean等信息。WLST是基于Jython的命令行工具,適合自動化監控與腳本化管理。示例腳本(監控服務器健康狀態):
# 連接到WebLogic服務器
connect('weblogic', 'welcome1', 't3://localhost:7001')
# 獲取ServerRuntimeMBean
serverRuntime = cmo.getServerRuntime()
# 獲取服務器健康狀態(0=健康,1=警告,2=嚴重)
healthState = serverRuntime.getHealthState()
print("Server Health State:", healthState)
# 獲取子組件(如JDBC、JMS)的健康狀態
subsystemHealth = serverRuntime.getSubsystemHealthStates()
for subsystem in subsystemHealth:
print(f"Subsystem: {subsystem.getName()}, Health: {subsystem.getHealthState()}")
# 斷開連接
disconnect()
將腳本保存為monitor_health.py
,通過wlst.sh monitor_health.py
運行即可。
weblogic_exporter
(WebLogic專用指標導出器)將WebLogic性能指標轉換為Prometheus可采集的格式;通過Shell或Python腳本調用WebLogic的命令行工具或API,實現定制化監控。示例(Shell腳本監控服務器狀態):
#!/bin/bash
# 定義WebLogic服務器信息
URL="t3://localhost:7001"
USER="weblogic"
PASSWORD="welcome1"
# 執行status.sh腳本獲取服務器狀態
STATUS=$(/path/to/weblogic/bin/status.sh -u $USER -p $PASSWORD -h $(hostname -i))
# 判斷狀態是否正常
if echo "$STATUS" | grep -q "RUNNING"; then
echo "WebLogic Server is RUNNING."
else
echo "ERROR: WebLogic Server is not running!" | mail -s "WebLogic Server Alert" admin@example.com
fi
將腳本添加到crontab
中定期執行(如每5分鐘一次),可實現自動狀態檢查與告警。
以上方法覆蓋了從基礎到高級的監控需求,可根據實際場景選擇單一或組合使用(如用JMX獲取詳細指標+Zabbix實現告警+Grafana可視化)。