温馨提示×

怎样排查centos中weblogic故障

小樊
44
2025-12-29 13:26:41
栏目: 智能运维

CentOS 上 WebLogic 故障排查实操手册

一 快速定位与通用检查

  • 确认进程与端口:使用 ps、top 确认 java 进程是否存在;用 ss 或 netstat 检查 7001(默认管理端口)是否监听,示例:ss -tulpen | grep 7001。若端口被占用,释放或调整 config.xml 的 ListenPort。
  • 查看系统资源:用 free -m、df -h 检查内存磁盘;iostat -x 1 检查磁盘 IO;必要时用 top/vmstat 观察 CPU 与负载。
  • 防火墙与安全组:在 firewalld 放行端口,示例:firewall-cmd --zone=public --add-port=7001/tcp --permanent && firewall-cmd --reload;云主机需同步安全组规则。
  • 控制台可达性:浏览器访问 http://服务器IP:7001/console 验证管理控制台是否可用。
  • 快速重启与输出:进入域目录执行 nohup ./startWebLogic.sh > nohup.out 2>&1 &,便于事后分析启动日志。

二 日志分析与定位

  • 日志位置与用途:
    • 服务器日志:$DOMAIN_HOME/servers//logs/.log(启动/关闭、运行异常、部署事件)
    • 域日志:$DOMAIN_HOME/servers/AdminServer/logs/.log(域内重要事件汇总)
    • HTTP 访问日志:$DOMAIN_HOME/servers//logs/access.log(请求行、状态码、字节数)
  • 常用检索:
    • 实时跟踪:tail -f $DOMAIN_HOME/servers/AdminServer/logs/AdminServer.log
    • 错误关键字:grep -i “ERROR|Exception” server.log | tail -50
    • 时间窗检索:sed -n ‘/2025-11-14 10:/,/2025-11-14 11:/p’ server.log
    • 访问异常统计:awk ‘{s[$9]++} END {for(i in s) print i,s[i]}’ access.log | sort -nr
  • 控制台与 WLST:控制台路径“环境 → 服务器 → 日志记录”可在线调整日志级别与输出;WLST 可远程查看日志 MBean,示例:connect(‘weblogic’,‘密码’,‘t3://localhost:7001’);cd(‘/Servers/AdminServer/Log/AdminServer’);ls()。

三 常见故障场景与修复对照表

症状 快速检查 修复建议
访问控制台失败 ss -ltnp grep 7001;进程是否存活;防火墙/安全组是否放行
启动极慢或卡在初始化 日志长时间无进展 securerandom.source 改为 file:/dev/./urandom 以加速熵源初始化
“Could not obtain the localhost address” hostname 解析 检查 /etc/hosts/etc/hostname,确保本机名可解析到有效 IP
端口被占用 ss -ltnp grep 7001;kill 旧进程或调整 ListenPort
无法获取文件锁 .lok lsof grep .lok;确认无残留进程后删除锁文件再启
节点管理器无法启动(Invalid state file format) 查看 nodemanager.log 删除 nodemanager//data/*.state 后重启 NM
受管服务器无法启动(WLS_DIAGNOSTICS*.DAT 异常) 查看 SERVER.log 删除 servers//data/store/diagnostics/WLS_DIAGNOSTICS.DAT* 后启动
JDBC 连接失败 控制台测试连接 校验 JDBC URL/驱动/账号;检查数据库与监听可达性;优化连接池参数
部署/脚本执行超时 控制台是否有待激活变更 登录控制台激活或回退变更;必要时释放编辑锁
认证失败(boot.properties 或控制台) 核对凭据文件与账号 servers/AdminServer/security/boot.properties 写入正确用户名/密码(首次启动后会被加密)

四 JVM 与线程挂起诊断

  • 获取进程号:ps -ef | grep weblogic(或 grep java)。
  • 堆与 GC:jstat -gcutil 1000 10 观察 YGC/YGCT/FGC/FGCT;必要时开启 -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps 获取 GC 细节。
  • OOM 取证:在启动参数加入 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path/dump.hprof;用 jmap -heap 查看堆概要;用 jstack -l 抓取线程栈。
  • 线程与死锁:登录控制台“监视 → 线程”查看执行队列与阻塞线程;或用 jstack 导出线程栈分析是否存在死锁/长事务/资源等待
  • 临时提升日志级别:在控制台或 WLST 将相关模块日志级别调至 DEBUG,复现后回落,避免日志洪泛。

五 性能瓶颈与系统调优要点

  • 操作系统与网络:合理设置 文件描述符上限(ulimit -n)TCP/IP 参数;必要时优化 MTU/队列 等网络参数以减少连接开销与 TIME_WAIT 堆积。
  • JVM 与内存:结合容量规划设置 -Xms/-Xmx,避免频繁 Full GC;根据负载选择并调优 垃圾回收器 与新生代/老年代比例。
  • WebLogic 参数:依据 CPU 与并发量调整线程池连接池;减少频繁标准输出/日志带来的 I/O 压力;按需启用本地 I/O 等特性。
  • 数据库与 JDBC:优化 连接池大小、超时、验证查询;检查连接泄漏;对 SQL/索引/事务进行针对性优化,降低数据库成为瓶颈的概率。
  • 应用层优化:使用 性能分析工具(如 JProbe/OptimizeIt)定位热点;减少会话持久化开销,优先 In-Memory Replication;精简会话数据、优化 JDBC 调用与对象生命周期管理。

0