Ubuntu WebLogic故障快速排查避免停机损失的具体步骤是什么?
- 内容介绍
- 文章标签
- 相关推荐
WebLogic 服务一旦宕机,往往会导致业务停顿、客户流失甚至财务损失。老实说,下面给出一套针对 Ubuntu 环境的快速排查与修复流程。帮助你最小化停机时间,快速恢复业务。
一、先确认网络与端口状态
说到痛点。端口被占用或防火墙阻断常是启动失败的根源,却不易被直观看到。
-
检查端口占用:
netstat -an | grep 7001 -
验证网络连通性:
ping your-domain.com -
查看防火墙规则:
sudo ufw status -
若发现端口被占用,用
kill -9 PID强制释放。
二、资源与 JVM 状态检查
再看痛点。内存不足或 JVM 参数设置错误常导致“OutOfMemoryError”或响应缓慢,但往往不直接表现为错误日志。
-
查看 Java 进程:
jps -l -
获取 JVM 参数:
jinfo -flags -
抓取堆内存快照:
jmap -heap -
监控 CPU/内存使用:
sar -u 1 3;vmstat 1 3,iostat -x 1 3
三、日志优先级分析
痛点这方面。日志文件多而杂,关键错误往往埋在大量信息中。老实说,
- $DOMAIN_HOME/logs/server.log: 服务器实例主日志。包含启动异常和请求堆栈,
- $DOMAIN_HOME/logs/domain.log: 域级别事件,如配置变更和全局异常。
- $DOMAIN_HOME/logs/access.log: HTTP 请求记录,可用于排查访问层问题。
- 错误码“500”+“SEVERE”通常代表着后端服务不可用;错误码“404”+“Not Found”则表明应用方法未正确部署。
- 在多实例环境下可通过 $DOMAIN_HOME/servers/*/logs/*log 比较不同实例的状态差异。
- 使用 /opt/weblogic/common/bin/wlst.sh --listServers all_servers.py,可一次列出所有域内服务器及其状态。
实时跟踪>
tail -f $DOMAIN_HOME/logs/server.log | grep -i error | grep -i exception> error.log && tail -f error.log
*如果控制台无法访问。先确认监听端口是否正常,再查看 server.log 的首条异常堆栈。 *
四、常见故障清单与修复方法
| 故障类型 | 可能原因 | 修复方法 & 命令示例 |
|---|
netstat -an | grep 7001 sudo kill -9 $ sudo ufw allow 7001/tcp sed -i 's/port=7001/port=9001/g' $DOMAIN_HOME/config/config.xml service weblogic restart*确保修改后重启 WebLogic,以让新的配置生效。*
java -Xms512m -Xmx2048m ... jcmd GC.heap_info jcmd GC.run*根据实际情况调整 Xms/Xmx,并监控 GC 日志以判断是否存在泄漏。*
- 检查 $DOMAIN_HOME/config/jdbc.xml 中的 DataSource 配置 - 用 telnet 或 nc 检测数据库连通性 - 在管理控制台重置连接池参数;若无 GUI,则 config.xml 并重启*若出现 “Cannot allocate JD娱乐 connection”。请立即扩容数据库并调整 pool size。*
五、一键排查命令清单
# 查看 WebLogic 进程 ps aux | grep weblogic # 查看监听端口 ss -ltnp | grep :7001 # 日志实时跟踪 tail -f $DOMAIN_HOME/logs/server.log # 快速搜索错误堆栈 grep -i 'Exception\|Error' $DOMAIN_HOME/logs/server.log> errors.txt # 获取 JVM 参数 jinfo -flags $ # 抓取堆快照 jmap –dump:format=b。file=heap.hprof $
六、后续行动建议
- # 持续监控:部署 Promeus + Grafana 或利用 Oracle Enterprise Manager 对 CPU/内存/磁盘 IO 做 KPI 报告;
- # 自动化检测:写脚本定期执行上述命令,将结果推送到 Slack / 邮件;
- # 灰度回滚:若更新后出现问题,第一时间回滚至上一个稳定版本; # 文档化:把每一次排查经验写入内部 Wiki,以便新人快速上手;# 定期演练:每季度至少一次停机演练,让团队熟悉排查流程并验证恢复时间。
WebLogic 服务一旦宕机,往往会导致业务停顿、客户流失甚至财务损失。老实说,下面给出一套针对 Ubuntu 环境的快速排查与修复流程。帮助你最小化停机时间,快速恢复业务。
一、先确认网络与端口状态
说到痛点。端口被占用或防火墙阻断常是启动失败的根源,却不易被直观看到。
-
检查端口占用:
netstat -an | grep 7001 -
验证网络连通性:
ping your-domain.com -
查看防火墙规则:
sudo ufw status -
若发现端口被占用,用
kill -9 PID强制释放。
二、资源与 JVM 状态检查
再看痛点。内存不足或 JVM 参数设置错误常导致“OutOfMemoryError”或响应缓慢,但往往不直接表现为错误日志。
-
查看 Java 进程:
jps -l -
获取 JVM 参数:
jinfo -flags -
抓取堆内存快照:
jmap -heap -
监控 CPU/内存使用:
sar -u 1 3;vmstat 1 3,iostat -x 1 3
三、日志优先级分析
痛点这方面。日志文件多而杂,关键错误往往埋在大量信息中。老实说,
- $DOMAIN_HOME/logs/server.log: 服务器实例主日志。包含启动异常和请求堆栈,
- $DOMAIN_HOME/logs/domain.log: 域级别事件,如配置变更和全局异常。
- $DOMAIN_HOME/logs/access.log: HTTP 请求记录,可用于排查访问层问题。
- 错误码“500”+“SEVERE”通常代表着后端服务不可用;错误码“404”+“Not Found”则表明应用方法未正确部署。
- 在多实例环境下可通过 $DOMAIN_HOME/servers/*/logs/*log 比较不同实例的状态差异。
- 使用 /opt/weblogic/common/bin/wlst.sh --listServers all_servers.py,可一次列出所有域内服务器及其状态。
实时跟踪>
tail -f $DOMAIN_HOME/logs/server.log | grep -i error | grep -i exception> error.log && tail -f error.log
*如果控制台无法访问。先确认监听端口是否正常,再查看 server.log 的首条异常堆栈。 *
四、常见故障清单与修复方法
| 故障类型 | 可能原因 | 修复方法 & 命令示例 |
|---|
netstat -an | grep 7001 sudo kill -9 $ sudo ufw allow 7001/tcp sed -i 's/port=7001/port=9001/g' $DOMAIN_HOME/config/config.xml service weblogic restart*确保修改后重启 WebLogic,以让新的配置生效。*
java -Xms512m -Xmx2048m ... jcmd GC.heap_info jcmd GC.run*根据实际情况调整 Xms/Xmx,并监控 GC 日志以判断是否存在泄漏。*
- 检查 $DOMAIN_HOME/config/jdbc.xml 中的 DataSource 配置 - 用 telnet 或 nc 检测数据库连通性 - 在管理控制台重置连接池参数;若无 GUI,则 config.xml 并重启*若出现 “Cannot allocate JD娱乐 connection”。请立即扩容数据库并调整 pool size。*
五、一键排查命令清单
# 查看 WebLogic 进程 ps aux | grep weblogic # 查看监听端口 ss -ltnp | grep :7001 # 日志实时跟踪 tail -f $DOMAIN_HOME/logs/server.log # 快速搜索错误堆栈 grep -i 'Exception\|Error' $DOMAIN_HOME/logs/server.log> errors.txt # 获取 JVM 参数 jinfo -flags $ # 抓取堆快照 jmap –dump:format=b。file=heap.hprof $
六、后续行动建议
- # 持续监控:部署 Promeus + Grafana 或利用 Oracle Enterprise Manager 对 CPU/内存/磁盘 IO 做 KPI 报告;
- # 自动化检测:写脚本定期执行上述命令,将结果推送到 Slack / 邮件;
- # 灰度回滚:若更新后出现问题,第一时间回滚至上一个稳定版本; # 文档化:把每一次排查经验写入内部 Wiki,以便新人快速上手;# 定期演练:每季度至少一次停机演练,让团队熟悉排查流程并验证恢复时间。

