温馨提示×

WebLogic在Ubuntu上的故障排查技巧有哪些

小樊
44
2025-10-04 04:12:38
栏目: 智能运维

1. 日志分析与定位
WebLogic在Ubuntu上的日志是故障排查的核心依据,主要分布在域目录的logs子文件夹中(如$DOMAIN_HOME/logs/server.log记录服务器运行信息,access.log记录访问请求)。可使用以下命令高效查看:

  • tail -f server.log:动态跟踪最新日志,及时捕捉错误发生时间点;
  • grep "ERROR" server.log:筛选包含“ERROR”的日志条目,快速定位关键错误;
  • less server.log:分页查看完整日志,便于回溯问题上下文。

2. 端口冲突排查
WebLogic依赖特定端口(默认7001为管理端口、7002为监听端口),若端口被占用会导致启动失败或无法访问。通过以下命令检查端口占用情况:

  • netstat -tulnp | grep <端口号>:查看端口对应的进程ID(PID);
  • kill -9 <PID>:终止占用端口的进程(需确认进程无关键用途);
  • 若端口冲突频繁,可修改WebLogic配置文件($DOMAIN_HOME/config/config.xml)中的端口设置,避免与系统或其他应用冲突。

3. JVM内存问题诊断与优化
内存溢出(OOM)是WebLogic常见故障,需通过以下步骤排查:

  • 查看堆内存使用:使用jstat -gcutil <PID> 1000(每秒刷新一次)监控新生代(Eden、Survivor)、老年代的使用率,若老年代持续接近满(如>90%),可能存在内存泄漏;
  • 生成堆转储文件:在startWebLogic.sh中添加-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path/to/dump.hprof,当OOM发生时自动生成堆快照;
  • 分析内存泄漏:使用Eclipse MAT(Memory Analyzer Tool)打开堆转储文件,查看占用内存最多的对象(如未关闭的数据库连接、缓存对象),追踪其引用链定位泄漏代码;
  • 调整JVM参数:根据服务器内存大小优化堆配置(如-Xms512m -Xmx2048m设置初始堆和最大堆),避免设置过大导致Full GC耗时过长。

4. 配置文件有效性检查
WebLogic的配置文件错误(如config.xmlsetDomainEnv.sh)会导致启动失败或功能异常:

  • 检查XML格式:使用xmllint --noout $DOMAIN_HOME/config/config.xml验证config.xml的语法正确性,避免标签未闭合、属性值缺失等问题;
  • 验证JDK路径:在setDomainEnv.sh中确认JAVA_HOME指向正确的JDK安装目录(如export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64),且JDK版本与WebLogic版本兼容(如WebLogic 12c需JDK 8及以上);
  • 核对端口配置:确保config.xml中的<listen-port><admin-port>与启动脚本中的参数一致,避免端口定义冲突。

5. 服务状态与进程验证
确认WebLogic服务是否正常运行:

  • 查看进程是否存在:使用ps -ef | grep weblogic查找WebLogic相关进程(如weblogic.Server),若无进程说明服务未启动;
  • 检查启动脚本执行结果:通过nohup ./startWebLogic.sh &在后台启动,查看nohup.out文件中的输出信息,确认是否有启动错误(如类加载失败、数据库连接失败);
  • 验证服务响应:使用curl -v http://localhost:7001/console测试管理控制台是否能正常访问,若返回“Connection refused”则说明服务未启动或端口未监听。

6. 系统资源监控与限制
系统资源不足(如内存、文件描述符)会导致WebLogic运行缓慢或崩溃:

  • 监控系统资源:使用top查看CPU使用率(若持续>80%可能导致GC频繁)、free -h查看内存剩余量(若剩余内存不足,需关闭其他占用内存的应用)、df -h查看磁盘空间(若/分区剩余空间<10%,需清理日志或临时文件);
  • 调整文件描述符限制:WebLogic需要大量文件描述符处理并发请求,使用ulimit -n查看当前限制(默认通常为1024),修改/etc/security/limits.conf添加weblogic soft nofile 65535weblogic hard nofile 65535(需重新登录生效),避免因文件描述符耗尽导致连接失败。

7. 网络与防火墙配置
Ubuntu的防火墙(如ufw)或安全组可能阻止外部访问WebLogic端口:

  • 检查防火墙状态:使用sudo ufw status查看防火墙规则,若端口未开放,添加允许规则(如sudo ufw allow 7001/tcp);
  • 测试网络连通性:在另一台机器上使用telnet <WebLogic服务器IP> 7001测试端口是否可达,若无法连接需检查网络路由、安全组设置(如云服务器的安全组需放行对应端口)。

8. 控制台登录慢优化
若登录WebLogic控制台缓慢(如首次登录需几分钟),通常是JVM随机数生成器的问题:

  • 修改启动参数:在setDomainEnv.sh中添加-Djava.security.egd=file:/dev/./urandom,将随机数生成器从/dev/random(阻塞型)切换到/dev/./urandom(非阻塞型),显著提升启动和登录速度。

0