系统进程指标集
编辑系统进程指标集编辑
系统 process
指标集提供进程统计信息。每个进程提供一个文档。
此指标集在以下系统上可用:
- FreeBSD
- Linux
- macOS
- Windows
配置编辑
-
processes
-
启用
process
指标集后,可以使用processes
选项定义一个正则表达式列表,以过滤报告的进程。对于更复杂的过滤,您应该使用processors
配置选项。有关详细信息,请参阅 处理器。以下示例配置返回所有进程的指标
metricbeat.modules: - module: system metricsets: ["process"] processes: ['.*']
-
process.cgroups.enabled
-
启用
process
指标集后,可以使用此布尔配置选项来禁用 cgroup 指标。默认情况下,cgroup 指标收集已启用。以下示例配置在 Linux 上禁用 cgroup 指标。
metricbeat.modules: - module: system metricsets: ["process"] process.cgroups.enabled: false
-
process.cmdline.cache.enabled
- 默认情况下,此指标集会缓存正在运行进程的命令行参数。这意味着如果您在运行此指标集时更改了进程的命令行,则不会检测到这些更改。可以通过在配置中设置
process.cmdline.cache.enabled: false
来禁用缓存。 -
process.env.whitelist
-
此指标集可以收集用于启动进程的环境变量。此功能在 Linux、Darwin 和 FreeBSD 上可用。默认情况下不收集任何环境变量,因为它们可能包含敏感信息。您必须通过指定与变量名称匹配的正则表达式列表来配置要收集的环境变量。
metricbeat.modules: - module: system metricsets: ["process"] process.env.whitelist: - '^PATH$' - '^SSH_.*'
-
process.include_cpu_ticks
-
默认情况下,此指标集不会报告累积的 CPU 滴答值(只报告百分比)。将此选项设置为 true 将启用原始 CPU 滴答值(用户、系统和总 CPU 时间)的报告。
metricbeat.modules: - module: system metricsets: ["process"] process.include_cpu_ticks: true
-
process.include_per_cpu
- 默认情况下,指标会按 CPU 报告,如果可用。将此选项设置为 false 将禁用这些指标的报告。
-
process.include_top_n
- 这些选项允许您过滤掉所有不在 CPU 或内存方面排名前 N 的进程,以减少创建的文档数量。如果同时使用了
by_cpu
和by_memory
选项,则会包含这两个集合的并集。 -
process.include_top_n.enabled
- 设置为 false 以禁用前 N 功能并包含所有进程,无论其他选项如何。默认值为
true
,但除非其他选项(by_cpu
或by_memory
)设置为非零值,否则不会过滤任何内容。 -
process.include_top_n.by_cpu
- 要包含的按 CPU 排名前 N 的进程数量。进程按
system.process.cpu.total.pct
字段排序。默认值为 0。 -
process.include_top_n.by_memory
- 要包含的按内存排名前 N 的进程数量。进程按
system.process.memory.rss.bytes
字段排序。默认值为 0。
监控混合层次结构 cgroups编辑
进程指标集支持 V1 和 V2(有时称为统一)cgroups 控制器。但是,在运行混合层次结构(同时具有 V1 和 V2 控制器)的系统上,metricbeat 只会为给定进程报告其中一个层次结构。如果进程同时关联了 V1 和 V2 层次结构,metricbeat 会检查该进程是否附加到任何 V2 控制器。如果是,它将报告 cgroups V2 指标。如果不是,它将报告 V1 指标。
如果 metricbeat 在混合系统上的 docker 内运行,也需要解决方法。在 docker 中,metricbeat 将无法看到任何 V2 cgroups 组件。如果您希望从混合系统上的 docker 中监控 cgroups V2,则必须将统一 sysfs 层次结构(通常是 /sys/fs/cgroups/unified
)安装到容器中,然后使用 system.hostfs
指定容器内的文件系统根目录。
这是一个默认指标集。如果主机模块未配置,则默认情况下会启用此指标集。
有关指标集中每个字段的描述,请参阅 导出字段 部分。
以下是由此指标集生成的示例文档
{ "@timestamp": "2017-10-12T08:05:34.853Z", "event": { "dataset": "system.process", "duration": 115000, "module": "system" }, "metricset": { "name": "process", "period": 10000 }, "process": { "args": [ "/tmp/go-build2159656503/b001/process.test", "-test.paniconexit0", "-test.timeout=10m0s", "-test.v=true", "-data", "-test.run=TestData" ], "command_line": "/tmp/go-build2159656503/b001/process.test -test.paniconexit0 -test.timeout=10m0s -test.v=true -data -test.run=TestData", "cpu": { "pct": 0.0012, "start_time": "2023-11-28T03:13:18.000Z" }, "executable": "/tmp/go-build2159656503/b001/process.test", "memory": { "pct": 0.0008 }, "name": "process.test", "parent": { "pid": 592387 }, "pgid": 592387, "pid": 592516, "state": "sleeping", "working_directory": "/home/alexk/go/src/github.com/elastic/beats/metricbeat/module/system/process" }, "service": { "type": "system" }, "system": { "process": { "cgroup": { "cgroups_version": 2, "cpu": { "id": "session-426.scope", "path": "/user.slice/user-1000.slice/session-426.scope", "pressure": { "full": { "10": { "pct": 0 }, "300": { "pct": 0 }, "60": { "pct": 0 }, "total": 5524742 }, "some": { "10": { "pct": 0.07 }, "300": { "pct": 0.1 }, "60": { "pct": 0.3 }, "total": 32365561 } }, "stats": { "periods": 0, "system": { "norm": { "pct": 0 }, "ns": 548263994, "pct": 0 }, "throttled": { "periods": 0, "us": 0 }, "usage": { "norm": { "pct": 0 }, "ns": 1599791233, "pct": 0 }, "user": { "norm": { "pct": 0 }, "ns": 1051527238, "pct": 0 } } }, "id": "session-426.scope", "memory": { "id": "session-426.scope", "mem": { "events": { "high": 0, "low": 0, "max": 0, "oom": 0, "oom_kill": 0 }, "low": { "bytes": 0 }, "usage": { "bytes": 3864518656 } }, "memsw": { "events": { "fail": 0, "high": 0, "max": 0 }, "low": { "bytes": 0 }, "usage": { "bytes": 0 } }, "path": "/user.slice/user-1000.slice/session-426.scope", "stats": { "active_anon": { "bytes": 1759969280 }, "active_file": { "bytes": 990560256 }, "anon": { "bytes": 1781649408 }, "anon_thp": { "bytes": 618659840 }, "file": { "bytes": 1710731264 }, "file_dirty": { "bytes": 0 }, "file_mapped": { "bytes": 15060992 }, "file_thp": { "bytes": 0 }, "file_writeback": { "bytes": 0 }, "htp_collapse_alloc": 313, "inactive_anon": { "bytes": 327753728 }, "inactive_file": { "bytes": 698679296 }, "kernel_stack": { "bytes": 2899968 }, "major_page_faults": 3001, "page_activate": 0, "page_deactivate": 0, "page_faults": 79495294, "page_lazy_free": 0, "page_lazy_freed": 0, "page_refill": 0, "page_scan": 0, "page_steal": 0, "page_tables": { "bytes": 19267584 }, "per_cpu": { "bytes": 10336 }, "shmem": { "bytes": 21491712 }, "shmem_thp": { "bytes": 0 }, "slab": { "bytes": 60957576 }, "slab_reclaimable": { "bytes": 55816376 }, "slab_unreclaimable": { "bytes": 5141200 }, "sock": { "bytes": 0 }, "swap_cached": { "bytes": 0 }, "thp_fault_alloc": 8577, "unevictable": { "bytes": 0 }, "workingset_activate_anon": 0, "workingset_activate_file": 0, "workingset_node_reclaim": 0, "workingset_refault_anon": 0, "workingset_refault_file": 0, "workingset_restore_anon": 0, "workingset_restore_file": 0 } }, "path": "/user.slice/user-1000.slice/session-426.scope" }, "cmdline": "/tmp/go-build2159656503/b001/process.test -test.paniconexit0 -test.timeout=10m0s -test.v=true -data -test.run=TestData", "cpu": { "start_time": "2023-11-28T03:13:18.000Z", "system": { "ticks": 40 }, "total": { "norm": { "pct": 0.0012 }, "pct": 0.007, "ticks": 100, "value": 100 }, "user": { "ticks": 60 } }, "fd": { "limit": { "hard": 524288, "soft": 524288 }, "open": 15 }, "io": { "cancelled_write_bytes": 0, "read_bytes": 0, "read_char": 2517537, "read_ops": 9551, "write_bytes": 0, "write_char": 22, "write_ops": 4 }, "memory": { "rss": { "bytes": 26234880, "pct": 0.0008 }, "share": 16252928, "size": 1886003200 }, "num_threads": 9, "state": "sleeping" } }, "user": { "name": "alexk" } }