温馨提示×

Debian上WebLogic故障排查步骤

小樊
43
2025-12-07 05:52:58
栏目: 智能运维

Debian上WebLogic故障排查步骤

一 快速定位与系统层面检查

  • 查看系统日志与内核消息:使用命令 tail -f /var/log/syslog、journalctl -xe、dmesg 观察启动、服务、OOM、磁盘等异常。
  • 检查进程与资源:ps -ef | grep java、top/htop、free -m、df -h,确认 Java 进程是否存在、CPU/内存/磁盘是否紧张。
  • 网络连通与端口可达:ping 网关/DNS,telnet/nc -zv 管理端口(默认 7001)或应用端口,确认监听与防火墙策略。
  • 文件系统与重启:异常关机后按需执行 fsck;必要时使用 systemctl restart weblogic 恢复服务。
  • 变更风险控制:操作前备份域目录与环境变量,变更后保留回滚方案。

二 WebLogic日志与诊断信息采集

  • 定位日志目录:WebLogic 主要日志位于 $DOMAIN_HOME/logs,关键文件包括 server.log、access.log、diagnostic.log;使用 tail -f、grep 实时检索关键字(如 ERROR)。
  • 管理控制台检查:通过 Admin Console 查看应用部署状态、数据源、线程与服务器健康度。
  • 日志轮转与集中:使用 logrotate 管理历史日志;必要时接入 ELK/Splunk 做聚合与告警。
  • 诊断信息收集(卡死/死锁/性能异常时):
    • 启动时开启 -verbose:gc 并将 stdout/stderr 重定向到文件;
    • 问题复现期间多次获取线程转储:kill -3 或在控制台触发;
    • 将包含多次线程转储与GC日志的诊断包压缩归档,便于分析或提交支持。

三 常见故障场景与处理要点

  • 启动失败或反复重启:优先查看 server.log 的异常栈与配置校验(如 config.xml、JDK版本、环境变量);若为资源不足,结合 top/free/df 与 GC 日志判断内存/磁盘压力。
  • 管理端口不可达:确认进程存活、监听地址为 0.0.0.0 或正确网卡、以及云安全组/iptables 放行 7001
  • 集群“卡住/死锁”:按上节步骤收集含多次线程转储的诊断日志,关注阻塞线程与锁竞争。
  • 应用部署与类加载冲突:
    • 出现 NoSuchMethodError/NoClassDefFoundError 等多为依赖冲突,优先检查 WEB-INF/lib 与 WebLogic 模块版本;
    • 在应用的 weblogic.xml 中使用 指定优先加载的包前缀;
    • 数据源连不通时核对 IP/端口/SID/账号/驱动 与防火墙策略。
  • 会话与集群配置:若未启用集群却配置了会话复制,将 persistent-store-type 调整为 memory

四 一键排查命令清单

  • 查看系统与服务:tail -f /var/log/syslog;journalctl -u weblogic -xe;systemctl status weblogic
  • 进程与资源:ps -ef | grep java;top/htop;free -m;df -h
  • 网络与端口:ping 目标;ss -lntp | grep 7001;nc -zv 主机 7001
  • WebLogic日志:tail -f $DOMAIN_HOME/logs/server.log;grep -i error server.log
  • 线程与GC:kill -3 (多次、间隔采样);启动时追加 -verbose:gc 并重定向输出以便分析

五 排障后优化与预防

  • 日志治理:配置 logrotate 定期轮转与清理,避免磁盘被占满;关键错误设置告警。
  • 监控与容量:对 CPU/内存/磁盘IO/连接数/GC 建立基线监控与阈值告警,提前识别压力。
  • 变更与回滚:域配置、补丁、驱动与应用的变更走评审与灰度,保留回滚包与回滚步骤。
  • 文档与演练:沉淀常见故障的 Runbook(日志路径、关键命令、恢复步骤),定期演练。

0