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 dell'item

Per configurare la regola di discovery, usa la chiave dell'item dell'agent Zabbix system.cpu.discovery.

Macro supportati

Questa chiave di discovery restituisce due macro - {#CPU.NUMBER} e {#CPU.STATUS} - che identificano rispettivamente il numero di ordine della CPU e il relativo 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 distinguere chiaramente tra processori fisici reali, core e hyperthread. {#CPU.STATUS} su sistemi Linux, UNIX e BSD restituisce lo stato del processore, che può essere "online" oppure "offline". Nei sistemi Windows, questa stessa macro può rappresentare un terzo valore - "unknown" - che indica che è stato rilevato un processore, ma non sono ancora state raccolte informazioni su di esso.

Il discovery della CPU si basa sul processo collector di agent per rimanere coerente con i dati forniti dal collector e risparmiare risorse nell'ottenimento dei dati. Questo comporta che questa chiave item non funzioni con il flag da riga di comando di test (-t) del binario di 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 in base al discovery della CPU includono, ad esempio:

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

Per una descrizione dettagliata della chiave item, vedere Zabbix agent item keys.

Note sugli item dei contatori di prestazioni rilevati sui sistemi NUMA

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

Ad esempio, gli item rilevati 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 nello 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 di 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 diversi contatori di prestazioni per monitorare la percentuale di utilizzo della CPU in base al numero di gruppi di processori e al numero di processori. Esiste inoltre un bug raro relativo ai gruppi di processori su Windows.