作者:Elastic 可观察性和安全团队
在 KubeCon Europe 上,宣布 Elastic Common Schema (ECS) 已被 OpenTelemetry (OTel) 接受作为对该项目的贡献。 目标是将 ECS 和 OpenTelemetry 的语义约定 (SemConv) 融合到一个由 OpenTelemetry 维护的开放模式中。 此常见问题解答(FAQ)详细介绍了 Elastic 对 Elastic Common Schema 对 OpenTelemetry 的贡献、它将如何帮助推动行业采用通用模式,以及它对可观察性和安全性的影响。
正在宣布什么?
Elastic 正在将其开源项目 Elastic Common Schema (ECS) 贡献给 Cloud Native Computing Foundation (CNCF) 下的 OpenTelemetry 项目,以帮助汇聚为可观察性和安全数据的通用模式(common schema)。 通用模式有助于规范化数据,以便在任何可观察性或安全平台上更好地分析、可视化和关联该数据。 OpenTelemetry 对 ECS 的采用为 OTel 用户社区带来了成熟且经过验证的指标、日志、跟踪、资源(主机、容器等)和安全事件的通用架构。
Elastic 用户需要了解什么?
Elastic 将保护我们用户对 ECS 的投资。 ECS 在 OpenTelemetry 内部的持续发展将为 ECS 用户提供一条清晰的路径,以采用我们期望成为业界使用最广泛的语义约定标准。
Elastic 将参与并与 OTel 社区密切合作,以随着时间的推移正确合并 ECS 和 OpenTelemetry 的语义约定。 Elastic 将继续支持当前 ECS 格式的用户数据,尽管模式演进将发生在新合并的模式上。 Elastic 用户可以选择继续摄取和使用当前(“冻结的”)ECS 格式或迁移到新模式。
Elastic 将为决定迁移到新模式的用户提供简单迁移的指导和工具。
为什么 Elastic 向 OTel 贡献 ECS?
OpenTelemetry 的语义约定 (SemConv) 和 Elastic Common Schema 融合为资源、指标、日志、跟踪、安全事件和审计事件提供了一个通用的命名方案,可以跨代码库、库和平台使用。 ECS 与 OTel 语义约定的融合将:
- 围绕单一标准协调工作,以供事件数据生产者广泛采用
- 为运营推动更好的可见性和根本原因分析
- 使供应商和社区能够专注于更丰富的可观察性和安全功能,而不是处理数据转换任务
- 促进跨多种信号类型的跨组织分析,包括安全性和可观察性之间的分析
- 增加 OpenTelemetry 的采用以及可观察性和安全领域的持续发展和融合
为什么企业需要一个通用模式?
很多时候,企业很难理解问题发生的时间(可见性)以及发生的原因(根本原因分析)。 这种操作挑战是由于数据在不同模式中是孤立的和结构化的。 与了解问题、分析根本原因或优化运营相比,企业花在不必要的数据转换上的时间更多。
通过根据通用模式构建数据,运营团队将能够专注于识别、解决和预防问题,同时缩短平均解决时间 (MTTR)。 操作还可以通过没有重复数据和不必处理数据来规范化来降低成本。
通用模式的说明性示例是什么?
一个简单的说明性示例是当客户端的 IP 地址从多个源发送时,这些源正在监视或管理有关客户端的遥测数据。 可观察性平台以多种格式接收此信息:
src:10.42.42.42
client_ip:10.42.42.42
apache2.access.remote_ip: 10.42.42.42
context.user.ip:10.42.42.42
src_ip:10.42.42.42
以多种方式表示 IP 地址会给分析潜在问题甚至识别问题带来复杂性。 如果观察到的数据没有清晰的语义和通用模式,可观察性解决方案就很难自动关联、分析和识别数据的根本原因。 因此,运营(SRE、DevOps 等)必须理解这些多重定义,知道如何找到它们,然后手动规范化数据以进行分析。
使用通用模式,所有传入数据都采用标准化格式。 以上面的例子为例,每个来源都将以相同的方式识别客户端的 IP 地址:
source.ip:10.42.42.42
可观察性和安全解决方案现在可以利用一致定义的数据模式来实现数据关联和分析的自动化。 与将时间花在不必要的数据转换上相比,运营部门现在可以花更多时间了解问题、查找根本原因和优化运营。
什么是 Elastic 通用模式 (ECS)?
Elastic Common Schema (ECS)是一种开源 (Apache 2.0) 规范,是在 Elastic 用户社区的支持下开发的,用于定义在 Elasticsearch 中存储事件数据时要使用的一组通用字段。 ECS 的目标是支持并鼓励 Elasticsearch 用户规范化他们的事件数据,以便他们能够更好地分析、可视化和关联事件中表示的数据。 ECS 是 Elastic 可观察性和安全性解决方案的基础,是一种经过验证且被广泛采用的模式,自 2019 年成立以来多年来不断发展壮大。
什么是 OpenTelemetry 和 OpenTelemetry 语义约定?
OpenTelemetry (OTel) 是一个开源项目,提供一系列规范、工具、API 和 SDK,可用于生成、收集、处理和导出遥测数据(指标、日志和跟踪)以了解软件性能和行为。 它已成为 CNCF 生态系统中速度第二快的项目。
OpenTelemetry 的语义约定 (SemConv)为不同类型的操作和数据指定通用名称。 使用 OpenTelemetry 的 SemConv 的好处是遵循一个通用的命名方案,该方案可以跨代码库、库和平台为 OTel 最终用户标准化。 此外,另一大好处是供应商特定语义的解耦。 因此,通过 OpenTelemetry 的 SemConv,数据用户可以解决他们数据的供应商锁定问题。 因此,他们可以轻松地在可观察性解决方案(以及具有 ECS 贡献的安全解决方案)之间移动,而无需调整他们的数据收集。
ECS 贡献如何帮助 OpenTelemetry?
OpenTelemetry 最大的需求是加速描述日志和安全事件的模式定义。 ECS 的贡献者已经定义了一套统一且广为接受的日志语义约定,可以在 OTel 中采用。 ECS 广泛用于构建在可观察性和安全用例中使用的日志。
该组合将加速供应商创建的日志记录和 OTel 组件日志(例如,OTel Collector Logs Receivers and Processors)的集成。 目标是为最流行的系统类型定义与供应商无关的语义约定,并支持供应商创建或开源组件(例如,HTTP 访问日志、网络日志、系统访问/身份验证日志)将 OTel 相关性扩展到这些新信号 . 用户还将受益于使用将被 OTel 兼容的可观察性和安全产品和服务完全认可的交钥匙日志集成。
ECS for Security 的成熟是一个很好的机会,可以提高使用 OpenTelemetry 收集的安全用例数据的实用性。 整合 ECS 将使 OTel 生产商能够构建安全事件。
ECS 的许可会有任何变化吗?
ECS 许可不会有任何变化。 ECS 是 Apache 2.0 许可的,OpenTelemetry 也是。
Elastic 现在支持 OpenTelemetry 吗?
Elastic 原生支持 OTel。 Elastic 用户可以直接从应用程序或通过 OTel 收集器将 OTel 数据发送到 Elastic APM,后者处理 OTel SemConv 和 ECS。 有了这种原生 OTel 支持,所有 Elastic APM 功能都可以通过 OTel 使用。 请参阅 Elastic 文档以了解有关 OTel 集成的更多信息。
在哪里可以了解有关 ECS 和 Elastic 对 OpenTelemetry 的支持的更多信息?
在下方查找有关 Elastic 对 OpenTelemetry 的支持和集成的更多信息和文档:
- Elastic 可观察性 - 支持 OpenTelemetry
- Elastic 博客上的 OpenTelemetry 独立性
- 集成 Elastic 和 OpenTelemetry 文档
- 使用 Elastic 运行 OTel 演示
- Elastic Security 的 ECS 字段文档
- GitHub 上的 Merging Elastic Common Schema with OpenTelemetry Semantic Conventions 项目