温馨提示×

centos上weblogic的故障排查方法有哪些

小樊
38
2025-12-09 21:39:39
栏目: 智能运维

CentOS 上 WebLogic 故障排查方法

一 快速定位流程

  • 明确症状:是无法启动控制台访问慢/卡端口访问失败应用报连接异常,还是频繁重启/宕机
  • 查看服务状态与端口:确认进程在跑、监听端口正确。示例:ps -ef | grep weblogicnetstat -tulpen | grep -E '7001|7002|5556'
  • 第一时间看日志:优先检查 DOMAIN_HOME/servers/server_name/logs 下的 server.log、AdminServer.out、nodemanager.log,从最近的错误堆栈定位模块与原因。
  • 做最小化验证:本机 curl http://localhost:7001/console 与远程 curl -vk https://host:7002/console 对比,区分网络与应用层问题。
  • 复核变更:最近是否调整了JDK版本启动用户防火墙/SELinux数据源/连接池Node Manager 配置。

二 常见故障与处理要点

症状 快速检查 处理要点
启动失败或反复重启 server.log 报异常;目录存在锁文件 删除锁文件:rm -f DOMAIN_HOME/servers/*/tmp/*.lok;必要时清理异常残留进程后再启
控制台访问慢或卡在登录后 登录后长时间无响应 调整 JVM 熵源:$JAVA_HOME/jre/lib/security/java.security 中设置 securerandom.source=file:/dev/./urandom
启动极慢且无明显报错 诊断目录数据异常大 清理 data/diagnostics 下大文件(如 WLS_DIAGNOSTICS*.DAT),并在控制台降低 WLDF 采集级别
无法访问 http://host:7001/console 端口未监听或被占用 netstat 查占用;修改 config.xmlListenPort 或释放占用进程
Node Manager 启动失败 nodemanager.log 报状态文件格式错误 删除 DOMAIN_HOME/servers/servername/data/nodemanager/*.state 后重启 NM
数据库连接失败/连接池耗尽 应用报连接超时/获取连接失败 核查 JDBC URL、驱动、账号权限;检查连接池 最大连接数/超时/验证测试;确认数据库网络与防火墙可达
认证与启动身份异常 启动日志报 Authentication denied: Boot identity not valid 更新 boot.properties(明文)后重启,首次会自动加密;必要时按官方流程重置管理密码
OutOfMemoryError server.log 或 stdout 出现 OOM 区分 Java 堆 OOM本机 OOM;采集 GC 日志/堆转储 分析;合理设置 -Xms/-Xmx,排查内存泄漏与线程/连接泄漏

三 日志与诊断信息收集

  • WebLogic 日志:重点关注 server.log、AdminServer.out、access.log,从时间戳与堆栈定位模块(如 JDBC、JMS、EJB、WorkManager)。
  • 启动过程日志:使用 tail -f startWebLogic.log 观察启动阶段卡点与报错。
  • 系统侧日志:使用 journalctl -xe/var/log/messages/var/log/secure 排查系统资源、权限、SELinux、PAM、防火墙等引发的间接问题。
  • JVM 诊断:开启 -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:,必要时采集 heap dump 并用 Eclipse MAT 分析泄漏根因。
  • WLDF 与诊断数据:若启动慢或异常,检查 WLDF 采集量data/diagnostics 目录大小,必要时降低采集级别或清理历史数据。

四 网络与系统层面的排查

  • 连通性:pingtraceroutecurl -I 验证到数据库与应用前端/后端的路径与返回码。
  • 端口与监听:ss -lntp | grep -E '7001|7002|5556',确认监听地址为 0.0.0.0(如需远程访问),而非仅 127.0.0.1。
  • 防火墙与 SELinux:firewall-cmd --list-allgetenforce,按需放行 7001/7002/5556 等端口或临时置 SELINUX=permissive 验证。
  • DNS 与解析:nslookup/dig 确认域名解析正确,避免因解析慢导致控制台/应用初始化延迟。
  • 资源与限制:free -mdf -hulimit -aps -o pid,vsz,comm -p <WLS_PID> 检查内存、磁盘、句柄与虚拟内存是否受限。

五 性能与稳定性优化建议

  • JVM 与熵源:为减少控制台/首次访问的随机源阻塞,设置 securerandom.source=file:/dev/./urandom
  • 内存与 GC:结合负载设置 -Xms/-Xmx,开启并定期分析 GC 日志;出现 OOM 时采集 heap dump 定位对象泄漏或配置不足。
  • 连接池与数据源:合理设置 Initial/Max Capacity、Connection Timeout、Test Connections on Reserve/Create/Release,并开启有效性测试,防止连接泄漏与“池耗尽”。
  • WLDF 采集:生产环境避免过高的 WLDF 诊断级别 与过大的 diagnostics 数据,防止启动/运行期 I/O 与内存压力。
  • 线程与 WorkManager:结合并发量调优 Execute Threads 与队列,避免排队与线程饥饿。
  • 变更与回滚:任何 JDK/驱动/补丁/配置 变更先在测试环境验证,保留回滚方案;变更窗口内加强监控与日志留存。

0