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等关键日志文件,便于后续审计与问题回溯。