3 Individuazione di CPU e core della CPU

In modo simile a come vengono individuati i file system, è possibile individuare anche le CPU e i core della CPU.

Chiave item

La chiave item da utilizzare nella regola di discovery è

system.cpu.discovery

Macro supportate

Questa chiave di discovery restituisce due macro - {#CPU.NUMBER} e {#CPU.STATUS} che identificano rispettivamente il numero d'ordine della CPU e il suo stato. Enumera i processori da 0 a N - 1, dove N è il numero totale di processori.

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

Si noti che non è possibile fare una chiara distinzione tra processori fisici reali, core e hyperthread. {#CPU.STATUS} sui sistemi Linux, UNIX e BSD restituisce lo stato del processore, che può essere "online" oppure "offline". Sui sistemi Windows, questa stessa macro può rappresentare un terzo valore - "unknown" - che indica che un processore è stato rilevato, ma non sono ancora state raccolte informazioni su di esso.

Il discovery della CPU si basa sul processo collector dell'agent per rimanere coerente con i dati forniti dal collector e risparmiare risorse durante l'ottenimento dei dati. Questo comporta che questa chiave item non funzioni con il flag da riga di comando di test (-t) del binario dell'agent, che restituirà uno stato NOT_SUPPORTED e un messaggio associato che indica che il processo collector non è stato avviato.

I prototipi di item che possono essere creati sulla base del discovery della CPU includono, ad esempio:

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

Per una descrizione dettagliata delle chiavi item, vedere chiavi item di Zabbix agent.

Note sugli item dei contatori delle prestazioni individuati sui sistemi NUMA

Alcuni contatori delle prestazioni di Windows potrebbero non essere disponibili per alcuni processori logici sui sistemi NUMA.

Ad esempio, gli item individuati con un prototipo di item con la chiave seguente potrebbero funzionare solo per il primo nodo NUMA. Gli item per gli altri nodi NUMA potrebbero trovarsi in stato non supportato.

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

Inoltre, una regola di discovery con chiave "system.cpu.discovery" non fornisce alcun valore di macro di low-level discovery da sostituire in contatori delle prestazioni come:

perf_counter["\Processor Information(<NUMA node index>,<CPU index in NUMA node>)\% Processor Time",60]

Mentre gli item system.cpu.util si basano su contatori delle prestazioni diversi per monitorare la percentuale di utilizzo della CPU a seconda del numero di gruppi di processori e del numero di processori. Inoltre, esiste un raro bug relativo ai gruppi di processori su Windows.