3

私はサーバーの混合セットを持っています。英語でWindowsを実行しているサーバーもあれば、イタリア語でWindowsを実行しているサーバーもあります。

ロケールに依存する文字列を使用せずにパフォーマンスカウンターの値を読み取る方法はありますか?

Zabbixのドキュメントを読んだところ、のような数値形式を使用できるはずですが\2\6、ZabbixでもPowershellでも機能しません。

CPU使用率を監視したい(\Processore(_Total)\% Tempo processore)。

どんな提案でも大歓迎です。

4

2 に答える 2

3

解決策は簡単です。唯一の問題は、すべての情報をまとめることです。

まず、regeditを開き、次のキーに移動します。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib

3桁の名前のエントリがあります(例:009、010、...)。これらの3桁は言語IDです。009は英語、010はイタリア語などです。

これらの各エントリには、Counterという名前のキーがあります。それを開き(ダブルクリック)、テキストエディタで好みの言語のコンテンツをコピーします。次のようなものがあります。

1
1847
2
System
4
Memory
6
% Processor Time
10
File Read Operations/sec
12
File Write Operations/sec
14
File Control Operations/sec
16
...

ご覧のとおり、各ラベルの下に番号があります。これは使用するインデックスです。たとえば、のインデックスは% Processor Timeです10

複合式(たとえば\Processore(_Total)\% Tempo processore)がある場合は、を使用する必要があります\238(_Total)\6(私はイタリア語のラベルを使用しました)。

Zabbixでは、過去15分間の平均CPU使用率を監視するために使用する式は次のとおりです。

perf_counter[\238(_Total)\6, 900]

私はすべてを言ったことを望みます:何かはっきりしないことがあれば、コメントを残してください。

于 2013-02-28T08:12:14.940 に答える
1

PowerShellまたはzabbixにタグを付けなかったので、Cでそれを行う方法の例を気にしないと思います。それが目標であれば、PowerShell内から使用できます。

一般に(そしてあなたが指摘したように)、インデックスごとにクエリを実行できます。

それらはMSDNに関する非常に広範な例を持っており、実際にはインデックスによるクエリ方法を含むフル機能のプログラムです。:MSDN:カウンターデータの取得

于 2013-02-22T09:19:18.747 に答える