3 Découverte des CPU et des cœurs de CPU
De la même manière que les systèmes de fichiers sont découverts, il est également possible de découvrir les CPU et les cœurs de CPU.
Clé d'élément
Pour configurer la règle de découverte, utilisez la clé d'élément de l'agent Zabbix system.cpu.discovery.
Macros prises en charge
Cette clé de découverte renvoie deux macros - {#CPU.NUMBER} et {#CPU.STATUS} - identifiant respectivement le numéro d'ordre du CPU et son état.
Elle énumère les processeurs de 0 à N - 1, où N est le nombre total de processeurs.
[
{
"{#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"
}
]
Notez qu'il n'est pas possible d'établir une distinction claire entre les processeurs physiques réels, les cœurs et les hyperthreads. {#CPU.STATUS} sur les systèmes Linux, UNIX et BSD renvoie l'état du processeur, qui peut être soit "online", soit "offline". Sur les systèmes Windows, cette même macro peut représenter une troisième valeur - "unknown" - qui indique qu'un processeur a été détecté, mais qu'aucune information n'a encore été collectée à son sujet.
La découverte du CPU s'appuie sur le processus collecteur de l'agent afin de rester cohérente avec les données fournies par le collecteur et d'économiser des ressources lors de l'obtention des données. Cela a pour effet que cette clé d'élément ne fonctionne pas avec l'option de ligne de commande de test (-t) du binaire de l'agent, qui renverra un statut NOT_SUPPORTED ainsi qu'un message indiquant que le processus collecteur n'a pas été démarré.
Les prototypes d'élément pouvant être créés à partir de la découverte du CPU incluent, par exemple :
system.cpu.util[{#CPU.NUMBER},<type>,<mode>]system.hw.cpu[{#CPU.NUMBER},<info>]
Pour une description détaillée de la clé d'élément, voir Clés d'élément de l'agent Zabbix.
Notes sur les éléments de compteur de performance découverts sur les systèmes NUMA
Certains compteurs de performance Windows peuvent ne pas être disponibles pour certains processeurs logiques sur les systèmes NUMA.
Par exemple, les éléments découverts avec un prototype d'élément utilisant la clé ci-dessous peuvent fonctionner uniquement pour le premier nœud NUMA. Les éléments pour les autres nœuds NUMA peuvent être dans un état non pris en charge.
perf_counter[\Processor({#CPU.NUMBER})\% Processor Time,60]
De plus, une règle de découverte avec la clé "system.cpu.discovery" ne fournit aucune valeur de macro de découverte de bas niveau à substituer dans des compteurs de performance tels que :
perf_counter["\Processor Information(<NUMA node index>,<CPU index in NUMA node>)\% Processor Time",60]
Alors que les éléments system.cpu.util s'appuient sur différents compteurs de performance
pour surveiller le pourcentage d'utilisation du CPU en fonction du nombre de groupes de processeurs et du nombre de processeurs.
Il existe également un bogue rare lié aux groupes de processeurs sous Windows.