Elastic Observability 的跨项目搜索:通过一个查询搜索所有关联项目

0 阅读11分钟

作者:来自 Elastic Vinay Chandrasekhar

让你的可观测性数据保留在原处,同时仍然可以轻松地跨所有关联的 Serverless 项目进行搜索、告警和监控!

保留你需要的数据,并为其实际价值付费。LogsDB数据层和 ILM 可以帮助优化存储和数据保留。立即开始免费云试用

现在,一个查询就可以访问你拥有的每个 Serverless 项目。只需关联一次项目,此后的每次搜索、仪表板和告警规则都可以跨越所有这些项目。Discover、仪表板和 ES|QL 都可以运行,无需在项目之间复制数据,也无需在查询中使用远程索引前缀。跨项目搜索(CPS)已在 Elastic Cloud Serverless正式发布

如果你在 Elastic Cloud Hosted(ECH)上运行 Observability,这一功能应该会让你感到熟悉。跨集群搜索(Cross- project search - CCS)长期以来一直支持团队跨远程集群进行查询,也是大规模 ECH 环境中的常用功能。CPS 将相同的理念带到了 Serverless,并让项目关联变得更加简单:无需拓扑映射、证书配置或每个连接的凭据。你只需在 Cloud 控制台中关联项目,剩下的由 Elastic 管理。

什么是跨项目搜索?

Serverless 将数据组织到不同的项目中:Elasticsearch、Observability 或 Security,每个项目都有自己的扩展、权限和生命周期。这种隔离是一项功能:它可以在需要时保持数据本地化,简化成本归属,并让团队管理自己的数据。过去,这种方式的代价是可见性。如果你的日志位于一个项目中,而 APM 数据位于另一个项目中,或者每个业务部门都运行自己的 Observability 项目,那么要获得统一视图通常意味着将数据复制到一个共享存储中。

CPS 消除了这种取舍。你可以指定一个源项目(你从中进行搜索的项目),并将其与希望纳入搜索的其他项目关联起来。关联后,像 FROM logs* 这样的非限定查询或 Discover 会话会自动覆盖源项目以及所有关联项目;无需特殊语法,也无需远程索引前缀。Kibana 的项目选择器允许任何人将查询范围缩小到当前项目,或者扩大到范围内的所有项目;管理员还可以为每个 Kibana space 设置默认范围,这样本地事件响应 space 默认保持本地范围,而全局运维 space 则可以从更广的范围开始。访问权限会根据你现有的 Elastic Cloud 角色,在每个项目级别执行,因此将项目关联用于搜索并不会悄悄授予用户超出其现有权限范围的访问权限。

跨项目搜索和跨集群搜索有什么区别?

跨集群搜索(ECH、自管理)跨项目搜索(Serverless)
关联位置关联位置
在每个集群中配置远程集群连接在 Elastic Cloud 控制台中关联项目
凭据凭据
由你签发和轮换的证书或 API key由 Elastic 管理
网络设置网络设置
需要映射和维护网络拓扑无需配置
查询语法查询语法
查询中引用远程集群名称非限定查询,无需远程索引前缀
范围控制范围控制
按查询设置项目选择器、按 space 设置默认范围,以及基于标签的路由

CCS 要求管理员配置远程集群连接、交换证书或 API key,并在每个查询中引用远程集群名称;而 CPS 只需要你在 UI 中关联项目,然后按照你现有的方式进行查询。两者背后的理念相同:无需移动数据即可进行远程搜索,只是 CPS 将这一理念适配到了基础设施应该隐形的控制平面。

为什么跨项目搜索对 Observability 团队很重要

当你的可观测性数据不再存储在一个地方时,跨项目搜索的重要性就体现出来了。Observability 组织通常会按照团队、环境、区域或客户拆分数据,这通常有充分的理由:隔离嘈杂的邻居、控制影响范围、满足数据驻留要求,或者让每个团队负责自己的数据摄取和保留策略。问题通常出现在故障事件或跨领域调查期间,此时有人需要跨越这些边界查看数据,却不希望等待数据迁移或建立一个整合后的集群。

下面是 CPS 可以改变这种情况的一些场景:

让可观测性数据保留在所属区域,同时仍可进行全局搜索

在多个区域或云环境中运营的团队通常需要将可观测性数据保留在产生数据的区域中,无论是出于监管要求,还是为了限制跨区域 数据传输 。CPS 允许每个区域保留自己的 Observability 项目,同时由一个中心项目关联所有这些项目。这样,SRE 团队就可以通过一个查询检查某个区域出现的异常是否也出现在其他区域,而无需先将所有数据集中到一个地方。

隔离环境,同时不失去故障事件视图

将生产、预发布以及每个服务或团队拆分到不同项目中,可以让扩展和成本更加可预测,同时限制错误部署或失控任务可能造成的影响范围。这也意味着过去值班工程师在处理故障事件时,通常需要检查多个位置。借助 CPS,值班工程师可以从一个源项目开始工作,将调查所需的关联环境纳入查询范围,并在问题解决后再缩小范围。

中央团队监控多个业务部门或客户

