添加 Nomad 元数据
编辑添加 Nomad 元数据编辑
此功能处于技术预览阶段,在未来版本中可能会更改或删除。Elastic 将努力修复所有问题,但技术预览版中的功能不受官方 GA 功能支持 SLA 的约束。
add_nomad_metadata
处理器为部署在 Nomad 中的应用程序添加带有相关元数据的字段。
每个事件都标注有以下信息
- 分配名称、标识符和状态。
- 作业名称和类型。
- 部署作业的命名空间。
- 运行分配的代理所在的数据中心和区域。
processors: - add_nomad_metadata: ~
它具有以下用于配置连接的设置
-
地址
- (可选)用于请求元数据的代理 API 的 URL。默认情况下,它使用
http://127.0.0.1:4646
。 -
命名空间
- (可选)要监视的命名空间。如果设置,则仅注释此命名空间中分配的事件。
-
区域
- (可选)要监视的区域。如果设置,则仅注释此区域中分配的事件。
-
密钥 ID
- (可选)与代理 API 连接时使用的 SecretID。这是应用于令牌的 ACL 策略示例。
namespace "*" { policy = "read" } node { policy = "read" } agent { policy = "read" }
-
刷新间隔
- (可选)用于更新缓存元数据的间隔。默认为 30 秒。
-
清理超时
- (可选)删除分配后,在清理其关联资源之前要等待的时间。如果您希望在删除分配后接收事件(这可能发生在收集日志时),这将非常有用。默认为 60 秒。
您可以通过以下设置配置范围,来决定 Filebeat 应该注释与本地节点还是整个集群中的分配相关的事件
-
范围
- (可选)要监视的资源范围。它可以是
node
以仅获取单个代理中分配的元数据,也可以是global
以获取在任何代理上运行的分配的元数据。默认为node
。 -
节点
- (可选)使用
scope: node
时,如果无法自动发现本地节点的名称,请使用node
指定。
例如,如果 Filebeat 正在从集群中的所有分配中收集事件,则可以使用以下配置
processors: - add_nomad_metadata: scope: global
索引器和匹配器编辑
索引器和匹配器用于将事件中的字段与实际元数据相关联。Filebeat 使用此信息来了解要在每个事件中包含哪些元数据。
索引器编辑
索引器使用分配元数据为每个 pod 创建唯一标识符。
可用的索引器有:allocation_name
::通过其名称和命名空间标识分配(如 <命名空间>/<名称>
)allocation_uuid
::通过其唯一标识符标识分配。
匹配器编辑
匹配器用于构造与索引创建的标识符匹配的查找键。
field_format
编辑
使用使用字符串格式创建的键查找分配元数据,该字符串格式可以包含事件字段。
此匹配器有一个选项 format
来定义字符串格式。此字符串格式可以包含事件中任何字段的占位符。
例如,以下配置使用 allocation_name
索引器通过其名称和命名空间标识分配元数据,并使用事件中现有的自定义字段作为匹配键
processors: - 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 的一些字段进行查找,第一个字段在事件中找到
processors: - 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/<alloc UUID>/alloc/logs/...
收集日志时使用分配 UUID。
processors: - add_nomad_metadata: ... default_indexers.enabled: false default_matchers.enabled: false indexers: - allocation_uuid: matchers: - logs_path: logs_path: '/var/lib/NomadClient001'