指南和最佳实践

编辑

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