3 Erkennung von CPUs und CPU-Kernen
Ähnlich wie Dateisysteme erkannt werden, ist es auch möglich, CPUs und CPU-Kerne zu erkennen.
Datenpunkt-Schlüssel
Um die Erkennungsregel zu konfigurieren, verwenden Sie den Zabbix-Agent-Datenpunkt-Schlüssel system.cpu.discovery.
Unterstützte Makros
Dieser Discovery-Schlüssel gibt zwei Makros zurück - {#CPU.NUMBER} und {#CPU.STATUS} -, die die CPU-Nummer bzw. den Status identifizieren.
Er zählt Prozessoren von 0 bis N - 1 auf, wobei N die Gesamtanzahl der Prozessoren ist.
[
{
"{#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"
}
]
Beachten Sie, dass keine klare Unterscheidung zwischen tatsächlichen physischen
Prozessoren, Kernen und Hyperthreads getroffen werden kann. {#CPU.STATUS} gibt auf Linux-, UNIX- und
BSD-Systemen den Status des Prozessors zurück, der entweder
"online" oder "offline" sein kann. Auf Windows-Systemen kann dieses Makro
einen dritten Wert darstellen - "unknown" -, was darauf hinweist, dass ein Prozessor
erkannt wurde, für ihn jedoch noch keine Informationen erfasst wurden.
Die CPU-Discovery stützt sich auf den Collector-Prozess des Agent, um
mit den vom Collector bereitgestellten Daten konsistent zu bleiben und Ressourcen
für die Datenerfassung zu sparen. Dadurch funktioniert dieser item-Schlüssel
nicht mit dem Befehlszeilen-Flag -t der Agent-Binärdatei, das einen
Status NOT_SUPPORTED und eine zugehörige Meldung zurückgibt, dass der
Collector-Prozess nicht gestartet wurde.
Item-Prototypen, die auf Basis der CPU-Discovery erstellt werden können, sind zum Beispiel:
system.cpu.util[{#CPU.NUMBER},<type>,<mode>]system.hw.cpu[{#CPU.NUMBER},<info>]
Eine detaillierte Beschreibung des item-Schlüssels finden Sie unter Zabbix agent item keys.
Hinweise zu erkannten Leistungsindikator-Datenpunkten auf NUMA-Systemen
Einige Windows-Leistungsindikatoren sind für einige der logischen Prozessoren auf NUMA-Systemen möglicherweise nicht verfügbar.
Beispielsweise funktionieren Datenpunkte, die mit einem Datenpunktprototyp mit dem folgenden Schlüssel erkannt wurden, möglicherweise nur für den ersten NUMA-Knoten. Datenpunkte für die anderen NUMA-Knoten können sich im nicht unterstützten Zustand befinden.
perf_counter[\Processor({#CPU.NUMBER})\% Processor Time,60]
Außerdem stellt eine Erkennungsregel mit dem Schlüssel "system.cpu.discovery" keine Low-Level-Discovery-Makrowerte bereit, die in solche Leistungsindikatoren eingesetzt werden können wie:
perf_counter["\Processor Information(<NUMA node index>,<CPU index in NUMA node>)\% Processor Time",60]
Während system.cpu.util-Datenpunkte auf unterschiedliche Leistungsindikatoren angewiesen sind, um den Prozessor-Auslastungsprozentsatz je nach Anzahl der Prozessorguppen und Prozessoren zu überwachen.
Außerdem gibt es einen seltenen Fehler im Zusammenhang mit Prozessorguppen unter Windows.