首先明確故障范圍,分為三類:硬件問題(CPU、內存、磁盤空間不足)、軟件問題(WebLogic配置錯誤、應用程序代碼缺陷、依賴庫缺失)、網絡問題(端口沖突、網絡連接中斷)。這一步有助于快速定位排查方向。
日志是故障排查的核心依據,需檢查以下日志:
DOMAIN_HOME/servers/server_name/logs目錄下,重點關注AdminServer.out、server_name.out、server_name.log(記錄啟動錯誤、應用部署異常、請求處理失敗等);/var/log/messages或/var/log/syslog(記錄系統級錯誤,如磁盤滿、內存溢出)。grep命令快速查找關鍵字(如ERROR、Exception),定位具體錯誤信息。ps -ef | grep weblogic確認WebLogic進程是否運行;systemctl status weblogic(若配置為systemd服務)檢查服務狀態;systemctl start weblogic)并觀察啟動日志。netstat -tulnp | grep <端口號>(如7001、5556)或lsof -i :<端口號>,確認WebLogic使用的端口未被其他應用占用;ping(檢查網絡可達性)、traceroute(追蹤路由路徑)、telnet <IP> <端口>(測試端口連通性);iptables -L(CentOS 7前)或firewall-cmd --list-all(CentOS 7+)檢查防火墻規則,確保WebLogic端口開放。重點檢查以下配置文件的正確性:
DOMAIN_HOME/config),確認監聽端口、集群配置、數據源配置無誤;DOMAIN_HOME/servers/AdminServer/security),確保用戶名、密碼正確且文件權限為600(僅owner可讀寫);DOMAIN_HOME/bin),確認JAVA_HOME路徑正確、JVM內存參數(-Xms、-Xmx)設置合理。free -m查看內存剩余量,若內存不足,調整setDomainEnv.sh中的JVM內存參數(如-Xms2048m -Xmx4096m);top或htop查看CPU占用率,若某進程占用過高,可能是應用代碼缺陷或線程池配置不當;df -h查看磁盤剩余空間,若/或DOMAIN_HOME所在分區空間不足,清理無用文件(如日志、臨時文件)。java.lang.OutOfMemoryError,使用jmap -heap <pid>查看堆內存使用情況,jstack <pid>獲取線程轉儲,分析內存泄漏點;使用jstat -gcutil <pid> 1000 10(每1秒輸出1次,共10次)監控GC情況,確認GC頻率是否過高;setDomainEnv.sh中添加-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path/to/dump.hprof,崩潰時自動生成堆轉儲文件,便于后續分析。jstack <pid>獲取線程轉儲,分析線程狀態(如BLOCKED、WAITING),定位死鎖或線程阻塞點;Domainname→Servers→servername→Monitoring→Threads)查看線程池使用情況,調整ExecuteThreadTotal(總線程數)參數(建議每個CPU核心分配25-50個線程)。DOMAIN_HOME/servers/AdminServer/tmp、DOMAIN_HOME/servers/AdminServer/cache目錄下的臨時文件,重新上傳并部署WAR/EAR包;WEB-INF/lib目錄下,無版本沖突或缺失。-Xms、-Xmx、-XX:NewRatio、-XX:SurvivorRatio),選擇合適的垃圾回收器(如G1GC);InitialCapacity、MaxCapacity)、線程池大小、緩存設置(如weblogic.cache.Enabled);/etc/security/limits.conf增加文件描述符限制(如weblogic soft nofile 65535、weblogic hard nofile 65535),優化TCP參數(如net.ipv4.tcp_tw_reuse=1、net.ipv4.tcp_fin_timeout=30)。