添加 Docker 元数据
编辑添加 Docker 元数据编辑
默认情况下,收集日志和指标的输入使用此处理器,因此您无需显式配置它。
add_docker_metadata
处理器使用 Docker 容器中的相关元数据对每个事件进行注释。在启动时,处理器会检测 Docker 环境并缓存元数据。
要使用 Docker 元数据对事件进行注释,配置必须有效,并且处理器必须能够访问 Docker API。
每个事件都使用以下内容进行注释
- 容器 ID
- 名称
- 镜像
- 标签
在容器中运行 Elastic Agent 时,您需要提供对 Docker 的 unix 套接字的访问权限,以便 add_docker_metadata
处理器能够正常工作。您可以通过将套接字挂载到容器内部来实现。例如
docker run -v /var/run/docker.sock:/var/run/docker.sock ...
为了避免权限问题,您可能还需要将 --user=root
添加到 docker run
标志中。因为用户必须是 Docker 组的成员才能访问 /var/run/docker.sock
,所以如果 Elastic Agent 在容器内部以非 root 用户身份运行,则需要 root 权限。
如果 Docker 守护程序重新启动,挂载的套接字将失效,元数据将停止工作。发生这种情况时,您可以执行以下操作之一
- 每次 Docker 重新启动时都重新启动 Elastic Agent
- 挂载整个
/var/run
目录(而不是仅挂载套接字)
示例编辑
- add_docker_metadata: host: "unix:///var/run/docker.sock" #match_fields: ["system.process.cgroup.id"] #match_pids: ["process.pid", "process.parent.pid"] #match_source: true #match_source_index: 4 #match_short_id: true #cleanup_timeout: 60 #labels.dedot: false # To connect to Docker over TLS you must specify a client and CA certificate. #ssl: # certificate_authority: "/etc/pki/root/ca.pem" # certificate: "/etc/pki/client/cert.pem" # key: "/etc/pki/client/cert.key"
配置设置编辑
Elastic Agent 处理器在摄取管道之前执行,这意味着它们处理原始事件数据,而不是发送到 Elasticsearch 的最终事件。有关相关限制,请参阅 使用处理器的局限性是什么?
名称 | 必需 | 默认 | 描述 |
---|---|---|---|
|
否 |
|
Docker 套接字(UNIX 或 TCP 套接字)。 |
|
否 |
连接到 Docker 套接字时要使用的 SSL 配置。有关可用设置的列表,请参阅 SSL/TLS,特别是 表 4,“通用配置选项” 和 表 5,“客户端配置选项” 下的设置。 |
|
|
否 |
用于匹配容器 ID 的字段列表。至少有一个字段必须包含容器 ID,才能使事件得到丰富。 |
|
|
否 |
|
包含进程 ID 的字段列表。如果进程在 Docker 中运行,则事件将得到丰富。 |
|
否 |
|
是否从 |
|
否 |
|
是否从 |
|
否 |
|
在源路径中以正斜杠 ( |
|
否 |
|
容器元数据在清理和遗忘之前的非活动时间。 |
|
否 |
|
是否将标签中的点 ( |