到目前为止,三个区域部署意味着需要打开三个浏览器标签页、使用三套凭证,并且每当有人询问全球结账状态时,都需要协调不同的心智模型。其实早在 Elastic Stack 9.5 中,合成监控(Synthetic Monitoring)就已支持跨集群搜索(Cross-cluster search,CCS)。来自每个已连接集群的监控器都会出现在同一个 Kibana 中,包含状态、旅程瀑布图、截图、错误和证书。无需复制任何数据;中央集群在查询时扩展索引表达式,并直接向每个远程集群发起请求,因此配置仍保留在其创建位置,每个集群依然拥有自己的监控器。
此功能仅适用于有状态(stateful)部署,不受 Elastic Cloud Serverless 支持。
在 9.5 之前,Synthetics 和 CCS 并未集成。在 Elasticsearch 层连接集群时,您可以在 Discover 中获得原始 ping 数据,但无法在 Synthetics UI 中获得相应体验。Elastic 的站点可靠性工程(SRE)团队撰写了这一模式, 使用 CCS 在 150+ 集群之上构建统一管理视图,但该方案只适用于原始数据,而非 Synthetics 应用程序。
监控器定义属于 Kibana 保存对象,而这些对象不会跨集群传输。在 Elasticsearch 层打通 CCS 并不能让远程监控器出现在 Synthetics 应用中。您只能在 Discover 中获得原始数据,而无法获得任何 Synthetics UI 体验:没有状态卡片、旅程瀑布图、步骤截图或错误下钻。
对于保存对象上的原始 CCS,情况依然如此。9.5 中推出的是基于远程集群搜索构建的原生集成。该应用会搜索远程的 synthetics-* ping。它会标记出哪些内容来自远程,并在您需要修改某些内容时将您引导回源 Kibana。
一旦配置了远程集群,它们的监控器就会与本地监控器一起出现在整个 Synthetics UI 中。
概览页面会将远程监控器与本地监控器内联展示,并在监控器类型徽章旁添加远程徽章。两个新增功能有助于导航:在现有的类型 / 位置 / 标签 / 频率过滤器旁,新增了远程集群过滤器,以及分组依据 → 远程集群选项。当远程集群过滤器激活时,本地监控器会被隐藏,状态计数仅反映过滤后的集合,这样您就可以一次专注于一个部署。

监控器详情页对远程监控器的工作方式与本地监控器相同,包括概览、历史记录、错误、旅程运行、步骤详情、截图、网络瀑布图和时长图表。
远程监控器提示框会显示集群名称和源 Kibana URL,在远程集群上查看按钮可直接带您前往该监控器所在的原始实例。

