带你读《Elastic Stack 实战手册》之68:——3.5.20. ECS介绍(上)

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 带你读《Elastic Stack 实战手册》之68:——3.5.20. ECS介绍(上)

3.5.20. ECS介绍


创作人:徐天豪

审稿人:亢伟楠

 

Elastic Common Schema (ECS) 是一个开源规范,定义了在 Elasticsearch 中存储事件数据时要使用的一组通用字段,规范了命名、层级与类型。

 

背景

 

无论你是在执行安全分析、运营分析,还是完全不同的用例,你都可能常常需要对来自不同来源的数据进行集中分析。

 

这些不同来源的数据里面常常会出现字段含义相同但实际名称类型不一致的情况,比如:

对于源 ip 这个字段有的厂商起名为 source_ip,有的厂商起名为 src_ip


image.png


在下述的一些数据源不同的情况,会使我们的数据在格式方面常常出现各种不一致的现象:

 

l 不同的数据类型(例如指标、日志、APM)

l 采用了不同供应商的设备

l 相似但不完全相同的数据源(例如端点数据的多个来源,譬如 IDS、防火墙 和 IPS)

 

在这种情况下,假设我们需要结合多数据源进行下钻分析,全局监控时,我们会面临巨大的工作量:


l 当我们接入新的数据源后,在使用数据之前需要熟悉其中的每个字段

l 当我们查询的时候的,需要针对不同的数据源调整查询语句

l 当我们配置仪表盘告警的时候,需要针对不同的数据源进行大量的重复配置

 

由于这种多数据源字段命名、类型不一致的问题会给我们实际工作中带来大量重复的定制化工作,因此迫切的需要通过定义一组通用的字段和数据类型,让用户对不同的数据源执行统一的搜索、可视化和分析。

 ECS是什么

 

Elastic Common Schema(ECS)是一个开源规范,它定义了一组通用字段和命名准则,用于将数据采集到 Elasticsearch 中,可让用户以一致的方式分析来自不同来源的数据。ECS 是灵活的,你可以添加自定义的字段。

 image.png

ECS 将许多字段针对用途进行了分组,这些分组又被称为“字段集”。其中 base 字段集中的字段是在事件的最顶层中进行定义的,所有其他字段集都定义为 Elasticsearch 中的嵌套对象,所有字段都在该对象下定义。完整的 ECS Field reference 可以直接参考官方文档

https://www.elastic.co/guide/en/ecs/1.9/ecs-field-reference.html 


ECS 采用专门构建的分类学,具有很好的可预测性,同时还包括可适应定制用例的包罗万象的规格,具有很好的通用性。ECS 的分类学会将数据元素划分为以下三个级别的字段:


image.png


通过下图我们可以看到通过 ECS 实现了每一个字段,字段名称与字段类型的统一。


image.png


如何使用ECS

 

如何转换


我们要做的事就是将现有的数据按照 ECS 的规范进行映射转换具体的话可以分为以下三个

步骤:

 

1、查看原始事件中的每个字段并将其映射到相关的 ECS 字段

2、查看我们正在使用的任何字段集中的其他核心字段、扩展字段,并尝试填充它

3、设置ecs.version为我们当前正在使用的版本,方便后续的版本升级

 

我们以下面的这一条事件为例:

 

1、这条事件里的信息可以对应上4个ECS字段集,分别是 agent、cloud、event、host,再加上base 共计5个 ECS 字段集,我们将其中的每个字段映射成相关的 ECS 字段

2、如果不存在相关的 ECS 核心字段与扩展字段,使用 ECS 命名准则自定义字段,并将原始事件字段映射到该字段。

3、查看这6个字段集中的所有核心字段与扩展字段,并尝试填充它。

l 考虑根据其他元数据(例如静态信息)填充该字段(例如,event.category:authentication即使你的身份验证事件未提及“authentication”一词,也要添加)

