指南和最佳实践

编辑

遵循架构指南和最佳实践才能充分发挥 ECS 架构的作用。

ECS 字段级别

编辑

ECS 定义了“核心”和“扩展”字段。

  • 核心字段。 所有用例中最常见的字段被定义为核心字段

    这些通用字段被各种用例中的分析内容(搜索、可视化、仪表板、告警、机器学习作业、报告)使用。旨在处理这些字段的分析内容应该能够正确处理来自任何相关来源的数据。

    首先关注填充这些字段。

  • 扩展字段。任何不是核心字段的字段都被定义为扩展字段。扩展字段可能适用于更狭窄的用例,或者根据用例的不同而有更多不同的解释。扩展字段更有可能随着时间的推移而发生变化。

表中的每个 ECS 字段 都被标识为核心字段或扩展字段。

一般指南

编辑
  • 文档必须包含@timestamp字段。
  • 使用为 ECS 字段定义的数据类型
  • 使用ecs.version字段定义使用的 ECS 版本。
  • 尽可能多的字段映射到 ECS。
字段名称指南
编辑
  • 字段名称必须小写
  • 使用下划线组合单词
  • 除下划线外,不允许使用特殊字符
  • 使用现在时态,除非字段描述的是历史信息。
  • 正确使用单数和复数名称来反映字段内容。

    • 例如,使用requests_per_sec而不是request_per_sec
  • 为所有字段使用前缀,除基本字段外。

    • 例如,所有host字段都以host.为前缀。这种分组称为字段集。
  • 使用点将字段嵌套在字段集中

    • 文档结构应为嵌套的 JSON 对象。如果您使用 Beats 或 Logstash,则会自动为您嵌套 JSON 对象。如果您使用 API 导入到 Elasticsearch,则您的字段必须是嵌套对象,而不是包含点的字符串。
    • 有关更多详细信息,请参阅为什么 ECS 使用点表示法而不是下划线表示法?
  • 从一般到特定。将字段集的嵌套组织从一般到特定,以便能够将字段分组到具有前缀的对象中,例如host.*
  • 避免重复或词语重复

    • 如果字段名称的一部分已包含在字段集的名称中,请避免重复。例如:host.host_ip应为host.ip
    • 如果更改字段名称会破坏社区中的强烈约定,则可以例外。例如:host.hostname是此规则的一个例外。
  • 尽可能避免缩写

    • 如果该概念的名称过于偏向于缩写,则可以例外。例如:ip字段,或osgeo之类的字段集。