作者:来自 Elastic Panagiota Mitsopoulou

保留所需的数据,并按其价值付费。LogsDB、数据层和索引生命周期管理可帮助优化存储和保留策略。开始免费云试用。
此前,三个区域部署意味着三个浏览器标签页、多套凭据,以及每当有人询问全球结账流程的运行情况时,都要整合不同的认知模型。面向合成监测的跨集群搜索功能随 Elastic 技术栈 9.5 推出。所有已连接集群中的监测器都会显示在同一个 Kibana 中,包含状态、用户旅程瀑布图、截图、错误和证书。整个过程不复制任何数据;中央集群会在查询时展开索引表达式,并直接查询各个远程集群,因此配置仍保留在创建它的位置,各个集群也仍然管理自己的监测器。
此功能仅适用于有状态部署,不支持 Elastic Cloud 无服务器服务 (Elastic Cloud Serverless)。
合成监测的跨集群搜索在 Elasticsearch 跨集群搜索基础上增加了什么
在 9.5 之前,合成监测与跨集群搜索尚未集成。在 Elasticsearch 层连接集群后,你可以在数据探索中看到原始探测数据,但无法在合成监测界面中查看。Elastic 的站点可靠性工程团队曾撰文介绍这一模式,利用跨集群搜索为超过 150 个集群构建统一视图,但它适用于原始数据,而非合成监测应用。
监测器定义属于 Kibana 已保存对象,而这些对象不会跨集群传递。在 Elasticsearch 层配置跨集群搜索,并不会让远程监测器出现在合成监测应用中。你可以在数据探索中获取原始数据,却无法获得合成监测界面提供的体验:没有状态卡片、用户旅程瀑布图、步骤截图,也无法深入查看错误详情。
直接使用跨集群搜索时,已保存对象仍然存在这一限制。9.5 推出的是基于远程集群搜索构建的原生集成。应用会搜索远程 synthetics-* 探测数据,标记远程内容,并在你需要修改配置时引导你返回来源 Kibana。
远程监测器在合成监测界面中的呈现方式
配置远程集群后,其监测器就会与本地监测器一起显示在合成监测界面的各个页面中。
在概览页面查找远程监测器
概览 页面会将远程监测器与本地监测器一起显示,并在监测器类型标记旁添加远程 标记。两项新增功能有助于导航:在现有的类型 、位置 、标签 和频率 筛选条件旁新增远程集群 筛选条件,以及分组依据 → 远程集群选项。启用远程集群筛选条件后,本地监测器将被隐藏,状态计数也只反映筛选后的监测器,让你可以一次专注于一个部署。

打开远程监测器详情页面
远程监测器的监测器详情页面与本地监测器的使用方式相同,包括概览、历史记录、错误、用户旅程运行记录、步骤详情、截图、网络瀑布图和耗时图表。
远程监测器 提示框会显示集群名称和来源 Kibana 地址,点击在远程集群上查看按钮,即可直接前往该监测器所属实例中的对应页面。

在证书页面查看远程传输层安全证书
远程集群中观测到的传输层安全证书会显示在证书页面上,工具提示会显示它们来自哪个集群。
可以从中央 Kibana 编辑远程监测器吗?
不能。远程监测器在中央 Kibana 中仅供查看,因为其配置以已保存对象的形式存储在定义它的 Kibana 中。
| 操作 | 在中央 Kibana 中的行为 |
|---|---|
| 查看状态、历史记录、错误、用户旅程运行记录、截图和网络瀑布图 | 可用 |
| 启用/禁用 | 不可用 |
| 手动运行测试 | 不可用 |
| 创建服务等级目标 | 不可用 |
| 添加到仪表板 | 不可用 |
| 编辑 | 配置该集群的公共访问地址后,会打开来源 Kibana |
| 克隆 | 配置该集群的公共访问地址后,会打开来源 Kibana |
| 在远程集群上查看 | 在监测器所属的 Kibana 中打开该监测器 |
要管理远程监测器,请点击其详情页面上的在远程集群上查看按钮,即可前往该监测器所属 Kibana 中的对应页面。
将配置保留在来源集群是有意为之。为监测器定义保留唯一可信来源,可以避免跨集群写入带来的混乱。
目前有一项限制需要注意:告警尚不支持跨集群。远程监测器发生故障时,联合界面会显示其故障状态,但不会在中央 Kibana 中触发告警。请将这些规则保留在监测器所属的集群上。联合告警已列入开发路线图。
如何为合成监测设置跨集群搜索
需要完成以下几项配置。
1. 在 Elasticsearch 中连接远程集群
在技术栈管理 → 远程集群中,添加存储合成 监测数据 的 Elasticsearch 集群。合成监测不会创建这些连接,而是使用已在 Elasticsearch 层配置的连接。在 Elastic Cloud 与本地部署之间搜索和复制数据一文详细介绍了 Elasticsearch 层的配置方法。
2. 在每个参与的 Kibana 中设置 server .publicBaseUrl
在远程集群上查看 的深层 链接 来自探测文档中的 kibanaUrl 字段,该字段根据 server.publicBaseUrl 写入。如果远程 Kibana 缺少此设置,你仍能看到监测器,但没有可点击的地址。由于 kibanaUrl 在探测时写入,因此完成此项配置后,需要等待新的检查结果生成,链接才会出现。
3. 选择合成监测包含哪些远程集群
前往合成监测 → 设置 → 远程集群。你需要拥有合成监测与可用性监测 的全部 权限。具有读取权限的用户只能查看表单,无法修改。
开启使用所有远程集群,或选择特定集群。每个选项都会显示已连接或未连接状态。
4. 授予 Kibana 空间 访问权限
每个部署共用一份配置,各空间不会分别保存副本。使用空间 字段向特定空间授予访问权限,或选择所有空间。首次保存时,设置会关联到你当前所在的空间。
请注意,后续保存时清空空间字段,并不会移除现有空间的访问权限。你必须明确选择要保留访问权限的空间。

