如何通过Metricbeat采集主机CPU总体利用率而非CPU使用率或负载
Metricbeat监控CPU总体利用率实现方案
可行性结论
该需求可直接通过Metricbeat原生功能实现,无需额外插件或二次开发。
对应采集字段说明
你所定义的CPU总体利用率(CPU utilization),对应Metricbeat system模块采集的两个字段,可按需选择:
system.cpu.total.pct:未归一化的总CPU占比,数值范围为0 ~ CPU核心数,例如16核主机满负载时数值为16system.cpu.total.norm.pct:已归一化的总CPU占比,数值范围为0 ~ 1,乘以100即为日常使用的0~100%格式占比,和Windows任务管理器、Linux top命令显示的整机CPU占用数值完全一致
配置步骤
- 打开Metricbeat主配置文件
metricbeat.yml,定位到metricbeat.modules配置段,按如下示例配置system模块的cpu指标集:
metricbeat.modules: - module: system period: 10s # 采集周期,可按需调整为1s/30s等 metricsets: - cpu # 仅保留需要的指标集,memory、diskio等其他指标按需添加 cpu.metrics: [percentages, normalized_percentages] # percentages控制采集原始百分比指标,normalized_percentages控制采集归一化百分比指标
该配置同时兼容Windows、Linux、macOS系统,Windows主机也可以正常采集到CPU总体利用率指标。
2. (可选)如果不需要system.cpu.system.pct等CPU usage相关细分字段,可通过处理器过滤冗余字段:
processors: - drop_fields: fields: ["system.cpu.system.pct", "system.cpu.user.pct", "system.cpu.idle.pct"] ignore_missing: true
- 执行命令
metricbeat test config验证配置合法性,返回Config OK后重启Metricbeat进程即可生效。
内容的提问来源于stack exchange,提问作者Eliav Louski
相关产品推荐
相关产品推荐

