- 数据集成
- ETL
- 大数据
- 批处理
- 流处理
- 变更数据捕获
【免费下载链接】seatunnel
SeaTunnel is a multimodal, high-performance, distributed, massive data integration tool.
Apache SeaTunnel 的 Zeta 引擎内置了一个 Web UI 可视化巡检控制台,运维人员无需编写脚本即可查看集群概览、运行中和已完成作业、作业 DAG、日志与实时指标,并观察 worker/master 节点状态。本文以 docs/zh/engines/zeta/web-ui.md 为主体,结合仓库内 HTTP 服务配置、REST Servlet 与前端组件源码,系统讲解 Web UI 的启用方式、各页面能力边界、作业详情页的实时可观测性,以及它与 REST API 的分工。读完本文,你将掌握如何开启 SeaTunnel Engine HTTP 服务、访问并巡检 Web UI 各模块,以及如何借助 DAG 实时指标定位作业瓶颈。
开启 HTTP 服务并访问 Web UI
Web UI 不是独立服务,它与 REST API 共享 SeaTunnel Engine 的同一套 HTTP 能力(见 REST API 与 Web UI)。在访问 Web UI 前,需要先在seatunnel.yaml中开启 SeaTunnel Engine HTTP 服务:
seatunnel: engine: http: enable-http: true port: 8080仓库内的 config/seatunnel.yaml 默认即为enable-http: true、port: 8080,同时给出了enable-dynamic-port: false的示例。生产环境常用的可选配置还包括:
| 参数 | 作用 |
|---|---|
context-path | 给所有 HTTP 接口加统一前缀 |
enable-dynamic-port | 指定端口被占用时自动探测可用端口 |
enable-https | 开启 HTTPS(默认false,默认端口8443) |
enable-basic-auth | 使用 HTTP Basic 认证保护接口(默认false) |
开启后,通过如下地址访问 Web UI:
http://<host>:8080/#/overview如果配置了context-path,需要把它放在 hash 路由之前:
http://<host>:8080/<context-path>/#/overview生产环境建议按 安全配置 补齐 HTTPS 与 Basic 认证:
enable-basic-auth: true时用户访问界面需输入用户名密码(默认admin/admin);enable-https开启后需配置key-store-path、key-store-password、key-manager-password,配置trust-store-path后还将启用双向 SSL 认证。
能力总览:Web UI 是什么、不做什么
Apache SeaTunnel 的 Web UI 是 SeaTunnel Engine 的可视化巡检控制台。它帮助运维人员查看集群概览、运行中和已完成作业、作业详情页、日志、实时 DAG 指标,以及 worker 和 master 节点状态。
需要注意的是,Web UI 不负责提交作业,也不提供 cancel、stop、savepoint、restore 等作业生命周期控制;需要这些操作时,请使用 REST API 或命令行(对应源码如 SubmitJobServlet.java、StopJobServlet.java 等生命周期接口)。推荐的使用方式是把 Web UI 作为巡检入口,把生命周期操作交给 REST API 或 CLI 完成。
| UI 区域 | 当前能力 |
|---|---|
| Overview | 查看集群版本、slot 使用、worker 数量和作业数量 |
| Jobs | 查看运行中和已完成作业、分页浏览作业列表、进入作业详情 |
| Job Detail | 查看 DAG、作业指标、异常文本、作业配置、日志,以及开启后的实时可观测指标 |
| Workers | 查看 worker 节点系统监控信息 |
| Master | 查看 master 节点系统监控信息 |
作业模块:运行中作业与已完成作业
运行中的作业
"运行中的作业"模块列出当前正在执行的 SeaTunnel 作业,用户可以查看作业 ID、作业名称、创建时间、状态,并进入具体作业的详情页。列表会周期性刷新,并支持分页。前端实现位于 seatunnel-engine-ui/src/views/jobs/running-jobs.tsx,其数据来自 REST 层的RunningJobsServlet,并支持通过UpdateTagsServlet为作业打标签等辅助能力。
作业详情
作业详情页包含四个主要 tab:
- Overview:展示作业 DAG、source 和 sink 吞吐指标、flush signal 指标,以及开启可观测性后的 vertex 或 edge 实时指标。
- Exception:当作业失败或上报异常时,展示异常文本。
- Configuration:展示引擎暴露的运行时作业配置。
- Log:展示引擎日志 API 返回的作业日志文件(对应 AllNodeLogServlet.java、CurrentNodeLogServlet.java 等日志接口)。
实时可观测性(Realtime Observability)
在 Job Detail 页面中,DAG 图支持展示"最近 N 分钟"的实时指标(默认 3 分钟,最大 10 分钟):
- 节点忙碌度:Source/Transform/Sink 的忙闲比例(例如 Source Read/Idle,Transform Busy,Sink Busy)。
- 边的下游等待占比:当作业在某些位置插入了队列(例如 async boundary 队列、sink 前拆分 IO 队列)时,边会根据下游等待占比与队列填充率进行着色/加粗。
- 交互:点击节点或边可在右侧抽屉查看该对象的实时曲线与关键字段。
- Pin 实时图:可从抽屉 pin 一条或多条数值指标,关闭抽屉后 Overview 上仍保留实时折线。图表按量纲拆分(占比 / 耗时 / 条数),同量纲才叠线对比;Pin 默认上限 6 条 series,只作用于当前这次 Job Detail 访问、不写入
localStorage,离开页面或作业进入终态即清空,详见 实时指标图。
该能力需要作业侧开启
env.engine.observability(或满足默认开启条件),并按需配置async_boundaries、split_sink_io等。详细配置与指标说明请参考 实时可观测性。
运行时图的设计边界与大 DAG 降级规则请参考 运行时执行图。
实时指标背后的数据链路
Web UI 的实时指标不是凭空产生的,它复用引擎既有链路:
- 数据来源:Master 侧
RealtimeMetricsService(seatunnel-engine-server/.../observability/RealtimeMetricsService.java)以realtime-metrics-collector线程周期性从 worker 拉取指标,在内存中按 job 维护最近 N 分钟的 bucket 时序。 - REST 暴露:RealtimeMetricsServlet.java 提供
GET /metrics/realtime/jobs、GET /metrics/realtime/jobs/{jobId}/edges?windowMs=与GET /metrics/realtime/jobs/{jobId}/vertices?windowMs=三个接口,windowMs默认 180000(3 分钟)、上限 600000(10 分钟)。 - 前端消费:seatunnel-engine-ui/src/service/realtime-metrics/index.ts 中的
fetchJobRealtimeMetrics按一个windowMs同时拉取 edges 与 vertices;Overview 打开且作业运行时,页面每 2 秒轮询这两个接口,Pin 指标不会产生额外 REST 流量。 - 渲染:折线图组件为
LiveLineChart/LiveMetricsBoard(seatunnel-engine-ui/src/components/live-metrics-chart/),只接收已取好的 series 数据、自身不发 HTTP;ECharts 是唯一图库依赖。
已完成的作业
"已完成的作业"模块展示已进入终态的作业,例如 finished、failed、cancelled 或 savepoint done(对应 FinishedJobsServlet.java)。用户可以回看历史记录,并进入详情页查看配置、异常文本、引擎保留的指标和日志。
节点监控:工作节点与管理节点
工作节点信息
"工作节点"模块展示 worker 节点的系统监控信息,可以用它查看 worker 地址、资源状态和引擎暴露的运行时健康信号,后端对应 WorkerResourceServlet.java。
管理节点信息
"管理节点"模块展示 master 节点的系统监控信息,可以用它查看当前 master 侧运行状态和引擎暴露的资源信号(如线程、内存等监控,相关实现见 SystemMonitoringServlet.java 与 RunningThreadsServlet.java)。
运维实践建议
结合 REST API 与 Web UI 的推荐顺序,日常运维可以按如下节奏进行:
- 先开启 HTTP 能力:在
seatunnel.yaml的seatunnel.engine.http下提前决定是否需要 context path、动态端口、HTTPS 和基础认证。 - 先验证 REST 接口可达:先请求 overview、running jobs 等接口,确认从运维环境可以访问到 SeaTunnel Engine。
- 再打开 Web UI 做可视化检查:用 UI 验证集群健康情况和作业细节。
- 需要操作控制时使用 REST API:提交、停止、取消、savepoint 和恢复作业通过 作业生命周期 API 完成,Web UI 作为这些操作前后的可视化巡检入口。
- 生产环境补齐安全配置:如果接口会暴露给更广的内网或外部系统,建议开启 HTTPS 与认证。
需要进一步阅读的资料:RESTful API V2(自动化集成与动态表单元数据)、运行时执行图(DAG 健康状态设计)、实时指标图(Pin 指标行为)、安全(HTTPS 与 Basic 认证完整参数)。
- 数据集成
- ETL
- 大数据
- 批处理
- 流处理
- 变更数据捕获
【免费下载链接】seatunnel
SeaTunnel is a multimodal, high-performance, distributed, massive data integration tool.
相关推荐
Apache SeaTunnel Zeta Engine REST API 与 Web UI 运维实战:开启 HTTP 服务、接口集成与可视化巡检
Apache SeaTunnel Zeta Engine REST API 与 Web UI 运维实战:开启 HTTP 服务、接口集成与可视化巡检 本篇围绕 S
数据集成ETL大数据批处理流处理变更数据捕获SeaTunnel Zeta 引擎 RESTful API V2 完全指南:监控、作业提交与集群运维
SeaTunnel Zeta 引擎 RESTful API V2 完全指南:监控、作业提交与集群运维 SeaTunnel(Zeta 引擎)内置了一套基于 HTT
数据集成ETL大数据批处理流处理变更数据捕获Apache SeaTunnel Zeta 引擎 Web UI 可视化监控控制台实战指南
Apache SeaTunnel Zeta 引擎 Web UI 可视化监控控制台实战指南 SeaTunnel(Apache SeaTunnel,Zeta 引擎)
数据集成ETL大数据批处理流处理变更数据捕获
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考