[comment]: # ({c2b618f4-c2b618f4})
# 3 CPU 与 CPU 核心的发现

与[file
systems](/manual/discovery/low_level_discovery#configuring_low-level_discovery)的发现方式类似，也可以发现CPU和CPU核心。

[comment]: # ({/c2b618f4-c2b618f4})

[comment]: # ({3494efeb-3494efeb})
#### 监控项键

在[发现规则](/manual/discovery/low_level_discovery#发现规则)中使用的监控项密钥为

    system.cpu.discovery

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

[comment]: # ({/3494efeb-3494efeb})

[comment]: # ({87cbe304-33246748})
#### 支持的宏

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

```json
[
    {
        "{#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>]`

有关详细的监控项键描述，请参阅[支持的-监控项-键](/manual/config/items/itemtypes/zabbix_agent#支持的-监控项-键)。

[comment]: # ({/87cbe304-33246748})

[comment]: # ({d0e53ae2-ee436781})


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

在某些NUMA系统中，部分[Windows performance counters](/manual/config/items/perfcounters)可能无法用于某些逻辑处理器。

例如，通过监控项原型使用以下键值发现的监控项可能仅适用于第一个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](/manual/appendix/items/system_cpu_util) 监控项依赖不同的性能计数器来监控CPU利用率百分比（具体取决于处理器组数量和处理器数量）。此外，还存在一个与[windows上的处理器组-winprocgroups](/manual/installation/known_issues#windows上的处理器组-winprocgroups)相关的罕见错误。

[comment]: # ({/d0e53ae2-ee436781})