代表多个业务部门运营的 Platform 或 Observability 卓越中心(CoE)团队,或者监控多个客户环境的托管服务提供商(MSP),可以为每个业务部门或客户提供独立的项目,并分别设置数据保留、访问权限和成本,同时让中央团队关联所有项目,以进行跨领域报告和 异常检测 。每个项目所有者仍然可以控制自己的数据,而中央团队则能够获得所需的汇总视图。

避免重复摄取相同数据

当两个团队需要出于不同目的使用相同的数据时,过去的选择通常是重复的数据摄取管道,或者使用一个隔离性较差的共享部署。通过关联项目,数据只需摄取一次,就可以从需要的位置进行查询,从而降低存储成本和管道维护成本。

这一点同样适用于不同解决方案类型:CPS 可以互相连接 Elasticsearch、Observability 和 Security 项目,因此 Security 团队和 Observability 团队可以各自保留自己的项目,并拥有独立的数据保留和访问控制,同时查询相同的底层日志。安全分析师调查告警时,可以在 Discover、仪表板或 ES|QL 中查询关联 Observability 项目中的基础设施或服务上下文;SRE 在调试故障事件时,也可以通过相同的方式查询关联 Security 项目中的相关信号,而无需任何一方重新摄取另一方的数据。

Elastic Observability 中的跨项目搜索支持哪些功能?

在正式发布(GA)时,CPS 已支持 Elasticsearch、Observability 和 Security 项目类型(Observability 和 Security 项目需要 Complete 层级)。对于 Elastic Observability,应用和基础设施监控、告警规则、SLO、 机器学习 异常检测(包括 APM 异常检测)以及 Synthetics 都可以跨关联项目工作,同时还支持每个项目都具备的平台级功能:Discover、仪表板和 ES|QL。项目路由允许你使用预定义标签(别名、云提供商、区域)或自定义标签,通过布尔逻辑将查询定向到关联项目中的特定子集,因此可以一次定义“所有欧盟项目”或“除预发布环境之外的所有环境”,并重复使用。

此次发布还提高了单个源项目可以关联的项目数量,大幅超过技术预览阶段的限制,并为更大规模的部署预留了进一步提升的空间。现在,任何现有项目都可以作为源项目,而不再只有新创建的项目才能作为源项目。对于程序化访问,你只需要一个 Cloud API key,就可以从自己的 工具调用 CPS。现在还可以使用新的专用 Cloud 角色,为这些 key 授予程序化访问权限。

在围绕 CPS 进行设计之前,有几个细节值得了解:

  • 告警:在源项目中定义的告警规则可以评估关联项目中的数据。它们生成的告警仍然保留在告警规则所在的项目中。

  • SLO:SLO 不会跟随 Kibana 页眉中的项目选择器。相反,你需要在创建和编辑 SLO 的表单中设置范围,可以选择当前项目、所有关联项目或特定子集,因为更改范围会重新构建 SLO 底层的计算。你无法从当前项目查看在关联项目中创建的 SLO,但可以在当前项目中基于存储在这些项目中的数据创建 SLO。

  • Synthetics:概览、监控详情、证书、错误和 journeys 会遵循 Kibana 页眉中的项目选择器,并以只读方式显示关联项目中的监控。创建、编辑和管理监控仍然在源项目中进行,而 Synthetics 状态和 TLS 规则仍然只评估源项目中的监控。

  • Streams:目前还不了解 CPS;Streams 仍然限定在其创建所在的项目中。

如何设置跨项目搜索?

设置跨项目搜索只需要几分钟:

  1. 在 Elastic Cloud 控制台中,从源项目的设置进入 Link projects

  2. 单独选择或批量选择你想要关联的项目。

  3. 保存。

  4. 打开 Discover、运行 ES|QL 查询或像平常一样创建仪表板:关联项目中的数据会自动包含在内,你可以随时通过项目选择器缩小或扩大范围。

对于完整的配置流程,包括关联拓扑(中心辐射式、共享数据项目或全网状)以及如何使用标签和表达式限定项目路由,请参阅跨项目搜索文档Observability 专用指南

跨项目搜索定价

CPS 定价包含两个部分:你所查询的每个关联项目中保留的数据会产生费用,以及跨项目查询流量产生的数据传出费用,该费用会作为单独的费用项进行跟踪,因此你可以清楚看到 CPS 为数据传输成本增加了多少。没有单独的关联费用。由于实际成本取决于你的数据量、保留设置以及关联的项目数量,因此请使用 Elastic Cloud Serverless 定价估算器,根据你自己的摄取量和数据保留量估算你环境中的成本。

开始使用跨项目搜索

如果你已经在 Serverless 上运行 Elastic Observability,那么现在就可以在项目设置中使用跨项目搜索:关联你的项目,然后在 Discover 中运行你的第一个跨项目查询。如果你还没有尝试过 Elastic Cloud Serverless,可以开始免费试用,看看单个查询可以覆盖多大的范围。

本文中所述任何功能或特性的发布及时间安排均由 Elastic 自行决定。任何当前尚未提供的功能或特性可能无法按时交付,也可能根本不会交付。

Elastic、Elasticsearch 及相关标志是 Elasticsearch B.V. 在美国及其他国家/地区的商标、标识或注册商标。所有其他公司和产品名称均为其各自所有者的商标、标识或注册商标。

原文:Cross-project search for serverless observability in Elastic | Elastic Observability Labs