跳到主要内容

故障排除

日志排查是微搭私有化部署中最重要的故障排除方式。由于私有化环境资源配置精简,系统未提供独立的日志服务,所有日志均存储在容器内部目录中,默认保留 7 天。

1. 核心服务架构

微搭私有化部署包含以下核心服务:

1.1 核心业务服务

  • weda-allin-one-design(设计态服务)

    • 负责应用设计、页面编辑等设计时功能
    • 日志路径:/data/log
  • allin-one-runtime(运行态服务)

    • 负责数据模型、审批流、API 接口、权限管理等运行时功能
    • 日志路径:/data/log

1.2 基础设施服务

  • proxy

    • 请求转发代理服务,负责路由分发
    • 日志查看:通过 docker logskubectl logs 直接查看
  • weda-plugin-adaptors

    • 外部数据源连接服务
    • 日志路径:/data/log
  • gitness

    • 应用构建和发布服务
  • idaasserver

    • 用户鉴权和身份认证服务
    • 日志路径:/logs

2. 故障排查流程

2.1 确定问题范围

当前端界面出现错误时,请按以下步骤定位问题:

  1. 获取 RequestId:从浏览器开发者工具的网络面板中,找到报错接口的响应头或响应体中的 RequestId
  2. 确定相关服务:根据操作类型判断涉及的服务
    • 页面设计相关 → weda-allin-one-design
    • 数据操作、API 调用 → allin-one-runtime
    • 外部数据源 → weda-plugin-adaptors

2.2 进入服务容器

单机版部署

# 进入运行态服务容器
docker exec -it allin-one-runtime bash

# 进入设计态服务容器
docker exec -it weda-allin-one-design bash

集群版部署

# 1. 查看 Pod 列表(替换 software 为实际命名空间)
kubectl -n software get pods | grep "allin-one-runtime"

# 2. 进入指定 Pod(替换为实际的 Pod 名称)
kubectl -n software exec -it allin-one-runtime-xxxx-yyyy -- bash

2.3 日志分析

进入容器后,执行以下命令进行日志排查:

# 切换到日志目录
cd /data/log

# 根据 RequestId 搜索相关日志
grep "a839bbb426b028" ./*

# 查看最新的错误日志
grep -i "ERROR" ./* | tail -100

# 查看特定时间段的日志
grep "2024-01-15 14:" ./*

日志分析要点:

  • 重点关注 ERROR 级别的日志信息
  • 查看错误发生的时间线和调用链路
  • 如无法直接定位问题,建议保存完整日志供技术支持分析

3. 编辑器 DEBUG 模式排查

当应用预览页面无法访问、组件渲染异常或交互行为不符合预期时,可通过编辑器的 DEBUG 模式 快速定位前端层面的问题。该功能可导出应用的完整 JSON 结构,便于技术支持分析。

3.1 开启 DEBUG 模式

  1. 进入微搭控制台,点击顶部导航栏的 「实验」
  2. 找到 「DEBUG 模式」 开关并开启

说明:DEBUG 模式仅供专业人员测试使用,开启后会在编辑器菜单中暴露 JSON 查看/导出/导入功能。

3.2 使用 Debug 菜单导出 JSON

开启 DEBUG 模式后,在编辑器画布中:

  1. 右键点击目标组件(如表单容器、自定义组件等)
  2. 选择 「Debug」 子菜单
  3. 点击 「导出 JSON」

导出的 JSON 包含该组件的完整配置信息:

  • 组件属性(props)
  • 数据绑定表达式
  • 事件处理器(handlers)
  • 样式配置
  • 子组件树结构

3.3 打开应用调试器

在编辑器右上角,点击 「打开应用调试器」 按钮。

调试器面板提供以下信息:

面板说明
属性当前选中组件的属性值和绑定状态
数据源页面数据源(dataset)的参数、过滤条件、请求状态
变量页面级变量的当前值
对象模型数据模型的字段定义和关联关系

3.4 常见前端问题的 Debug 排查步骤

场景 A:预览链接无法访问

1. 开启 DEBUG 模式 → 右键根容器 → 导出 JSON
2. 检查路由配置是否正确(页面 ID 与路由匹配)
3. 打开应用调试器 → 检查数据源是否有报错
4. 浏览器 F12 → Console 面板查看前端错误栈
5. 将 JSON 和错误信息一同提交给技术支持

场景 B:组件不显示或显示异常

1. 右键异常组件 → Debug → 查看JSON
- 检查 visible 条件绑定的变量是否有值
- 检查数据源是否加载完成
2. 应用调试器 → 数据源面板
- 确认 API 返回数据格式是否符合预期
3. 检查父容器的布局模式(flex/grid)是否导致组件被隐藏

场景 C:事件/交互无响应

1. 右键触发组件 → Debug → 导出 JSON
- 检查 handlers 配置是否存在且正确
2. 应用调试器 → 变量面板
- 手动修改变量值,观察目标组件是否响应
3. 检查条件表达式的逻辑是否满足触发条件

3.5 提交问题时需附带的信息

使用 DEBUG 模式排查后,提交问题时建议附上:

  1. 导出的 JSON 文件(脱敏处理后)
  2. 应用调试器截图(包含数据源和变量状态)
  3. 浏览器控制台错误信息(F12 → Console)
  4. 网络请求详情(F12 → Network,标记失败的接口)
提示

导出 JSON 前,请注意脱敏处理以下敏感信息:

  • 数据库连接字符串中的密码
  • API 密钥(SecretId/SecretKey)
  • 第三方服务的 Token 或凭证

4. 问题反馈规范

为提高问题处理效率,请按以下格式整理问题信息:

4.1 基础信息

  1. 错误截图

    • 包含完整的错误提示信息
    • 浏览器控制台的错误信息
  2. 版本信息

    # 查看当前部署版本
    docker images | grep weda
  3. 复现步骤

    • 详细描述操作步骤
    • 提供测试数据或配置信息
    • 说明错误出现的频率

4.2 技术信息

  1. 接口信息

    • 报错的 API 接口地址
    • RequestId(如有)
    • 请求参数和响应内容
  2. 日志信息

    • 相关的错误日志片段
    • 建议提供前后 50-100 行的上下文日志

通过提供完整的问题信息,可以显著提升问题定位和解决的效率。