1. 日志分析與定位
WebLogic在Ubuntu上的日志是故障排查的核心依據,主要分布在域目錄的logs子文件夾中(如$DOMAIN_HOME/logs/server.log記錄服務器運行信息,access.log記錄訪問請求)??墒褂靡韵旅罡咝Р榭矗?/p>
tail -f server.log:動態跟蹤最新日志,及時捕捉錯誤發生時間點;grep "ERROR" server.log:篩選包含“ERROR”的日志條目,快速定位關鍵錯誤;less server.log:分頁查看完整日志,便于回溯問題上下文。2. 端口沖突排查
WebLogic依賴特定端口(默認7001為管理端口、7002為監聽端口),若端口被占用會導致啟動失敗或無法訪問。通過以下命令檢查端口占用情況:
netstat -tulnp | grep <端口號>:查看端口對應的進程ID(PID);kill -9 <PID>:終止占用端口的進程(需確認進程無關鍵用途);$DOMAIN_HOME/config/config.xml)中的端口設置,避免與系統或其他應用沖突。3. JVM內存問題診斷與優化
內存溢出(OOM)是WebLogic常見故障,需通過以下步驟排查:
jstat -gcutil <PID> 1000(每秒刷新一次)監控新生代(Eden、Survivor)、老年代的使用率,若老年代持續接近滿(如>90%),可能存在內存泄漏;startWebLogic.sh中添加-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path/to/dump.hprof,當OOM發生時自動生成堆快照;-Xms512m -Xmx2048m設置初始堆和最大堆),避免設置過大導致Full GC耗時過長。4. 配置文件有效性檢查
WebLogic的配置文件錯誤(如config.xml、setDomainEnv.sh)會導致啟動失敗或功能異常:
xmllint --noout $DOMAIN_HOME/config/config.xml驗證config.xml的語法正確性,避免標簽未閉合、屬性值缺失等問題;setDomainEnv.sh中確認JAVA_HOME指向正確的JDK安裝目錄(如export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64),且JDK版本與WebLogic版本兼容(如WebLogic 12c需JDK 8及以上);config.xml中的<listen-port>、<admin-port>與啟動腳本中的參數一致,避免端口定義沖突。5. 服務狀態與進程驗證
確認WebLogic服務是否正常運行:
ps -ef | grep weblogic查找WebLogic相關進程(如weblogic.Server),若無進程說明服務未啟動;nohup ./startWebLogic.sh &在后臺啟動,查看nohup.out文件中的輸出信息,確認是否有啟動錯誤(如類加載失敗、數據庫連接失?。?;curl -v http://localhost:7001/console測試管理控制臺是否能正常訪問,若返回“Connection refused”則說明服務未啟動或端口未監聽。6. 系統資源監控與限制
系統資源不足(如內存、文件描述符)會導致WebLogic運行緩慢或崩潰:
top查看CPU使用率(若持續>80%可能導致GC頻繁)、free -h查看內存剩余量(若剩余內存不足,需關閉其他占用內存的應用)、df -h查看磁盤空間(若/分區剩余空間<10%,需清理日志或臨時文件);ulimit -n查看當前限制(默認通常為1024),修改/etc/security/limits.conf添加weblogic soft nofile 65535、weblogic hard nofile 65535(需重新登錄生效),避免因文件描述符耗盡導致連接失敗。7. 網絡與防火墻配置
Ubuntu的防火墻(如ufw)或安全組可能阻止外部訪問WebLogic端口:
sudo ufw status查看防火墻規則,若端口未開放,添加允許規則(如sudo ufw allow 7001/tcp);telnet <WebLogic服務器IP> 7001測試端口是否可達,若無法連接需檢查網絡路由、安全組設置(如云服務器的安全組需放行對應端口)。8. 控制臺登錄慢優化
若登錄WebLogic控制臺緩慢(如首次登錄需幾分鐘),通常是JVM隨機數生成器的問題:
setDomainEnv.sh中添加-Djava.security.egd=file:/dev/./urandom,將隨機數生成器從/dev/random(阻塞型)切換到/dev/./urandom(非阻塞型),顯著提升啟動和登錄速度。