CPUとCPUコアの検出

file systems の検出と同様に、CPUとCPUコアも検出できます。

アイテムキー

ディスカバリルールを設定するには、Zabbix エージェントのアイテムキー system.cpu.discovery を使用します。

サポートされるマクロ

このディスカバリキーは、CPU の順序番号と状態をそれぞれ示す 2 つのマクロ - {#CPU.NUMBER}{#CPU.STATUS} - を返します。 これはプロセッサを 0 から N - 1 まで列挙します。ここで N はプロセッサの総数です。

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

実際の物理プロセッサ、コア、ハイパースレッドを明確に区別することはできない点に注意してください。Linux、UNIX、および BSD システムでの {#CPU.STATUS} は、プロセッサの状態を返し、"online" または "offline" のいずれかになります。 Windows システムでは、この同じマクロが 3 つ目の値 - "unknown" - を表す場合があります。これは、プロセッサが検出されたものの、まだその情報が収集されていないことを示します。

CPU ディスカバリは、収集されたデータと整合性を保ち、データ取得のリソースを節約するために、エージェントのコレクタープロセスに依存します。 このため、このアイテムキーはエージェントバイナリのテスト -t コマンドラインフラグでは動作せず、NOT_SUPPORTED ステータスと、コレクタープロセスが開始されていないことを示すメッセージが返されます。

CPU ディスカバリに基づいて作成できるアイテムのプロトタイプには、たとえば次のものがあります。

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

アイテムキーの詳細な説明については、Zabbix agent item keys を参照してください。

NUMAシステム上で検出されたパフォーマンスカウンターアイテムに関する注意事項

Windowsのパフォーマンスカウンターの一部は、NUMAシステム上の一部の論理プロセッサでは利用できない場合があります。

たとえば、以下のキーを持つアイテムプロトタイプで検出されたアイテムは、最初のNUMAノードでのみ動作する場合があります。ほかのNUMAノード向けのアイテムは、未サポート状態になることがあります。

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

また、キーが "system.cpu.discovery" の検出ルールは、次のようなパフォーマンスカウンターに置き換えるための低レベルディスカバリマクロ値を提供しません。

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

一方、system.cpu.util アイテムは、プロセッサグループ数とプロセッサ数に応じて、CPU使用率を監視するために異なるパフォーマンスカウンターに依存します。
また、Windowsのプロセッサグループに関連するまれな不具合もあります。