入门
编辑入门
编辑ECS 能够并鼓励用户规范化事件数据,以便更好地分析、可视化和关联他们的事件。收集到的事件可以在摄取时进行规范化,跨索引一致地搜索,并以可预测的方式进行可视化。
请注意,在采用 Elastic 解决方案(例如 可观察性 或 安全)时,所有事件都将开箱即用地映射到 ECS。Elastic 提供了一套广泛的 集成,以简化您的数据源的摄取。
如果您依赖自定义数据管道和/或围绕特定需求构建内容,ECS 仍然可以帮助减轻跨数据搜索、分析和可视化的挑战。让我们看看如何使用通用架构简化搜索体验,然后看看如何将事件内容映射到 ECS 字段集。
简化搜索
编辑通过 ECS 为所有数据源定义规范化的架构,针对这些数据源的查询得以简化。考虑在采用 ECS 之前搜索特定的源 IP 地址。在您的查询中需要考虑所有不同的数据源及其字段映射。
src:10.42.42.42 OR client_ip:10.42.42.42 OR apache.access.remote_ip:10.42.42.42 OR context.user.ip:10.42.42.42 OR src_ip:10.42.42.42
所有源都映射到 ECS 后,查询变得更加简单。
source.ip:10.42.42.42
这不仅简化了编写查询,而且与其他用户共享的已保存查询也变得更加清晰。要熟悉 ECS 字段,您还可以查看 ECS 字段参考 部分。
统一可视化
编辑使用来自不同数据源的规范化数据,跨源构建有见地的可视化变得简单。从单个集中式仪表板,可以聚合和可视化来自 Web 服务器、IDS/IPS 设备和防火墙的事件,并通过钻取和透视功能增强,以便深入调查。使用规范化的 ECS 数据,可以轻松地集中监控各种数据源。
转换数据源
编辑为了将事件与 ECS 对齐,通常需要进行某种解析以将原始事件的内容转换为相关的 ECS 字段。根据您设计的 Elastic Stack 数据摄取管道的不同,解析事件的工作量也会有所不同。
例如,一个 Apache Web 服务器日志事件
10.42.42.42 - - [15/Jul/2020:20:48:32 +0000] "GET /content HTTP/1.1" 200 2571 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36"
为了将此事件映射到 ECS,事件的内容与相应的 ECS 字段相关联。
字段名称 | 值 |
---|---|
@timestamp |
|
event.original |
10.42.42.42 - - [15/Jul/2020:20:48:32 +0000] "GET /content HTTP/1.1" 200 2571 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36 |
http.request.method |
GET |
http.response.body.bytes |
2571 |
http.response.status_code |
200 |
http.version |
1.1 |
message |
GET /content HTTP/1.1" 200 2571 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36 |
source.address |
10.42.42.42 |
source.ip |
10.42.42.42 |
url.original |
|
user_agent.original |
|
除了提取原始事件中存在的值之外,我们还填充其他字段以提供有关事件本身的更多上下文。
-
ecs.version
:声明摄取管道针对哪个版本的 ECS 开发。 -
event.dataset
和event.module
:回答“此事件来自哪里”,并且每个管道、每个源都应具有硬编码的值。 -
event.kind
、event.category
、event.type
和event.outcome
:ECS 分类字段 也应使用对源发出的每种事件类型的了解进行硬编码。这些字段的内容仅限于 ECS 文档中详细说明的特定允许值。
字段名称 | 值 |
---|---|
ecs.version |
1.5.0 |
event.module |
apache |
event.dataset |
apache.access |
event.kind |
event |
event.category |
[ "network", "web" ] |
event.type |
[ "access" ] |
event.outcome |
success |
最后,可以使用处理器解释或丰富现有字段值,并将结果填充到最终事件中的其他字段中。
user_agent
处理器从原始用户代理字符串user_agent.original
中提取详细信息。- 像
source.ip
这样的 IP 字段可以使用geoip
处理器提供丰富功能,以添加有关与 IP 地址关联的位置和自治系统编号 (ASN) 的信息。 registered domain
处理器读取包含主机名的字段,并将注册域名写入另一个字段。- 事件收集器(例如 Beats)可以利用来自机器托管提供商(云)和/或来自主机机器(主机)的元数据来丰富每个事件。
以下是一些由元数据或解析器处理器处理的其他字段的示例。
字段名称 | 值 | 处理器 |
---|---|---|
host.architecture |
x86_64 |
|
host.hostname |
mbp.example.com |
|
host.ip |
[ "192.168.1.100" ] |
|
host.os.family |
darwin |
|
host.os.kernel |
19.4.0 |
|
host.os.name |
Mac OS X |
|
host.os.version |
10.15.4 |
|
user_agent.name |
Chrome |
|
user_agent.os.full |
Mac OS X 10.15.4 |
|
user_agent.os.name |
Mac OS X |
|
user_agent.os.version |
10.15.4 |
|
user_agent.version |
83.0.4103.106 |
|
字段映射参考指南
编辑我们已经从较高的层面介绍了如何将您的事件映射到 ECS。现在,如果您希望您的事件在 Elastic 解决方案中良好呈现,请查看以下参考指南,以了解有关每个事件的更多信息。