3 CPUとCPUコアの検出

ファイルシステムが検出されるのと同様の方法で、CPUとCPUコアも検出できます。

アイテムキー

ディスカバリールールで使用するアイテムキーは次のとおりです。

system.cpu.discovery

サポートされているマクロ

このディスカバリキーは、{#CPU.NUMBER} と {#CPU.STATUS} の2つのマクロを返し、それぞれCPUの順序番号とステータスを識別します。 プロセッサーは 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ノードのインデックス>,<NUMAノードのCPUインデックス>)\% Processor Time",60]

system.cpu.util 項目は、プロセッサグループ数とプロセッサ数に応じて異なるパフォーマンスカウンターを使用してCPU使用率を監視します。 また、Windowsのプロセッサグループに関連する稀なバグがあります。