CentOS 上 WebLogic 日志分析实操指南
一 日志类型与默认路径
- 服务器日志 Server.log:记录 WebLogic Server 启动、运行、关闭及异常,路径通常为:$DOMAIN_HOME/servers//logs/.log。
- HTTP 访问日志 access.log:记录 HTTP/HTTPS 请求明细,路径通常为:$DOMAIN_HOME/servers//logs/access.log。
- 域日志 Domain.log:记录 域内各受管 Server 上报的关键事件,路径通常为:$DOMAIN_HOME/servers//logs/.log。
- 启动脚本输出:如使用 nohup 启动,标准输出/错误会写入 nohup.out 或自定义的 stdout.log。
- 说明:常见目录名如 AdminServer、base_domain 等会随安装与域配置不同而变化,请以实际域目录为准。
二 快速定位与常用查看命令
- 进入域日志目录并实时查看:
- cd $DOMAIN_HOME/servers/AdminServer/logs
- tail -f AdminServer.log
- 过滤关键字(如错误、异常堆栈):
- grep -i “ERROR|Exception” AdminServer.log | less
- 按时间窗口检索(示例:2025-05-16 的 ERROR):
- awk ‘/ERROR/ {print $1, $2, $3}’ AdminServer.log | grep “2025-05-16”
- 查看访问日志的 4xx/5xx:
- awk ‘$9 ~ /^[45][0-9]{2}$/ {print $0}’ access.log | head
- 查看启动过程输出:
- tail -f nohup.out 或 tail -f stdout.log
- 提示:若不熟悉变量,可先 echo $DOMAIN_HOME 确认域根目录。
三 日志格式与关键字段解读
- Server/Domain 日志行示例:
- ####<Mar 4, 2019 9:42:07 AM CST> <Warning> <RMI> <localhost.localdomain> <AdminServer> … <BEA-080003>
- 关键字段:时间戳、严重级别(如 Warning/Error)、子系统(如 RMI)、主机名、服务器名、线程、消息ID(如 BEA-xxxx)、消息文本。
- HTTP 访问日志行示例:
- 172.16.112.1 - - [04/Mar/2019:14:44:43 +0800] “GET /untitled_war/ HTTP/1.1” 200 98
- 关键字段:客户端IP、时间、请求行(方法、URI、协议)、状态码、响应字节数。
- 提示:Domain 日志的消息可能并非严格按时间戳顺序写入,因缓冲与转发机制导致到达顺序与产生顺序不一致。
四 日志轮转与保留策略
- 使用内置滚动:在 WebLogic 控制台 的服务器 Logging 配置中设置 Rotation Type(按大小或按时间)与保留数量,常见为 按大小 500KB 或 按时间 24 小时 滚动,并配合命名模板(如 %yyyy%%MM%%dd%%hh%_%mm%)。
- 使用系统级 logrotate(推荐与内置滚动二选一或叠加):
- 新建配置 /etc/logrotate.d/weblogic:
- /u01/app/weblogic/base_domain/servers/AdminServer/logs/*.log {
- daily
- rotate 7
- missingok
- notifempty
- compress
- create 0644 weblogic weblogic
- }
- 作用:每天轮转、保留 7 天、压缩归档、自动创建新文件并设置权限。
五 集中化分析与安全审计建议
- 集中化收集与可视化:将 WebLogic 日志 通过 rsyslog/syslog-ng 发送至 ELK(Elasticsearch, Logstash, Kibana) 或 Graylog,实现检索、可视化与告警。
- 访问日志分析:对 access.log 使用 GoAccess 生成 HTML/JSON/CSV 报告,快速洞察 Top URL、状态码分布、带宽与访客 等指标。
- 性能与告警联动:结合 JMX 与 Zabbix/Prometheus(如 weblogic-monitoring-exporter)监控 线程池、JVM、HTTP 等指标,并与日志告警形成闭环。
- 安全审计:启用 Auditd 记录关键系统调用,配合日志审计策略追踪敏感操作。