Debian系统下WebLogic故障排查指南
首先确认WebLogic服务是否正在运行,使用systemctl
命令查看服务状态:
sudo systemctl status weblogic
若服务未运行,尝试启动服务:
sudo systemctl start weblogic
启动失败时,需进一步排查日志或配置问题。
日志是故障排查的核心依据,主要日志文件位于$DOMAIN_HOME/logs
目录(如server.log
、console.log
)。使用以下命令实时查看最新日志:
tail -f $DOMAIN_HOME/logs/server.log
若需筛选错误信息,可使用grep
命令:
grep "ERROR" $DOMAIN_HOME/logs/server.log
重点关注日志中的异常堆栈、配置错误或资源不足提示。
通过系统日志排查是否因操作系统问题导致WebLogic故障,使用journalctl
命令查看WebLogic相关日志:
journalctl -u weblogic
或查看系统通用日志:
tail -f /var/log/syslog
dmesg
命令可查看内核级日志(如磁盘错误、内存故障)。
WebLogic的核心配置文件(如config.xml
、domain.xml
)需确保无语法错误或配置冲突。重点检查以下内容:
使用top
、free
、df
命令监控系统资源使用情况:
free -h
查看可用内存,若内存不足,需调整WebLogic的JVM堆大小(修改startWebLogic.sh
中的JAVA_OPTIONS
,如-Xms1024m -Xmx2048m
);top
查看CPU占用率,若某进程占用过高,需排查是否为WebLogic线程异常;df -h
查看磁盘剩余空间,若$DOMAIN_HOME
所在分区空间不足,需清理日志或临时文件。WebLogic默认使用7001端口(管理端口),需确保该端口未被其他进程占用。使用以下命令检查端口占用情况:
netstat -an | grep 7001
或使用lsof
命令:
lsof -i :7001
若端口被占用,需修改config.xml
中的端口配置,或停止占用该端口的进程。
使用jstack
命令抓取线程转储,分析线程状态:
jstack <weblogic_pid> > thread_dump.txt
重点关注deadlock
(死锁)、BLOCKED
(阻塞)状态的线程,定位导致线程阻塞的代码或资源。
jstat
监控JVM堆内存使用情况:jstat -gcutil <weblogic_pid> 1000
(每秒刷新一次);startWebLogic.sh
中添加JVM参数,生成堆转储文件:-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path/to/dump.hprof
;jmap
查看内存分配情况:jmap -heap <weblogic_pid>
;确保JAVA_HOME
、DOMAIN_HOME
等环境变量设置正确。可通过以下命令查看JAVA_HOME
:
echo $JAVA_HOME
若未设置,需在~/.bashrc
或/etc/profile
中添加:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
(根据实际JDK路径调整)
export DOMAIN_HOME=/home/weblogic/user_projects/domains/base_domain
并执行source ~/.bashrc
使变更生效。
确保运行WebLogic的用户(如weblogic
)对$DOMAIN_HOME
及其子目录有读写权限:
chown -R weblogic:weblogic $DOMAIN_HOME
chmod -R 755 $DOMAIN_HOME
登录管理控制台(http://<server_ip>:7001/console
),检查服务器状态、集群健康状况、部署应用的状态。控制台提供图形化界面,可快速定位配置错误或应用异常。
通过WLST脚本自动化排查问题,例如获取服务器状态:
connect('weblogic', 'password', 't3://localhost:7001')
serverRuntime()
disconnect()
WLST可用于批量检查服务器配置、收集性能指标。
JAVA_HOME
正确且JDK版本符合要求(WebLogic 12c及以上需Java 8+);startWebLogic.sh
中的内存配置是否合理(避免过大导致OOM)。$DOMAIN_HOME/servers/<server_name>/logs
)中的部署错误;top
、vmstat
监控系统资源,找出瓶颈(如CPU过高、内存不足);config.xml
中的<thread-pool>
配置);若上述步骤无法解决问题,建议查阅Oracle官方WebLogic文档(如《WebLogic Server Administration Guide》),或在Oracle社区、Stack Overflow等平台搜索类似问题的解决方案。提供详细的日志信息(如错误堆栈、配置片段)可提高问题解决的效率。