添加进程元数据
编辑添加进程元数据编辑
add_process_metadata
处理器使用运行进程的信息来丰富事件,这些信息由进程 ID (PID) 标识。
processors: - add_process_metadata: match_pids: - process.pid
添加到事件的字段如下
{ "container": { "id": "b5285682fba7449c86452b89a800609440ecc88a7ba5f2d38bedfb85409b30b1" }, "process": { "args": [ "/usr/lib/systemd/systemd", "--switched-root", "--system", "--deserialize", "22" ], "executable": "/usr/lib/systemd/systemd", "name": "systemd", "owner": { "id": "0", "name": "root" }, "parent": { "pid": 0 }, "pid": 1, "start_time": "2018-08-22T08:44:50.684Z", "title": "/usr/lib/systemd/systemd --switched-root --system --deserialize 22" } }
可选地,也可以包含进程环境
... "env": { "HOME": "/", "TERM": "linux", "BOOT_IMAGE": "/boot/vmlinuz-4.11.8-300.fc26.x86_64", "LANG": "en_US.UTF-8", } ...
它具有以下设置
-
match_pids
- 要查找 PID 的字段列表。处理器将按顺序搜索此列表,直到在当前事件中找到该字段,然后 PID 查找将应用于此字段的值。
-
target
- (可选) 将创建
process
对象的目标前缀。默认值为事件的根目录。 -
include_fields
- (可选) 要添加的字段列表。默认情况下,处理器将添加所有可用字段,除了
process.env
。 -
ignore_missing
- (可选) 当设置为
false
时,不包含 match_pids 中任何字段的事件将被丢弃,并会生成错误。默认情况下,此条件将被忽略。 -
overwrite_keys
- (可选) 默认情况下,如果目标字段已存在,则不会被覆盖,并将记录错误。如果
overwrite_keys
设置为true
,则此条件将被忽略。 -
restricted_fields
- (可选) 默认情况下,
process.env
字段不会输出,以避免泄露敏感数据。如果restricted_fields
为true
,则该字段将出现在输出中。 -
host_path
- (可选) 默认情况下,
host_path
字段设置为主机根目录/
。这是/proc
挂载的路径。对于 Kubernetes 或 Docker 的不同运行时配置,可以设置host_path
来覆盖默认值。 -
cgroup_prefixes
- (可选) 将与 cgroup 路径匹配的前缀列表。当 cgroup 路径以列表中的前缀开头时,路径的最后一个元素将作为容器 ID 返回。只能配置
cgroup_prefixes
或cgroup_rexex
之一。如果两者都没有配置,则使用默认的cgroup_regex
值,该值匹配包含 64 个字符容器 ID (例如来自 Docker、Kubernetes 和 Podman) 的 cgroup 路径。 -
cgroup_regex
- (可选) 将与 cgroup 路径匹配的正则表达式。它必须包含一个捕获组。当 cgroup 路径与正则表达式匹配时,捕获组的值将作为容器 ID 返回。只能配置
cgroup_prefixes
或cgroup_rexex
之一。如果两者都没有配置,则使用默认的cgroup_regex
值,该值匹配包含 64 个字符容器 ID (例如来自 Docker、Kubernetes 和 Podman) 的 cgroup 路径。 -
cgroup_cache_expire_time
- (可选) 默认情况下,
cgroup_cache_expire_time
设置为 30 秒。这是 cgroup 缓存元素在秒内过期之前的时间长度。它可以设置为 0 来禁用 cgroup 缓存。在某些容器运行时技术(如 runc)中,容器的进程也是主机内核中的进程,将受 PID 回滚/重用影响。过期时间需要设置为小于 PID 循环时间,以避免错误的容器 ID。