Ubuntu上WebLogic故障排查指南
日志是故障排查的核心依据,WebLogic的日志文件详细记录了启动、运行及错误信息。Ubuntu环境下,日志通常位于$DOMAIN_HOME/servers/your_server_name/logs目录(如server.log、nodemanager.log)。通过tail -f server.log实时查看日志,或使用grep "ERROR" server.log过滤错误信息,可快速定位问题根源(如类找不到、端口冲突、配置错误等)。
WebLogic依赖多个端口(如管理端口7001、受管服务器端口7002、节点管理器端口5556),若端口被其他进程占用,会导致启动失败。使用netstat -tulnp | grep <端口号>或lsof -i:<端口号>命令检查端口占用情况,若被占用,可选择终止占用进程(kill -9 <PID>)或修改WebLogic配置文件(如config.xml、nodemanager.properties)中的端口号。
配置文件错误(如config.xml、nodemanager.properties、setEnv.sh)是常见故障原因。需检查以下内容:
config.xml:确认服务器实例、集群、数据源等配置的正确性(如URL、用户名、密码);nodemanager.properties:确保ListenPort(默认5556)未被占用,SecureListener设置符合需求;setEnv.sh:验证JAVA_HOME(如/usr/lib/jvm/java-8-openjdk-amd64)、PATH等环境变量是否指向正确路径。内存不足会导致WebLogic启动缓慢或频繁Full GC。需调整JVM内存参数(在startWebLogic.sh中添加):
-Xms512m -Xmx2048m -XX:MaxPermSize=512m(根据服务器内存调整,如16GB内存可设置为-Xms2g -Xmx8g)。
同时,使用jstat -gcutil <PID> 1000监控GC情况,若GC频率过高,需优化内存分配或排查内存泄漏(如未关闭的数据库连接)。
ps -ef | grep weblogic,若未运行,使用nohup ./startWebLogic.sh &启动;./startNodeManager.sh,若启动失败,需删除$DOMAIN_HOME/servers/servername/data/nodemanager/servername.state文件并重新启动。Ubuntu的权限控制严格,需确保:
/opt/WebLogic)和域目录(如/home/weblogic/user_projects/domains/base_domain)的所属用户与启动用户一致(如weblogic);chown -R weblogic:weblogic /opt/WebLogic修改目录权限;su - weblogic -c "./startWebLogic.sh")。使用Ubuntu系统工具监控资源使用情况,及时发现瓶颈:
top/htop:查看CPU、内存占用TOP进程;vmstat 1:监控系统负载、进程、内存、I/O等情况;iostat -x 1:查看磁盘I/O性能(如%util接近100%需优化磁盘)。若应用依赖数据库,需检查:
config.xml中的JDBC URL、用户名、密码)是否正确;telnet <数据库IP> <端口>);$DOMAIN_HOME/lib目录下;Initial Capacity、Max Capacity)是否合理,避免连接泄漏。使用JMX工具(如JVisualVM)监控WebLogic运行状态:
setDomainEnv.sh中添加JMX配置:-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9010 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false;sudo snap install visualvm安装JVisualVM,添加远程连接(主机IP:9010),监控JVM内存、线程、WebLogic特定MBean(如com.bea:Name=ThreadPoolRuntime,Type=weblogic.management.runtime.ThreadPoolRuntimeMBean)。