Debian上WebLogic日志分析實用技巧
在Debian系統中,WebLogic日志的默認存儲路徑通常為域目錄下的servers/<server_name>/logs目錄(如/u01/app/weblogic/domain_name/servers/AdminServer/logs/)。核心日志文件包括:
使用tail -f命令實時輸出日志文件的新增內容,便于快速捕捉異常事件(如服務器崩潰、應用報錯):
tail -f /u01/app/weblogic/domain_name/servers/AdminServer/logs/server.log
通過grep命令篩選包含特定關鍵字的日志行(如“ERROR”“Exception”“BEA-”開頭的WebLogic錯誤碼),快速定位問題根源:
grep -i "ERROR" /u01/app/weblogic/domain_name/servers/AdminServer/logs/server.log
grep "BEA-" /u01/app/weblogic/domain_name/servers/AdminServer/logs/server.log
結合awk、sort、uniq等命令對日志進行統計分析(如按錯誤類型統計出現次數、提取時間戳):
# 統計ERROR出現的次數
grep -c "ERROR" /u01/app/weblogic/domain_name/servers/AdminServer/logs/server.log
# 提取時間戳和錯誤信息,并按錯誤類型排序
awk '/ERROR/ {print $1, $2, $3, $0}' /u01/app/weblogic/domain_name/servers/AdminServer/logs/server.log | sort | uniq -c | sort -nr
使用logrotate工具自動管理日志文件(如按天分割、保留7天、壓縮舊日志),避免日志文件過大占用磁盤空間。創建/etc/logrotate.d/weblogic配置文件,內容如下:
/u01/app/weblogic/domain_name/logs/*.log {
daily
rotate 7
missingok
notifempty
compress
delaycompress
sharedscripts
}
若WebLogic無法啟動,優先查看server.log中的BEA錯誤碼(如BEA-000386表示服務器子系統失?。?,結合錯誤描述定位原因(如網絡配置錯誤、主機名解析失?。?。例如,若日志中出現“Could not obtain the localhost address”,需檢查/etc/hosts文件是否配置了本機IP與主機名的映射關系。
當出現java.lang.OutOfMemoryError(如PermGen space、Heap Space)時,通過grep篩選內存溢出日志,調整啟動腳本(startWebLogic.sh)中的內存參數(如-Xms、-Xmx、-XX:PermSize):
grep -i "outofmemoryerror" /u01/app/weblogic/domain_name/servers/AdminServer/logs/server.log
通過diagnostic.log分析JDBC連接池、JMS隊列的性能指標(如連接等待時間、消息積壓數),或使用top、htop命令查看系統資源使用率(CPU、內存),定位性能瓶頸。
對于大規模WebLogic集群,建議使用**ELK Stack(Elasticsearch+Logstash+Kibana)**實現日志的集中化收集、存儲與分析:
cron作業定期刪除超過30天的日志文件,釋放磁盤空間(如find /u01/app/weblogic/domain_name/servers/*/logs/*.log -mtime +30 -exec rm -f {} \;);logging.properties文件,降低不必要的日志輸出(如將DEBUG級別調整為INFO),減少日志體積;server.log、diagnostic.log等關鍵日志文件,便于后續審計與問題回溯。