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(日志路径、关键命令、恢复步骤),定期演练。