打开监测器概览,远程监测器就会与本地监测器一起显示。
索引表达式如何跨集群解析
任何数据都不会复制到中央集群。跨集群搜索通过在查询时展开索引表达式来工作,这意味着中央集群从不存储远程数据,只知道该向哪里查询。

每次收到请求时,服务器都会确定要查询哪些索引表达式。
- 如果选择使用所有远程集群 ,它会构建
synthetics-*,*:synthetics-*,无需检查连接状态。 - 如果选择特定集群,它会调用 Elasticsearch 的
cluster.remoteInfo(),检查当前可访问的集群,并仅包含这些集群,避免断开连接的远程集群导致概览页面卡住。 - 解析后的索引会按空间缓存。
最终得到如下组合索引模式:
go
`synthetics-*,cluster1:synthetics-*,cluster2:synthetics-*`AI代码解释
概览状态 页面和证书页面会自动使用跨集群搜索,因为它们会向所有已配置的集群分发查询。详情视图则将每次查询限定到对应的集群。探测数据、用户旅程、截图和网络事件都只针对单个远程集群查询,不会遍查所有集群。
合成监测的跨集群搜索不提供哪些功能
合成监测的跨集群搜索提供的是可见性层,而非管理层。你可以获得跨集群的统一只读视图,各个集群仍管理自己的监测器。如果需要集中创建、编辑或禁用监测器,你仍需在各监测器所属的 Kibana 中操作。
| 内容 | 所在位置 |
|---|---|
| 监测器配置(已保存对象) | 仅限来源集群 |
| 私有位置 | 仅限来源集群 |
| 全局参数 | 仅限来源集群 |
| 接口密钥 | 仅限来源集群 |
| 告警规则 | 仅限来源集群 |
| 探测结果 | 通过联合查询,可在中央 Kibana 中查看 |
| 用户旅程步骤和截图 | 通过联合查询,可在中央 Kibana 中查看 |
| 传输层安全证书状态 | 通过联合查询,可在中央 Kibana 中查看 |
Elasticsearch 层的跨集群搜索只是前提条件,并非全部配置。合成监测还需要单独配置远程集群 ,才能正确显示远程监测器。仪表板和数据探索仍可通过跨集群搜索查询 synthetics-*,用于自定义可视化。
开始跨集群集中监测
联合合成监测随 9.5 版本推出,适用于有状态部署。如果你在多个集群中运行监测器,请前往合成监测 → 设置 → 远程集群,连接你的远程集群。
如果远程监测器已显示,但缺少深层链接,请在来源 Kibana 中设置 server.publicBaseUrl,并等待新的检查结果。配置生效后写入的文档才会包含 kibanaUrl 字段。
欢迎在 Elastic 讨论论坛反馈你的意见。
文档:
相关阅读:
- 使用 Elastic Cloud 跨集群搜索提升可观测性: Elastic 站点可靠性工程团队介绍如何为超过 150 个集群构建统一视图
- 在 Elastic Cloud 与本地部署之间搜索和复制数据:跨集群搜索与跨集群复制正式发布公告
原文:Cross-cluster search for synthetic monitoring in Kibana | Elastic Observability Labs