l 尽可能的采集其他环境元数据,例如有关主机、容器或云实例的信息。

4、设置ecs.version信息,方便后续版本升级


image.png


什么时候进行转换


ECS 字段转换的动作可以发生在事件的产生阶段,ETL 阶段或者 ingest 阶段进行转换。


image.png


注意:从 Beats 7.0 开始,所有事件源已经自动全部转换为 ECS 格式,如果我们采用 Beats 版本低于7.0的话,我们需要手动在后续环节进行字段的转换。

 

自定义字段命名注意事项

 

l 不要使用和 ECS namespace 冲突的字段名

l 所有的字段名必须小写

l 除了下划线和点以外不能有其他的特殊字符

l 使用下划线连接词语

l 尽可能避免使用缩写

l 除非字段描述历史信息,否则使用现在时

l 正确使用单复数名称以反映字段内容



 《Elastic Stack 实战手册》——三、产品能力——3.5 进阶篇——3.5.20. ECS介绍(下) https://developer.aliyun.com/article/1226519

 

相关实践学习
一小时快速掌握 SQL 语法
本实验带您学习SQL的基础语法,快速入门SQL。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1天前
|
SQL 弹性计算 分布式计算
实时计算 Flink版产品使用合集之如果产品是基于ak的,可以提交sql任务到ecs自建hadoop集群吗
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
13 0
|
2天前
|
分布式计算 Java 数据库连接
实时数仓 Hologres产品使用合集之该创建外部表maxCompute的这个服务器列表如何解决
实时数仓Hologres是阿里云推出的一款高性能、实时分析的数据库服务,专为大数据分析和复杂查询场景设计。使用Hologres,企业能够打破传统数据仓库的延迟瓶颈,实现数据到决策的无缝衔接,加速业务创新和响应速度。以下是Hologres产品的一些典型使用场景合集。
21 0
|
2天前
|
弹性计算 运维 Java
Serverless 应用引擎产品使用之在Serverless 应用引擎中,将 Java 应用从 ECS 迁移到 SAE如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
45 2
|
2天前
|
弹性计算 运维 Serverless
Serverless 应用引擎产品使用之在阿里函数计算中,使用阿里云API或SDK从函数计算调用ECS实例的服务如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
44 4
|
2天前
|
机器学习/深度学习 人工智能 TensorFlow
人工智能平台PAI产品使用合集之如何在CPU服务器上使用PAIEasyRec进行分布式训练
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
2天前
|
运维 Serverless 文件存储
Serverless 应用引擎产品使用之阿里函数计算中stable. diffusion应用的服务器可以使用那种99元100G一年的道用型nas如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
31 0
|
2天前
|
弹性计算 前端开发 持续交付
云效产品使用常见问题之导入ECS主机到资源池找不到导入的入口如何解决
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
2天前
|
消息中间件 关系型数据库 MySQL
Flink CDC产品常见问题之把flink cdc同步的数据写入到目标服务器失败如何解决
Flink CDC(Change Data Capture)是一个基于Apache Flink的实时数据变更捕获库,用于实现数据库的实时同步和变更流的处理;在本汇总中,我们组织了关于Flink CDC产品在实践中用户经常提出的问题及其解答,目的是辅助用户更好地理解和应用这一技术,优化实时数据处理流程。
|
2天前
|
存储 弹性计算 算法
倚天产品介绍|倚天ECS加速国密算法性能
倚天ECS是阿里云基于平头哥自研数据中心芯片倚天710推出arm架构实例,采用armv9架构,支持SM3/SM4指令,可以加速国密算法性能。本文基于OpenSSL 3.2和Tongsuo 实测对比了倚天ECS g8y实例和Intel g7 实例国密性能。为用户选择ECS提供参考。
|
2天前
|
弹性计算 容灾 定位技术
ECS(Elastic Compute Service)地域和可用区的选择
ECS(Elastic Compute Service)地域和可用区的选择
90 2