三个区域、三个 Kibana、一个视图:跨集群搜索登陆 Elastic 合成监测

0 阅读9分钟

作者:来自 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(),检查当前可访问的集群,并仅包含这些集群,避免断开连接的远程集群导致概览页面卡住。
  • 解析后的索引会按空间缓存。

最终得到如下组合索引模式:

`synthetics-*,cluster1:synthetics-*,cluster2:synthetics-*`AI代码解释

概览状态页面和证书页面会自动使用跨集群搜索,因为它们会向所有已配置的集群分发查询。详情视图则将每次查询限定到对应的集群。探测数据、用户旅程、截图和网络事件都只针对单个远程集群查询,不会遍查所有集群。

合成监测的跨集群搜索不提供哪些功能

合成监测的跨集群搜索提供的是可见性层,而非管理层。你可以获得跨集群的统一只读视图,各个集群仍管理自己的监测器。如果需要集中创建、编辑或禁用监测器,你仍需在各监测器所属的 Kibana 中操作。

内容所在位置
监测器配置(已保存对象)仅限来源集群
私有位置仅限来源集群
全局参数仅限来源集群
接口密钥仅限来源集群
告警规则仅限来源集群
探测结果通过联合查询,可在中央 Kibana 中查看
用户旅程步骤和截图通过联合查询,可在中央 Kibana 中查看
传输层安全证书状态通过联合查询,可在中央 Kibana 中查看

Elasticsearch 层的跨集群搜索只是前提条件,并非全部配置。合成监测还需要单独配置远程集群,才能正确显示远程监测器。仪表板和数据探索仍可通过跨集群搜索查询 synthetics-*,用于自定义可视化。

开始跨集群集中监测

联合合成监测随 9.5 版本推出,适用于有状态部署。如果你在多个集群中运行监测器,请前往合成监测 → 设置 → 远程集群,连接你的远程集群。

如果远程监测器已显示,但缺少深层链接,请在来源 Kibana 中设置 server.publicBaseUrl,并等待新的检查结果。配置生效后写入的文档才会包含 kibanaUrl 字段。

欢迎在 Elastic 讨论论坛反馈你的意见。

文档:

相关阅读:

原文:Cross-cluster search for synthetic monitoring in Kibana | Elastic Observability Labs