centos中weblogic的故障排查步骤
小樊
35
2025-12-21 18:10:01
CentOS 上 WebLogic 故障排查步骤
一 快速定位流程
- 明确症状:是起不来、访问不了、响应慢,还是报错/异常。
- 查看控制台与日志:优先检查 AdminServer.out、server_name.out、server_name.log,从最近的错误堆栈定位模块与原因。
- 检查端口与连通:确认 7001/7002 等监听端口处于 LISTEN,并排除 firewalld/iptables 拦截。
- 资源与依赖:用 top/vmstat/iostat 看 CPU/内存/磁盘/IO,核对 JDK 版本与 license 是否有效。
- 网络连通:对数据库/外部依赖执行 ping/ telnet/nc,必要时抓包或临时关闭防火墙验证。
- 配置核对:检查 config.xml、setDomainEnv.sh、JDBC 数据源等关键配置是否正确。
二 常见故障与处理要点
- 启动失败或无法获取锁:检查 $DOMAIN_HOME/servers/$SERVER_NAME/tmp/*.lok 是否被占用;若曾被 root 启停导致文件属主异常,使用 chown -R weblogic:weblogic $DOMAIN_HOME 修复后再启。
- 认证失败:出现 SecurityInitializationException/Boot identity not valid,在 $DOMAIN_HOME/servers/$SERVER_NAME/security/boot.properties 中以明文写入正确的 username/password,首次启动会自动加密。
- 本机地址解析错误:出现 Could not obtain the localhost address,在 /etc/hosts 补充 IP 主机名 映射(如:192.168.1.10 host.example.com)。
- 端口占用:端口 7001/7002 被占用导致绑定失败,使用 netstat -tulpen | grep 7001 查找并释放占用进程,或调整 config.xml 中的监听端口。
- 数据库连接问题:核对 JDBC URL、用户名、密码;确认数据库服务已启动;在 CentOS 7/8 使用 firewall-cmd 放行数据库端口(如 5432/3306);在数据源启用连接测试以剔除无效连接。
- 集群广播异常:出现 Invalid argument 等组播错误,在 setDomainEnv.sh 的 JAVA_OPTIONS 增加 -Djava.net.preferIPv4Stack=true。
三 性能与线程阻塞定位
- 识别阻塞:控制台 环境 > 服务器 健康为 Warning,查看 监视 > 线程,对疑似线程执行转储线程堆栈,搜索 stuck 定位具体事务与代码路径。
- 常见根因:SQL 慢(缺失索引/统计信息)、外部依赖慢、线程池不足、资源泄漏。
- 处置策略:优先优化 SQL/索引/统计信息;必要时临时调整 StuckThreadMaxTime(默认 600s)与线程数;持续问题应回到应用与数据库侧根治。
四 系统与网络层面的检查
- 资源监控:用 top/vmstat/iostat 观察 CPU、内存、磁盘 IO;用 free/df 检查内存与磁盘空间;资源不足会导致启动失败或运行异常。
- 端口与防火墙:用 netstat -tulpen | grep -E ‘7001|7002’ 确认监听;在 firewalld 放行 7001/7002 及数据库端口(示例:firewall-cmd --zone=public --add-port=5432/tcp --permanent && firewall-cmd --reload)。
- 网络连通:对数据库/依赖主机执行 ping/telnet/nc;必要时抓包或临时关闭防火墙验证是否为网络策略问题。
- JVM 与许可:核对 JAVA_HOME/JDK 版本与 WebLogic 许可是否满足版本要求;许可过期也会导致异常。
五 日志与诊断命令清单
- 日志路径与重点:
- 域日志:$DOMAIN_HOME/servers/AdminServer/logs/AdminServer.out、AdminServer.log
- 受管服务器:$DOMAIN_HOME/servers/<server_name>/logs/<server_name>.out、<server_name>.log
- 常用命令:
- 端口与进程:netstat -tulpen | grep -E ‘7001|7002’
- 资源监控:top、vmstat、iostat、free、df
- Java 诊断:jstack (线程)、jmap -heap (堆)
- 防火墙:firewall-cmd --list-ports / --add-port=7001/tcp --permanent && firewall-cmd --reload
- 连通性:ping <db_host>、telnet <db_host> <db_port> 或 nc -vz <db_host> <db_port>
- 提示:每次变更配置或参数后,务必重启相关 AdminServer/受管服务器 并复核日志以确认生效与无新错误。