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等平台搜索类似问题的解决方案。提供详细的日志信息(如错误堆栈、配置片段)可提高问题解决的效率。