news 2026/9/19 19:03:53

Apache SeaTunnel Zeta Web UI 运维指南:集群巡检、作业详情与实时可观测性

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Apache SeaTunnel Zeta Web UI 运维指南:集群巡检、作业详情与实时可观测性
  • 数据集成
  • ETL
  • 大数据
  • 批处理
  • 流处理
  • 变更数据捕获

【免费下载链接】seatunnel

SeaTunnel is a multimodal, high-performance, distributed, massive data integration tool.

项目地址:https://gitcode.com/GitHub_Trending/se/seatunnel
点击查看免费下载

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: trueport: 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-pathkey-store-passwordkey-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_boundariessplit_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/jobsGET /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 的推荐顺序,日常运维可以按如下节奏进行:

  1. 先开启 HTTP 能力:在seatunnel.yamlseatunnel.engine.http下提前决定是否需要 context path、动态端口、HTTPS 和基础认证。
  2. 先验证 REST 接口可达:先请求 overview、running jobs 等接口,确认从运维环境可以访问到 SeaTunnel Engine。
  3. 再打开 Web UI 做可视化检查:用 UI 验证集群健康情况和作业细节。
  4. 需要操作控制时使用 REST API:提交、停止、取消、savepoint 和恢复作业通过 作业生命周期 API 完成,Web UI 作为这些操作前后的可视化巡检入口。
  5. 生产环境补齐安全配置:如果接口会暴露给更广的内网或外部系统,建议开启 HTTPS 与认证。

需要进一步阅读的资料:RESTful API V2(自动化集成与动态表单元数据)、运行时执行图(DAG 健康状态设计)、实时指标图(Pin 指标行为)、安全(HTTPS 与 Basic 认证完整参数)。

  • 数据集成
  • ETL
  • 大数据
  • 批处理
  • 流处理
  • 变更数据捕获

【免费下载链接】seatunnel

SeaTunnel is a multimodal, high-performance, distributed, massive data integration tool.

项目地址:https://gitcode.com/GitHub_Trending/se/seatunnel
点击查看免费下载

相关推荐

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/19 19:01:19

GitHub热榜项目筛选与运行指南:从趋势解读到实践部署

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/19 19:01:16

Linux DRM drmModeSetCrtc底层原理与纯色显示实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/19 18:58:50

Android App实现开机动画替换的系统级实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华