3 CPU 与 CPU 核心的发现

file systems的发现方式类似,也可以发现CPU和CPU核心。

监控项键

发现规则中使用的监控项密钥为

system.cpu.discovery

该监控项自Zabbix agent 2.4版本起支持

支持的宏

该发现键返回两个宏 - {#CPU.NUMBER} 和 {#CPU.STATUS},分别标识CPU序号和状态。 它从0到N-1枚举处理器,其中N是处理器总数。

[
           {
               "{#CPU.NUMBER}": 0,
               "{#CPU.STATUS}": "online"
           },
           {
               "{#CPU.NUMBER}": 1,
               "{#CPU.STATUS}": "offline"
           },
           {
               "{#CPU.NUMBER}": 2,
               "{#CPU.STATUS}": "unknown" /* "unknown" is only on Windows */
           },
           {
               "{#CPU.NUMBER}": 3,
               "{#CPU.STATUS}": "online"
           }
       ]

注意clear无法区分实际的物理 处理器、核心和超线程。在Linux、UNIX和 BSD系统上,{#CPU.STATUS}返回处理器的状态,可能是 "online"或"offline"。在Windows系统上,此宏可能表示 第三个值 - "unknown" - 表示已检测到处理器, 但尚未收集其信息。

CPU发现依赖于agent的收集器进程保持 与收集器提供的数据一致,并节省获取 数据的资源。这导致此监控项键无法 与agent二进制文件的测试(-t)命令行flag一起使用, 将返回NOT_SUPPORTED状态及伴随消息,表明 收集器进程尚未启动。

基于CPU发现可以创建的监控项原型包括,例如:

  • system.cpu.util[{#CPU.NUMBER},<type>,<mode>]
  • system.hw.cpu[{#CPU.NUMBER},<info>]

有关详细的监控项键描述,请参阅支持的-监控项-键

NUMA系统上发现的性能计数器监控项注意事项

在某些NUMA系统中,部分Windows performance counters可能无法用于某些逻辑处理器。

例如,通过监控项原型使用以下键值发现的监控项可能仅适用于第一个NUMA节点。其他NUMA节点的监控项可能处于不受支持状态。

perf_counter[\Processor({#CPU.NUMBER})\% Processor Time,60]

Also, a discovery rule with key "system.cpu.discovery" does not provide any low-level discovery macro values to substitute into such performance counters as:

perf_counter["\Processor Information(<NUMA节点索引>,<NUMA节点内CPU索引>)\% Processor Time",60]

由于system.cpu.util 监控项依赖不同的性能计数器来监控CPU利用率百分比(具体取决于处理器组数量和处理器数量)。此外,还存在一个与windows上的处理器组-winprocgroups相关的罕见错误。