温馨提示×

Linux WebLogic日志分析方法

小樊
43
2025-12-20 10:31:28
栏目: 智能运维

Linux WebLogic日志分析方法

一 日志类型与存放路径

  • 服务器日志 server.log:记录启动/关闭异常堆栈、模块初始化等,路径通常为:$MW_HOME/user_projects/domains/<domain_name>/servers/<server_name>/logs/<server_name>.log
  • 域日志 domain.log:汇总域内各服务器的重要事件,路径通常为:$MW_HOME/user_projects/domains/<domain_name>/servers/<ADMIN_SERVER_NAME>/logs/<DOMAIN_NAME>.log
  • HTTP访问日志 access.log:记录客户端IP时间请求URI状态码响应大小等,路径通常为:$MW_HOME/user_projects/domains/<domain_name>/servers/<server_name>/logs/access.log
  • 标准输出日志 server.out/nohup.out:记录标准输出/错误输出,常用于排查启动期问题,路径通常在域目录或启动脚本同级的nohup.outserver.out
  • 诊断日志 diagnostic.log(可选):用于诊断/调试信息收集,具体路径与是否启用相关。
  • 版本差异提示:WebLogic 8.x与**9+**目录结构存在差异,9+采用域/服务器两级目录;8.x部分日志可能直接在域根目录。以上路径与分类适用于Linux环境的WebLogic。

二 日志格式与关键字段

  • 服务器日志格式(带“####”前缀):
    ####<时间戳> <严重级别> <子系统> <计算机名> <服务器名> <线程ID> <用户ID> <事务ID> <诊断上下文ID> <原始时间值> <消息ID> <消息文本>
    示例:
    ####<Sept 22, 2004 10:46:51 AM EST>
    <> <> <1080575211904>
  • 标准I/O格式(无“####”前缀):
    <时间戳> <严重级别> <子系统> <消息ID> <消息文本>
  • 严重级别顺序(由低到高):TRACE < DEBUG < INFO < NOTICE < WARNING < ERROR < CRITICAL < ALERT < EMERGENCY
  • 域日志特性:默认仅转发NOTICE及以上级别;域日志中的时间戳为发出消息的服务器时间;消息到达即写入,因此不一定按时间戳排序;与管理服务器短暂失联时,消息会本地缓冲并在重连后补发

三 常用Linux命令与快速定位

  • 实时查看与跟踪:
    • 实时跟踪:tail -f server.log
    • 查看末尾N行:tail -n 200 server.log
    • 从第N行开始:tail -n +200 server.log
  • 关键字检索与上下文:
    • 全量检索:cat server.log | grep “ERROR”
    • 显示匹配行及前后N行:grep -C 10 “OutOfMemoryError” server.log
    • 显示匹配行及前N行/后N行:grep -B 10/-A 10 “NullPointerException” server.log
    • 带行号:cat -n server.log | grep -n “SEVERE”
  • 按时间窗口筛选(示例:2025-05-16):
    • 提取含“error”的行并筛选日期:awk ‘/error/ {print $1, $2, $3}’ server.log | grep “2025-05-16”
  • 统计与排查:
    • 统计错误数:grep -c “ERROR” server.log
    • 按小时统计访问量与状态码分布:awk ‘{print $4}’ access.log | cut -d: -f1 | sort | uniq -cawk ‘{print $9}’ access.log | sort | uniq -c
  • 远程/脚本化查看:
    • 管理控制台:登录控制台在日志页查看/导出。
    • WLST示例:connect(‘weblogic’,‘password’,‘t3://localhost:7001’)cd(‘/Servers/server_name/Log/server_name’)print(ls())

四 典型故障与日志特征对照

故障场景 常见日志特征 快速处置要点
启动失败,无法获取localhost地址 出现BEA-000386,伴随java.lang.AssertionError: Could not obtain the localhost addressUnknownHostException 检查**/etc/hosts**是否包含本机IP与主机名映射,例如:127.0.0.1 localhost 192.168.101.2 weblogic1
Managed Server注册/下发配置失败 出现BEA-141196,提示无法更新配置文件或下载文件异常 核对域安全文件一致性,必要时将管理域的SerializedSystemIni.dat同步到受管服务器对应目录后重启
启动认证失败 出现BEA-090402Authentication denied: Boot identity not valid 更新boot.properties中的用户名/密码,首次使用将自动加密
JVM内存问题 出现OutOfMemoryError: Java heap space / PermGen spaceGC overhead limit exceeded 调整JVM参数:如**-Xms/-Xmx**(堆),Java 8+关注Metaspace;分析对象生命周期与GC日志,排查内存泄漏
HTTP 404/500增多 access.log中大量404/500,对应时间段5xx上升 结合应用与网关日志定位资源缺失/后端异常,必要时回滚近期发布或修复路由/权限配置
以上对照基于常见生产报错与处置经验,便于快速定位根因。

五 日志轮转与集中化分析

  • 日志轮转与归档:使用logrotate按日/大小切分并压缩,保留策略建议7–30天;示例配置片段:
    /opt/weblogic/…/logs/*.log { daily rotate 7 compress missingok copytruncate delaycompress notifempty }
  • 集中化与可视化:
    • 收集与检索:ELK(Elasticsearch/Logstash/Kibana)SplunkGraylog统一采集、索引与告警。
    • Web访问分析:GoAccess生成HTML/JSON/CSV报告,洞察请求数响应时间错误率等关键指标。
  • 监控关键指标:关注请求数/并发5xx/4xx比例JVM堆/非堆GC次数与停顿磁盘IO/空间线程池队列等,结合阈值告警。

0