WebLogic在Linux上的故障排查技巧
导读:Linux 上 WebLogic 故障排查实用手册 一 快速定位流程 明确现象与影响范围:是启动失败、响应变慢/卡顿、频繁重启,还是HTTP 5xx/4xx 激增。 先看关键日志:优先查看 $DOMAIN_HOME/servers//lo...
Linux 上 WebLogic 故障排查实用手册
一 快速定位流程
- 明确现象与影响范围:是启动失败、响应变慢/卡顿、频繁重启,还是HTTP 5xx/4xx 激增。
- 先看关键日志:优先查看 $DOMAIN_HOME/servers//logs/server.log、domain.log、access.log,从最近时间窗抓取 ERROR/Exception 与堆栈。
- 检查端口与进程:确认 7001/7002 等监听端口是否被占用、进程是否残留;必要时清理旧进程后再启。
- 资源与依赖:用 top/free/iostat/ss 检查 CPU/内存/磁盘 IO/连接数;确认 数据库/缓存/消息 等下游依赖健康。
- 配置与版本:核对 config.xml 等配置,确保 JDK 版本与 WebLogic 版本匹配且补丁一致。
- 复现与回退:临时提升日志级别复现问题,定位后及时恢复,避免日志洪泛。
二 日志分析与命令清单
- 常用路径与用途
日志 路径 主要用途 server.log $DOMAIN_HOME/servers//logs/.log 启动/关闭、运行异常、部署事件 domain.log $DOMAIN_HOME/servers//logs/.log 域级事件汇总 access.log $DOMAIN_HOME/servers//logs/access.log HTTP 请求行、状态码、字节数 - 快速命令
- 实时查看:tail -f $DOMAIN_HOME/servers/AdminServer/logs/AdminServer.log
- 关键字筛选:grep -i “error|exception” server.log | tail -50
- 统计 BEA 告警:grep “BEA-” server.log | awk ‘{ print $1,$2,$3,$5} ’ | sort | uniq -c | sort -nr
- Top 10 客户端 IP:awk ‘{ ips[$1]++} END { for(i in ips) print ips[i],i} ’ access.log | sort -nr | head
- 时间窗检索:sed -n ‘/2025-11-14 10:/,/2025-11-14 11:/p’ server.log
- 端口占用:ss -tulpen | grep 7001
- 在线查看/调级(WLST):connect(‘weblogic’,‘密码’,‘t3://localhost:7001’);cd(‘/Servers/AdminServer/Log/AdminServer’);ls()
- 提示:domain.log 可能非严格按时间戳顺序写入,跨服务器时序分析需谨慎。
三 常见故障场景与处置
-
启动失败
- 查看 server.log 的 SEVERE/ERROR 与堆栈;检查 端口冲突(如 7001/7002 被占用,使用 ss/netstat 定位并释放或改端口);确认 JDK 可用(java -version);核对 config.xml 等配置;必要时增大堆内存(如 -Xms256m -Xmx1024m);检查 ulimit -n/-u 等系统资源限制;完全停启后再试。
-
运行期卡顿或响应慢
- 线程与锁:获取 jstack 多次快照,排查 BLOCKED/WAITING 与长调用栈;
- 内存与 GC:结合 jmap/jstat 与堆转储(必要时用 Eclipse MAT/YourKit 分析)识别泄漏或频繁 GC;
- 资源瓶颈:用 top/free/iostat 检查 CPU/内存/IO;用 ss 检查连接数;
- 数据库与连接池:核对 连接池大小/超时/验证查询,排查慢 SQL 与数据库负载;
- 临时提升日志级别复现瓶颈,定位后回落。
-
HTTP 5xx/4xx 激增
- 统计 access.log 状态码分布,关联同一时间窗 server.log 的错误堆栈;
- 检查 线程池/数据源/应用代码 异常,必要时扩容或限流。
四 性能与内存诊断工具
- 系统层:top/free/vmstat/mpstat/iostat/iotop/pidstat/perf 用于识别 CPU 饱和、内存压力、IO 等待、热点函数 等。
- Java 层:jstack(线程)、jmap/jstat(堆与 GC)、VisualVM/JConsole(可视化)、Eclipse MAT/YourKit(堆转储分析)。
- WebLogic 层:WLST 在线查看/调整日志与诊断 MBean;控制台检查 线程池/数据源/部署 状态。
五 运维加固与预防
- 日志轮转与保留:使用 logrotate 管理 server.log/access.log/domain.log,控制单文件大小与保留天数;必要时通过信号触发应用重新打开日志文件。
- 集中化与可视化:用 rsyslog/syslog-ng 转发至远程日志服务器,部署 ELK/Splunk 做解析、索引、仪表盘与告警。
- 资源与健康基线:设定 文件描述符/进程数 下限,监控 磁盘空间/IO/连接数,对 数据库/缓存/消息 建立熔断与超时。
- 变更与回滚:变更前备份 $DOMAIN_HOME/config 与关键日志;补丁升级遵循 OPATCH 流程,异常时可设置 OPATCH_NO_FUSER=TRUE 规避依赖缺失问题(需确认环境安全)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: WebLogic在Linux上的故障排查技巧
本文地址: https://pptw.com/jishu/784024.html
