10. 仮想マシン監視
概要
Zabbixは、ローレベルディスカバリルールを使用してVMwareハイパーバイザーおよび仮想マシンを自動的に検出し、 事前定義されたホストプロトタイプに基づいて、それらを監視するためのホストを作成できます。
Zabbixには、VMware vCenterまたはESXiハイパーバイザーを監視するためのすぐに使えるテンプレートも含まれています。
必要なVMware vCenterまたはvSphereの最小バージョンは5.1です。
データ収集
仮想マシンの監視は、次の2つのステップで構成されます。
-
Zabbixの vmware collector プロセスが仮想マシンのデータを収集します。これらのプロセスは、SOAPプロトコルを介してVMware Webサービスから必要な情報を取得し、前処理を行ったうえで、Zabbixサーバーの共有メモリに保存します。
-
Zabbixの poller プロセスが、Zabbixのシンプルチェック VMware monitoring item keys を使用してデータを取得します。
Zabbixは、収集したデータをVMware設定データとVMwareパフォーマンスカウンターデータに分類します。
これら2種類のデータは、いずれも vmware collector プロセスによって独立して収集されます。
VMwareパフォーマンスカウンター情報に基づいて、次の統計情報を利用できます。
- データストア
- ディスクデバイス
- CPU
- 電源
- ネットワークインターフェース
- カスタムパフォーマンスカウンターのアイテム
VMwareパフォーマンスカウンターからデータを取得するアイテムの完全な一覧については、VMware monitoring item keys を参照してください。
VMwareイベントの取得頻度は、vmware.eventlog のポーリング間隔に依存しますが、5秒未満にはできないことに注意してください。
設定
Zabbix サーバーが ソース からコンパイルされている場合、仮想マシン監視を有効にするには --with-libcurl --with-libxml2 の設定オプションを指定してコンパイルする必要があります。
Zabbix パッケージは、これらのオプションがすでに有効な状態でコンパイルされています。
仮想マシン監視のために、次の Zabbix サーバー設定ファイルパラメーターを変更できます。
監視対象の VMware サービス数よりも多くのコレクターを有効にすることを推奨します。
そうしないと、VMware のパフォーマンスカウンター統計の取得が、VMware の設定データの取得によって遅延する可能性があります(大規模な環境では時間がかかります)。
一般に、StartVMwareCollectors の値は 2 を下回らず、かつ監視対象の VMware サービス数の 2 倍を超えないようにする必要があります: サービス数 < StartVMwareCollectors < (サービス数 * 2)。
たとえば、1 つの VMware サービスを監視する場合は StartVMwareCollectors を 2 に設定し、3 つのサービスを監視する場合は StartVMwareCollectors を 5 に設定します。
必要なコレクター数は、VMware 環境の規模や VMwareFrequency および VMwarePerfFrequency の設定パラメーターにも依存することに注意してください。
データストア容量メトリクスをサポートするには、VMware の vpxd.stats.maxQueryMetrics キーの値が少なくとも 64 に設定されていることを確認してください。
詳細については、VMware Knowledge Base 記事 を参照してください。
ディスカバリ
Zabbixは、低レベルディスカバリルール(例: vmware.hv.discovery[{$VMWARE.URL}])を使用して、VMwareハイパーバイザーおよび仮想マシンを自動的に検出できます。 さらに、Zabbixはホストプロトタイプを使用して、検出されたエンティティに対応する実際のホストを自動的に生成できます。 詳細については、ホストプロトタイプを参照してください。
設定例
VMware FQDN テンプレートを使用して VMware の監視用に Zabbix を設定する基本的な例については、Zabbix で VMware を監視する を参照してください。
ホスト、低レベルディスカバリルール、および VMware 監視用のホストプロトタイプを作成する、より詳細な例については、セットアップ例 を参照してください。
拡張ログ
vmware collector プロセスによって収集されたデータは、デバッグレベル5を使用して詳細なデバッグのためにログへ記録できます。
デバッグレベルは、サーバー および プロキシ の設定ファイルで設定するか、
ランタイム制御オプション -R log_level_increase="vmware collector,N" を使用して設定できます。ここで "N" はプロセス番号です。
例えば、すべての vmware collector プロセスのデバッグレベルを 4 から 5 に上げるには、次のコマンドを実行します。
zabbix_server -R log_level_increase="vmware collector"
2 番目の vmware collector プロセスのデバッグレベルを 4 から 5 に上げるには、次のコマンドを実行します。
zabbix_server -R log_level_increase="vmware collector,2"
VMware collector データの拡張ログが不要になった場合は、-R log_level_decrease コマンドを実行して、デバッグレベルをデフォルト (3) に下げることを推奨します。
トラブルシューティング
- メトリクスを利用できない場合は、最近のVMware vSphereバージョンでそれらがデフォルトで利用不可または無効になっていないこと、またはパフォーマンスメトリクスのデータベースクエリに何らかの制限が設定されていないことを確認してください。
詳細については、ZBX-12094を参照してください。 config.vpxd.stats.maxQueryMetricsが無効である、または許可されている最大文字数を超えているというエラーが表示される場合は、vCenter Serverの設定にconfig.vpxd.stats.maxQueryMetricsパラメータを追加してください。
このパラメータの値は、VMwareの web.xml ファイル内のmaxQuerysizeの値と同じである必要があります。
詳細については、VMware Knowledge Base の記事を参照してください。- Zabbixインストール環境でメモリを過剰に使用している疑いがある場合は、tcmallocを使用した過剰なメモリ使用量のプロファイリングを参照してください。