在远程集群上观察到的传输层安全(TLS)证书会出现在证书页面,并带有一个提示工具,显示它们来自哪个集群。
不,不能从中央 Kibana 编辑。远程监控器在您查看它们的位置是只读的,因为它们的配置以保存对象的形式存在于定义它们的 Kibana 中。
操作 | 在中央 Kibana 上的行为 |
|---|---|
查看状态、历史记录、错误、旅程运行、截图、网络瀑布图 | 可用 |
启用 / 禁用 | 不可用 |
手动运行测试 | 不可用 |
创建 SLO | 不可用 |
添加到仪表板 | 不可用 |
编辑 | 当该集群的公网 URL 已配置时,打开源 Kibana |
克隆 | 当该集群的公网 URL 已配置时,打开源 Kibana |
在远程集群上查看 | 在监控器所在的 Kibana 中打开该监控器 |
要管理远程监控器,请点击其详情页面上的在远程集群上查看按钮。它将带您进入该监控器所在的 Kibana。
将配置保留在源集群上是刻意为之。监控器定义的单一事实来源(single source of truth)可以避免跨集群写入带来的混乱。
当前存在一个需要指出的限制:警报(alerting)尚不能跨集群边界工作。远程监控器若发生故障,会在联合 UI 中显示为故障,但不会在中央 Kibana 中触发警报。请继续将相关规则保留在拥有该监控器的集群上。联合警报功能已纳入路线图。
有几项内容需要准备就绪。
在堆栈管理 → 远程集群中,添加保存 Synthetics 数据的 Elasticsearch 集群。Synthetics 不会创建这些连接;它会使用已在 Elasticsearch 层配置好的连接。在 Elastic Cloud 和本地部署之间搜索和复制数据一文详细介绍了 Elasticsearch 层的设置。
在远程集群上查看的深层链接来自 ping 文档中的 kibanaUrl 字段,该字段由 server.publicBaseUrl 生成。如果远程 Kibana 上缺少此设置,您仍然可以看到监控器,但没有可点击的 URL。由于 kibanaUrl 在 ping 写入时生成,因此您需要在设置此配置后等待新的检查结果,链接才会出现。
转到Synthetics → 设置 → 远程集群。您需要对 Synthetics 和 Uptime 拥有全部权限。拥有只读权限的用户只能以只读方式查看表单。
打开使用所有远程集群开关,或选择特定集群。每个选项都会显示已连接与断开连接的状态。
这是每个部署的一个共享配置,而不是每个空间的单独副本。使用空间字段可授予对特定空间的访问权限,或选择所有空间。首次保存时,设置会锚定到您当前所在的空间。
请注意,在后续保存时清除 空间 字段并不会移除现有空间的访问权限。您必须显式选择要继续保留的空间。

打开监控器概览页,远程监控器就会与本地监控器一同出现。
中央集群不会复制任何数据。CCS 的工作原理是在查询时扩展索引表达式,这意味着中央集群从不存储远程数据,它只负责知道应该向哪里发起请求。

在每个请求中,服务器会据此确定要查询的索引表达式。
synthetics-*,*:synthetics-*,无需进行连接检查。cluster.remoteInfo() 来检查当前哪些集群可达,并且只包含可达的集群,因此断开连接的远程集群不会导致概览页面挂起。最终得到如下所示的组合索引模式:
synthetics-*,cluster1:synthetics-*,cluster2:synthetics-*概览状态页面和证书页面会自动使用 CCS,因为它们会向所有已配置的集群进行扇出。详情视图会将每个查询限定到正确的集群。Ping、旅程、截图和网络事件都只针对单一远程集群解析,而不会分散到所有集群。
面向 Synthetics 的 CCS 是一个可见性层,而不是管理层。您可以跨集群获得统一的只读视图;每个集群仍然是其自身监控器的所有者。如果您需要集中创建、编辑或禁用监控器,您仍然需要前往每个监控器所在的 Kibana 执行操作。
内容 | 所在位置 |
|---|---|
监控器配置(保存对象) | 仅源集群 |
私有位置 | 仅源集群 |
全局参数 | 仅源集群 |
API 密钥 | 仅源集群 |
警报规则 | 仅源集群 |
Ping 结果 | 联合式,可在中央 Kibana 查看 |
旅程步骤和截图 | 联合式,可在中央 Kibana 查看 |
TLS 证书状态 | 联合式,可在中央 Kibana 查看 |
Elasticsearch 层的 CCS 也是前提条件,但并非全部。Synthetics 需要自己的远程集群配置才能正确显示远程监控器。仪表板和 Discover 仍然可以通过 CCS 查询 synthetics-* 以进行自定义可视化。
联合式 Synthetics 随 9.5 版本在有状态部署中提供。如果您在多个集群上运行监控器,请前往 Synthetics → 设置 → 远程集群并连接您的远程集群。
如果远程监控器出现但缺少深层链接,请在源 Kibana 上设置 server.publicBaseUrl,然后等待新的检查结果。kibanaUrl 字段只会写入在该配置设置之后生成的文档中。
我们欢迎您在 Elastic 讨论论坛中提供反馈。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。