添加进程元数据编辑

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_fieldstrue,则该字段将出现在输出中。
host_path
(可选) 默认情况下, host_path 字段设置为主机根目录 /。这是 /proc 安装的位置。对于 Kubernetes 或 Docker 的不同运行时配置,可以设置 host_path 来覆盖默认值。
cgroup_prefixes
(可选) 将与 cgroup 路径匹配的前缀列表。当 cgroup 路径以列表中的前缀开头时,则返回路径的最后一个元素作为容器 ID。仅应配置 cgroup_prefixescgroup_rexex 之一。如果两者都没有配置,则使用一个默认的 cgroup_regex 值,它匹配包含 64 个字符容器 ID 的 cgroup 路径(如 Docker、Kubernetes 和 Podman 的那些)。
cgroup_regex
(可选) 与 cgroup 路径匹配的正则表达式。它必须包含一个捕获组。当 cgroup 路径与正则表达式匹配时,则返回捕获组的值作为容器 ID。仅应配置 cgroup_prefixescgroup_rexex 之一。如果两者都没有配置,则使用一个默认的 cgroup_regex 值,它匹配包含 64 个字符容器 ID 的 cgroup 路径(如 Docker、Kubernetes 和 Podman 的那些)。
cgroup_cache_expire_time
(可选) 默认情况下, cgroup_cache_expire_time 设置为 30 秒。这是 cgroup 缓存元素过期之前的时间长度(以秒为单位)。可以将其设置为 0 以禁用 cgroup 缓存。在某些容器运行时技术(如 runc)中,容器的进程也是主机内核中的进程,并将受到 PID 循环/重用影响。过期时间需要设置得小于 PID 循环时间,以避免错误的容器 ID。