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>:终止占用端口的进程(需确认进程无关键用途);$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发生时自动生成堆快照;-Xms512m -Xmx2048m设置初始堆和最大堆),避免设置过大导致Full GC耗时过长。4. 配置文件有效性检查
WebLogic的配置文件错误(如config.xml、setDomainEnv.sh)会导致启动失败或功能异常:
xmllint --noout $DOMAIN_HOME/config/config.xml验证config.xml的语法正确性,避免标签未闭合、属性值缺失等问题;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%,需清理日志或临时文件);ulimit -n查看当前限制(默认通常为1024),修改/etc/security/limits.conf添加weblogic soft nofile 65535、weblogic 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(非阻塞型),显著提升启动和登录速度。