温馨提示×

Debian下WebLogic故障排查方法

小樊
34
2025-12-21 02:50:44
栏目: 智能运维

Debian下WebLogic故障排查方法

一 快速定位流程

  • 查看系统层面:使用tail -f /var/log/syslogjournalctl -xedmesg确认系统级错误、OOM、磁盘与网络异常。
  • 检查进程与资源:用ps aux | grep weblogictop/htop定位占用高的Java进程;结合free -miostat判断内存与I/O压力。
  • 验证网络连通:对管理端口(默认7001)执行telnet 目标IP 7001nc -vz 目标IP 7001;必要时检查本机与云安全组/防火墙策略。
  • 服务状态与重启:若已配置为系统服务,用systemctl status weblogic查看状态与最近日志;异常时先systemctl restart weblogic再观察。
  • 定位WebLogic日志:进入**$DOMAIN_HOME/logs**,优先查看server.logaccess.log与域日志,结合tail -fgrep -i error快速筛查异常堆栈与错误码。
  • 配置与控制台:核对**$DOMAIN_HOME/config/config.xml关键配置;通过WebLogic管理控制台**检查应用部署状态、数据源与健康情况。

二 日志与关键文件位置

  • 系统日志:/var/log/syslog(Debian常用系统日志);journalctl用于按单元与时间段检索。
  • WebLogic日志:
    • 服务器日志:$DOMAIN_HOME/servers//logs/.log
    • 访问日志:$DOMAIN_HOME/servers//logs/access.log
    • 域日志:$DOMAIN_HOME/servers//logs/.log
  • 启动输出:若以脚本方式启动,关注nohup.out或启动脚本重定向的日志。
  • 日志分析建议:使用tail -f实时跟踪、grep关键字过滤、awk按时间段统计错误;对访问日志可结合GoAccess做可视化分析。

三 常见故障与处理要点

  • 端口占用或进程残留:管理端口7001无法访问或启动报端口冲突,先netstat -tulpen | grep 7001确认占用,结束对应PID后重启;必要时检查防火墙/安全组。
  • 文件锁导致无法启动:出现“Unable to obtain file lock”或“Could not get the server file lock”,删除域根目录下的edit.lokconfig.lok,以及servers//tmp/*.lokservers//data/ldap/ldapfiles/EmbeddedLDAP.lok,并清理servers//data/store/下的.DAT文件后再启。
  • 内存不足与GC异常:出现“There is insufficient memory for the Java Runtime Environment to continue”或OutOfMemoryError,优先检查系统ulimit -u/-n、物理内存与交换分区;必要时调大JVM堆(如**-Xms/-Xmx**)并优化应用内存使用。
  • 数据源与连接池:出现“No resources currently available in pool”,在控制台适当增大Initial/Maximum Capacity,并检查数据库连通性与网络延迟。
  • 类加载冲突:出现NoSuchMethodError/NoClassDefFoundError,在weblogic.xml中使用**优先加载应用依赖(如javax.persistence.、org.apache.commons.、com.fasterxml.jackson.*、javassist**),避免与WebLogic自带模块冲突。
  • Admin控制台卡顿或节点异常:多与CPU/内存高、集群节点繁忙有关;采集线程转储GC日志,结合应用慢查询/慢接口定位根因。

四 诊断与优化工具

  • 系统诊断:
    • 资源监控:top/htop、free -m、iostat -x 1、sar -r(内存与I/O趋势)。
    • 日志检索:journalctl -u weblogic.service -bgrep/awk/sed做关键字与时段统计。
  • JVM诊断:开启**-verbose:class观察类加载;采集线程dump/堆dump分析死锁、阻塞与内存泄漏;必要时调整GC策略**与堆大小。
  • 日志平台:使用Logstash/Graylog集中收集与告警,或GoAccessaccess.log做实时分析与报表。

五 最小复现与变更管理建议

  • 变更留痕:对config.xmlsetDomainEnv.sh、数据源与启动脚本的修改,保留备份变更单,变更后先灰度观察。
  • 有序重启:先停应用再停节点,避免异常回滚;重启后用tail -f观察server.log直至“Server state changed to RUNNING”。
  • 信息收集清单:准备server.log/access.log/GC日志、线程dump、ulimit与内核参数、网络与防火墙策略、JDK版本与启动参数,便于快速定位与复盘。

0