溫馨提示×

centos weblogic出現故障如何排查

小樊
46
2025-10-13 11:43:18
欄目: 智能運維

一、優先收集故障基礎信息
故障排查的第一步是明確故障現象,可通過以下方式快速收集關鍵信息:

  • 服務狀態檢查:使用systemctl status weblogic命令確認WebLogic服務是否處于active (running)狀態;若未運行,嘗試systemctl start weblogic啟動并觀察啟動日志。
  • 日志分析:WebLogic的核心日志位于$DOMAIN_HOME/servers/<server_name>/logs/目錄下(如server.log、diagnostics.log),使用tail -f server.log實時查看最新錯誤信息,或grep -i "error\|exception" server.log過濾關鍵錯誤關鍵詞(如OutOfMemoryError、ClassNotFoundException)。
  • 端口連通性測試:使用netstat -tulnp | grep <weblogic_port>(如7001、5556)檢查WebLogic監聽端口是否處于LISTEN狀態;若端口未監聽,可能是配置錯誤或進程未啟動;若端口被占用,通過lsof -i:<port>找到占用進程并終止(kill -9 <pid>)。

二、常見故障類型及針對性解決步驟

1. 啟動失?。o法啟動或啟動后立即退出)

  • 權限問題:確保WebLogic運行用戶(如weblogic)對$DOMAIN_HOME及子目錄有讀寫權限,使用chown -R weblogic:bea $DOMAIN_HOME修復權限;若用root啟動過,需徹底清理殘留進程(ps -ef | grep weblogic | awk '{print $2}' | xargs kill -9)并重新以weblogic用戶啟動。
  • 端口沖突:若啟動日志中出現Address already in use,通過netstat -an | grep <port>找到占用進程,終止沖突進程或修改$DOMAIN_HOME/config/config.xml中的ListenPort(如將7001改為7002),重啟服務。
  • JDK兼容性問題:確認JDK版本與WebLogic版本匹配(如WebLogic 12c需JDK 8+),通過java -version檢查JDK版本;若版本不符,下載并安裝正確版本的JDK,設置JAVA_HOME環境變量(export JAVA_HOME=/usr/java/jdk1.8.0_391)并更新$DOMAIN_HOME/bin/setDomainEnv.sh中的JAVA_HOME路徑。
  • 內存不足:若啟動日志中出現OutOfMemoryError,調整JVM內存參數(-Xms初始堆大小、-Xmx最大堆大?。?,建議設置為相同值以減少GC頻率(如-Xms1024m -Xmx1024m),修改$DOMAIN_HOME/bin/startWebLogic.sh中的JAVA_OPTIONS參數。

2. 端口無法訪問(控制臺或應用無法訪問)

  • 防火墻攔截:使用firewall-cmd --list-ports檢查防火墻是否開放WebLogic端口(如7001),若未開放,執行firewall-cmd --add-port=7001/tcp --permanent添加規則,然后firewall-cmd --reload生效;若使用iptables,執行iptables -A INPUT -p tcp --dport 7001 -j ACCEPT并保存規則(service iptables save)。
  • 節點管理器問題:若無法通過控制臺訪問受管服務器,檢查節點管理器狀態(systemctl status nodemanager),確保節點管理器運行;若節點管理器日志($DOMAIN_HOME/servers/<server_name>/data/nodemanager/nodemanager.log)中出現Invalid state file format,刪除nodemanager.state文件(rm -f $DOMAIN_HOME/servers/<server_name>/data/nodemanager/nodemanager.state)并重啟節點管理器。

3. 應用程序部署失敗

  • 部署日志分析:查看$DOMAIN_HOME/servers/<server_name>/logs/deployments/目錄下的部署日志(如<app_name>.log),定位部署失敗原因(如DeploymentException、ClassNotFoundException)。
  • 依賴缺失:若日志提示缺少JAR包,將缺失的JAR包放入應用的WEB-INF/lib目錄或WebLogic的lib目錄($DOMAIN_HOME/lib)。
  • 應用配置錯誤:檢查應用的web.xmlweblogic.xml配置文件,確保上下文路徑(context-root)、數據源引用等配置正確;若應用引用了外部數據源,確認數據源已正確配置并啟動。

4. 性能瓶頸(高CPU、高內存、慢響應)

  • 系統資源監控:使用top命令查看CPU使用率(關注%CPU高的進程)、free -h查看內存使用情況(關注available內存)、df -h查看磁盤空間(確保/分區有足夠空間)。
  • WebLogic性能指標:登錄WebLogic控制臺(http://<host>:7001/console),導航至Monitoring -> Performance,查看線程池(ExecuteThreadTotalCPUUsage)、JVM內存(HeapMemoryUsage)、連接池(ExecuteThreadTotalRequests)等指標,若線程池活躍線程數接近最大值(ExecuteThreadMax),調整線程池大?。ㄔ黾?code>ExecuteThreadMax參數);若JVM堆內存使用率超過80%,調整-Xmx參數(如從1024m增加到2048m)。
  • 應用性能分析:使用jstack <pid>獲取線程堆棧,分析是否有線程死鎖(deadlock關鍵詞);使用jmap -histo:live <pid>查看堆內存中的對象分布,定位內存泄漏(如大量byte[]String對象);使用VisualVMJProfiler進行更深入的性能分析(如方法調用耗時、內存分配情況)。

三、后續優化與預防措施

  • 定期備份配置:定期備份$DOMAIN_HOME/config目錄下的配置文件(如config.xml、boot.properties),避免配置丟失。
  • 設置監控告警:使用Prometheus+Grafana搭建WebLogic監控體系,配置CPU、內存、線程池等指標的告警閾值(如CPU使用率超過80%時發送郵件告警),及時發現潛在問題。
  • 日志輪轉:配置日志輪轉(如logrotate),避免日志文件過大占用磁盤空間(如每天生成一個日志文件,保留30天)。
  • 版本升級:定期升級WebLogic到最新補丁版本,修復已知漏洞和性能問題(如WebLogic 14c的最新補丁可能包含性能優化)。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女