windows serverのCPU監視について

お世話になります。
windows serverのCPU監視についてご質問させてください。

Zabbix 4.4.0
監視対象 windows server 2016

上記環境にて、windows server のCPUコア数の使用率を監視したいと考えております。

LLD のキー system.cpu.discovery を使い、アイテムを下記のように設定してみましたが、コア数毎のIdle Timeが取得できませんでした。
アイテムキーとしては下記のようになるのかなと思っておりますが、ご教授頂きたく、よろしくおねがいします。

アイテムキー
perf_counter[\Processor Information({#CPU.NUMBER})\% Idle Time]

また、zabbix_getで値を取得しに行った場合、Processor Information(_Total)は取得出来るものの、
コア毎(Processor Information(0,3))では取得不可でした。

# zabbix_get -s 192.168.0.230 -p 10050 -k "perf_counter[\Processor Information(_Total)\% Idle Time]"
100.189958

# zabbix_get -s 192.168.0.230 -p 10050 -k "perf_counter[\Processor Information(0,3)\% Idle Time]"
ZBX_NOTSUPPORTED: Invalid second parameter.

typeperfの情報
------------------------
\Processor Information(_Total)\% Idle Time
\Processor Information(0,_Total)\% Idle Time
\Processor Information(0,7)\% Idle Time
\Processor Information(0,6)\% Idle Time
\Processor Information(0,5)\% Idle Time
\Processor Information(0,4)\% Idle Time
\Processor Information(0,3)\% Idle Time
\Processor Information(0,2)\% Idle Time
\Processor Information(0,1)\% Idle Time
\Processor Information(0,0)\% Idle Time
------------------------

お手数おかけしますが、よろしくお願いいたします。

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー yk_taiko の写真

「Invalid second parameter.」とある通り、第2引数があると解釈されています。
Zabbix のアイテムキーの引数は【,】で区切られるので、"0,3" のところですね。

アイテムキーの引数を【"】で括ってみて取れるか確認してみてください。

- https://www.zabbix.com/documentation/4.4/manual/config/items/item/key

ユーザー myyam の写真

ご返信ありがとうございます。

zabbix_get -s 172.17.0.230 -p 10050 -k "perf_counter[\Processor Information(0,3)\% Idle Time]"

zabbix_get -s 172.17.0.230 -p 10050 -k "perf_counter[\Processor Information"0,3"\% Idle Time]"

上記の様に?でしょうか?
変更いたしましたが、エラー内容は変わらずでございました。

ただ、アイテムキーを下記の様に変更したところ、値が取得できたようです。

perf_counter[\Processor Information({#CPU.NUMBER})\% Idle Time]

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

アイテムキーはtypeperfの情報に習って記載すると思っておりましたので、どこが悪かったのはイマイチ把握できず。

ユーザー yk_taiko の写真

<18:42修正>

こういう感じでどうでしょうか。

perf_counter["\Processor Information(0,{#CPU.NUMBER})\% Idle Time"]

※ディスカバリでは1桁の数字しか返ってこないかと思います。

※ Processor と、Processor Information について

https://blogs.technet.microsoft.com/askcorejp/2018/02/02/processor_infor...

ユーザー myyam の写真

ご返信ありがとうございます。

# zabbix_get -s 172.17.0.230 -p 10050 -k "perf_counter["\Processor Information(0,{#CPU.NUMBER})\% Idle Time"]"
-bash: 予期しないトークン `(' 周辺に構文エラーがあります

となってしまいました。

また、下記でアイテムのプロトタイプを作成しましたが、いずれもNGでした。

perf_counter["\Processor Information(0,{#CPU.NUMBER})\% Idle Time"]

zabbix_server.log
-------------------------------------
133265:20191126:102842.781 error reason for "WIN-LJ37CTODG86:perf_counter[\Processor Information(0)\% Idle Time]" changed: Cannot obtain performance information from collector.
133264:20191126:102843.782 error reason for "WIN-LJ37CTODG86:perf_counter[\Processor Information(1)\% Idle Time]" changed: Cannot obtain performance information from collector.
133267:20191126:102844.786 error reason for "WIN-LJ37CTODG86:perf_counter[\Processor Information(2)\% Idle Time]" changed: Cannot obtain performance information from collector.
133269:20191126:102845.790 error reason for "WIN-LJ37CTODG86:perf_counter[\Processor Information(3)\% Idle Time]" changed: Cannot obtain performance information from collector.
133265:20191126:102846.801 error reason for "WIN-LJ37CTODG86:perf_counter[\Processor Information(4)\% Idle Time]" changed: Cannot obtain performance information from collector.
133264:20191126:102847.802 error reason for "WIN-LJ37CTODG86:perf_counter[\Processor Information(5)\% Idle Time]" changed: Cannot obtain performance information from collector.
133267:20191126:102848.806 error reason for "WIN-LJ37CTODG86:perf_counter[\Processor Information(6)\% Idle Time]" changed: Cannot obtain performance information from collector.
133269:20191126:102849.810 error reason for "WIN-LJ37CTODG86:perf_counter[\Processor Information(7)\% Idle Time]" changed: Cannot obtain performance information from collector.
-------------------------------------

いくつかためしてみたのですが、下記のキーだと値が正常に取得可能なようです。

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

(Processor InformationをProcessorのみに変更)

一旦これで様子見をしようと思います。
ありがとうございます。

ユーザー fripper の写真

#Winテスト環境持ち合わせていないので、テストできていない発言です
#申し訳ありません

# zabbix_get -s 172.17.0.230 -p 10050 -k 'perf_counter["\Processor Information(0,1)\% Idle Time"]'

-k パラメータに与えるキー文字列の一番外側のクォートを、ダブルクォーテーションでなく
シングルクォーテーションで記載してみてはどうでしょうか?

shell側でのコマンドライン解釈時に
キー指定の先頭のダブルクォーテーションで開かれた「文字列開始」が
アイテムキー内パラメータ部分の先頭に書かれたダブルクォーテーションで閉じられてしまって
その後、アイテムキー内パラメータ部分末尾のダブルクォーテーションで再度「文字列開始」となり
アイテムキー指定末尾のダブルクォーテーションで閉じられている、と
シェルに解釈されてしまっているのではないかと思います

これで取得できるようであれば、WebUIからのアイテムキー指定は

perf_counter["\Processor Information(0,1)\% Idle Time"]

とすれば良いはずで

perf_counter["\Processor Information(0,{#CPU.NUMBER})\% Idle Time"]

といった感じになるのかと思います

いかがでしょうか?

ユーザー myyam の写真

ご返信ありがとうございます。

下記の通り値が取得できたようです。

# zabbix_get -s 172.17.0.230 -p 10050 -k 'perf_counter["\Processor Information(0,1)\% Idle Time"]'
100.369220

まだ、UIからは試しておりませんが、おそらく大丈夫そうですね。
ありがとうございました。