添加 Nomad 元数据

编辑

此功能为技术预览版,可能会在未来的版本中更改或删除。Elastic 将努力修复任何问题,但技术预览版的功能不受官方 GA 功能的支持 SLA 的约束。

add_nomad_metadata 处理器添加包含在 Nomad 中部署的应用程序的相关元数据的字段。

每个事件都会使用以下信息进行注释

  • 分配名称、标识符和状态
  • 作业名称和类型
  • 部署作业的命名空间
  • 运行分配的代理所在的数据中心和区域。

示例

编辑
  - add_nomad_metadata: ~

配置设置

编辑

Elastic Agent 处理器在摄取管道之前执行,这意味着它们处理原始事件数据,而不是发送到 Elasticsearch 的最终事件。有关相关限制,请参阅使用处理器的限制有哪些?

名称 必需 默认值 描述

地址

http://127.0.0.1:4646

用于请求元数据的代理 API 的 URL。

命名空间

要监视的命名空间。如果设置,则只会注释此命名空间中分配的事件。

区域

要监视的区域。如果设置,则只会注释此区域中分配的事件。

secret_id

与代理 API 连接时要使用的 SecretID。这是一个应用于令牌的示例 ACL 策略。

namespace "*" {
  policy = "read"
}
node {
  policy = "read"
}
agent {
  policy = "read"
}

refresh_interval

30 秒

用于更新缓存元数据的间隔。

cleanup_timeout

60 秒

在删除分配后清理分配的相关资源之前等待的时间。如果您希望在删除分配后收到事件(在收集日志时会发生这种情况),则此操作很有用。

范围

节点

要监视的资源的范围。指定 node 以获取单个代理中分配的元数据,或者指定 global 以获取在任何代理上运行的分配的元数据。

节点

使用 scope: node 时,如果无法自动发现本地节点,请使用 node 指定本地节点的名称。

例如,当 Elastic Agent 从群集中的所有分配收集事件时,可以使用以下配置

  - add_nomad_metadata:
      scope: global

索引器和匹配器

编辑

索引器和匹配器用于将事件中的字段与实际元数据相关联。Elastic Agent 使用此信息来了解要在每个事件中包含哪些元数据。

索引器
编辑

索引器使用分配元数据为每个 Pod 创建唯一标识符。

可用的索引器有

allocation_name
按其名称和命名空间(如 <命名空间>/<名称>)标识分配
allocation_uuid
按其唯一标识符标识分配。
匹配器
编辑

匹配器用于构造与索引创建的标识符匹配的查找键。

field_format
编辑

使用使用可以包含事件字段的字符串格式创建的键查找分配元数据。

此匹配器有一个选项 format 来定义字符串格式。此字符串格式可以包含事件中任何字段的占位符。

例如,以下配置使用 allocation_name 索引器按其名称和命名空间标识分配元数据,并使用事件中存在的自定义字段作为匹配键

- add_nomad_metadata:
    ...
    default_indexers.enabled: false
    default_matchers.enabled: false
    indexers:
      - allocation_name:
    matchers:
      - field_format:
          format: '%{[labels.nomad_namespace]}/%{[fields.nomad_alloc_name]}'
fields
编辑

使用某些特定字段的值作为键查找分配元数据。定义多个字段时,将使用事件中包含的第一个字段。

此匹配器有一个选项 lookup_fields 来定义将用于查找的字段值。

例如,以下配置使用 allocation_uuid 索引器标识分配,并定义一个匹配器,该匹配器使用可以在其中找到分配 UUID 的一些字段进行查找,这是它在事件中找到的第一个字段

- add_nomad_metadata:
    ...
    default_indexers.enabled: false
    default_matchers.enabled: false
    indexers:
      - allocation_uuid:
    matchers:
      - fields:
          lookup_fields: ['host.name', 'fields.nomad_alloc_uuid']
logs_path
编辑

使用从存储在 log.file.path 字段中的日志路径提取的标识符查找分配元数据。

此匹配器具有一个可选的 logs_path 选项,其中包含包含本地代理日志的目录的基路径。

当日志收集在 /var/lib/nomad 下时,默认配置能够使用分配 UUID 查找元数据。

例如,当从 /var/lib/NomadClient001/alloc/<分配 UUID>/alloc/logs/... 收集日志时,以下配置将使用分配 UUID。

- add_nomad_metadata:
    ...
    default_indexers.enabled: false
    default_matchers.enabled: false
    indexers:
      - allocation_uuid:
    matchers:
      - logs_path:
          logs_path: '/var/lib/NomadClient001'