与file systems的发现方式类似,也可以发现CPU和CPU核心。
在发现规则中使用的监控项密钥为
该监控项自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系统中,部分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相关的罕见错误。