温馨提示×

WebLogic在CentOS下的故障排查步骤

小樊
40
2025-11-06 02:38:12
栏目: 智能运维

1. 收集故障基础信息
首先明确故障现象(如无法启动、响应慢、报错提示)、发生时间、是否有近期变更(如升级、配置修改、新增应用),这些信息能快速缩小排查范围。

2. 查看日志文件定位具体错误
日志是故障排查的核心依据,需检查以下关键日志:

  • Domain日志:路径为$DOMAIN_HOME/servers/AdminServer/logs/AdminServer.log(默认名称),记录域的整体运行状态(如服务器启动/关闭、全局配置错误);
  • Server日志:路径为$DOMAIN_HOME/servers/your_server_name/logs/your_server_name.log,记录单个服务器实例的详细运行信息(如应用部署错误、线程死锁);
  • HTTP访问日志:路径为$DOMAIN_HOME/servers/your_server_name/logs/access.log,记录客户端HTTP请求及响应状态(如404、500错误)。
    使用tail -f实时查看最新日志,grep "error"grep "exception"过滤错误关键字,快速定位问题根源。

3. 检查系统资源使用情况
使用topfree -mdf -h命令分别检查CPU、内存、磁盘空间使用情况:

  • CPU占用过高:可能是应用线程阻塞、死循环或配置不当(如线程池过大);
  • 内存不足:会触发OutOfMemoryError,需调整JVM堆内存参数(-Xms-Xmx);
  • 磁盘空间满:会导致日志无法写入、应用无法启动,需清理旧日志或临时文件。

4. 验证配置文件正确性
重点检查以下配置文件:

  • config.xml:位于$DOMAIN_HOME/config目录,是域的核心配置文件(如服务器监听端口、集群配置、数据源设置),使用weblogicctl configtest命令验证语法正确性;
  • 启动脚本:如startWebLogic.sh,检查JAVA_HOMEWL_HOME等环境变量是否指向正确路径,内存参数(-Xms-Xmx)是否符合服务器配置;
  • 应用部署描述符:如web.xmlweblogic.xml,确保应用配置(如Servlet映射、安全角色)与服务器环境兼容。

5. 排查端口冲突
WebLogic默认使用7001(HTTP)、7002(HTTPS)等端口,使用netstat -tulnss -tuln命令检查端口占用情况:

netstat -tuln | grep ':7001'

若端口被占用,需修改WebLogic配置文件中的端口(如config.xml中的<listen-port>),或停止占用端口的应用程序。

6. 检查权限与环境变量

  • 权限问题:确保运行WebLogic的用户(如weblogic)对$DOMAIN_HOME$MW_HOME等目录有读写权限,避免因权限不足导致启动失败(如无法创建临时文件);
  • 环境变量:确认JAVA_HOME(如/usr/java/jdk1.8.0_291)、WL_HOME(如/home/weblogic/Oracle/Middleware)已正确设置,且PATH中包含$JAVA_HOME/bin

7. 处理锁定文件
WebLogic运行时会产生锁定文件(如edit.lokconfig.lokAdminServer.lok),若进程异常终止,这些文件可能残留,导致下次启动失败。进入$DOMAIN_HOME/servers/AdminServer/tmp$DOMAIN_HOME/servers/AdminServer/config目录,删除相关锁定文件后重启服务器。

8. 使用诊断工具深入分析

  • WLST(WebLogic Scripting Tool):通过脚本实时监控服务器状态(如线程池、内存使用),例如:
    connect('weblogic', 'password', 't3://localhost:7001')
    serverRuntime()
    
  • 诊断服务:启用ServerDebug选项(在config.xml中设置<server-debug>标签),收集更详细的调试信息(如JDBC调用、EJB执行);
  • 第三方工具:使用VisualVMJConsole监控JVM内存、线程状态,或使用Prometheus+Grafana实现实时性能监控。

9. 解决常见问题

  • 启动失败:若日志显示bea-000386(网络配置错误),需检查config.xml中的网络地址配置;若显示OutOfMemoryError,需增加JVM堆内存(如-Xms2048m -Xmx2048m);
  • 应用无法访问:检查HTTP监听端口是否开放(netstat -tuln),防火墙是否允许该端口(iptables -L),应用是否已成功部署(console中查看部署状态);
  • 性能慢:通过top查看CPU占用高的进程,vmstat 1查看系统负载,调整线程池大小(consoleServersConfigurationThreads)。

0