准则和最佳实践编辑

遵循架构准则和最佳实践时,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 之类的字段集。