Linux 下 WebLogic 日志分析实操指南
一 日志位置与类型
- 常见目录结构为:$MW_HOME/user_projects/domains/<domain_name>/servers/<server_name>/logs/。在该目录下,常见文件与作用如下:
- server.log / <server_name>.log:服务器运行日志,记录启动、关闭、异常堆栈等关键信息。
- access.log:HTTP 访问日志,记录客户端 IP、请求 URL、响应状态码、时间等,用于访问分析与性能排查。
- <domain_name>.log(Domain Log):域级日志,汇聚域内各 Server 的重要告警与错误。
- diagnostic.log:诊断日志,包含警告、错误、异常等诊断信息,便于深入排障。
- 说明:不同版本与安装方式路径可能略有差异,但以上类型与相对路径在 WebLogic 9+ 中较为通用。
二 命令行快速定位与统计
- 实时查看最新日志
- 命令:
tail -f $DOMAIN_HOME/servers/<server_name>/logs/server.log
- 关键字检索(含错误堆栈上下文)
- 命令:
grep -n -A5 -B5 "ERROR\|Exception" server.log
- 按时间窗口统计错误数(假设日志时间格式为 yyyy-MM-dd HH:mm:ss)
- 命令:
awk '/ERROR/ {print $1, $2}' server.log | grep "2025-05-16" | wc -l
- 访问日志 Top N URL(状态码 5xx)
- 命令:
awk '$9 ~ /^5[0-9]{2}$/ {print $7}' access.log | sort | uniq -c | sort -nr | head -n 20
- 按线程名聚合慢请求(示例阈值 10000ms)
- 命令:
awk '$NF > 10000 {print $0}' access.log | sort -kNF -nr | head
- 提示:将 $DOMAIN_HOME、<server_name> 替换为实际值;必要时结合
zcat 分析压缩归档日志。
三 日志轮转与保留策略
- 使用内置滚动(WebLogic 控制台或 WLST)
- 在控制台:Environment → Servers → → Logging → Rotation,可配置滚动方式(按大小或时间)与命名模板(如 %yyyy%%MM%%dd%%hh%_%mm%),避免单文件过大。
- 使用 Linux logrotate 集中管理
四 集中化分析与可视化
- 集中采集与检索
- 方案:使用 rsyslog/syslog-ng → Logstash → Elasticsearch → Kibana(ELK) 或 Splunk,统一收集 server.log / access.log / domain.log / diagnostic.log,构建可视化看板与告警。
- HTTP 访问分析
- 工具:GoAccess,对 access.log 生成实时 HTML/JSON/CSV 报告,快速洞察请求量、响应时间、错误率等。
- 审计与合规
- 工具:Auditd 记录关键系统调用与文件访问,配合日志平台进行安全审计与追踪。
五 故障排查与性能瓶颈定位
- 先看“入口”与“全局”
- 步骤:优先检查 access.log 的5xx/4xx 比例与峰值时段;再查看 server.log / domain.log 的ERROR/Exception 与告警;必要时打开或提升 diagnostic.log 级别获取更多线索。
- 联动系统资源与 JVM
- 资源:用
top/vmstat/iostat 排查 CPU、内存、磁盘 I/O 瓶颈;网络用 netstat 检查端口占用与连通性。
- JVM:用
jstack 分析线程阻塞/死锁,用 jmap 检查堆内存与对象分布,配合 GC 日志定位内存泄漏/频繁 GC。
- 配置与依赖
- 核对 数据源连接池、线程池、超时等关键配置;验证数据库性能与网络带宽是否满足峰值需求。