Zabbixでは、バージョン2.2.0からVMware環境の監視に対応しています。
Zabbixは事前に定義されたホストプロトタイプに基づき、ローレベルディスカバリルールを使用して、
VMwareハイパーバイザーと仮想マシンを自動的に検出し、監視するためのホストを作成することができます。
Zabbixのデフォルトデータセットには、VMware vCenterやESXハイパーバイザーの監視に適した
テンプレートが用意されています。
VMware vCenterまたはvSphereの最低必要バージョンは5.1です。
仮想マシンの監視は、2つのステップで行われます。
まず、vmware collector Zabbixプロセスによって、仮想マシンのデータが収集されます。
これらのプロセスは、VMware社のWebサービスから必要な情報をSOAPプロトコルで取得し、プリプロセスを行い、
Zabbix server の共有メモリに格納します。
そして、このデータはポーラーによってZabbixのシンプルチェックVMware keys を使用して取得されます。
Zabbixバージョン2.4.4から、収集されたデータは2つのタイプに分けられます。
VMwareの設定データとVMwareのパフォーマンスカウンタデータです。
両データはそれぞれ独立した vmware collectors によって収集されます。
このため、監視するVMwareサービス数より多くのコレクタを有効にすることをお勧めします。
そうしないと、VMwareパフォーマンス・カウンターの統計の取得が、
VMware 構成データの取得(大規模なインストールでは時間がかかる)によって遅延する可能性があります。
現在、データストア、ネットワーク・インターフェイス、ディスク・デバイスの統計情報
およびカスタム・パフォーマンス・カウンターの項目のみが、VMwareのパフォーマンス・カウンターの情報に基づいています。
仮想マシンの監視を行うには、Zabbixが --with-libxml2 and --with-libcurl のオプションで
compiled されている必要があります。
次の設定ファイルオプションを使用して、仮想マシンの監視を調整することができます。
詳細は Zabbixserver , proxy の設定ファイルのページを参照してください。
データストアのキャパシティメトリクスをサポートするために、Zabbixは
VMwareの設定vpxd.stats.maxQueryMetricsパラメータに64以上の値を設定する必要があります。
VMwareナレッジベース article を参照してください。
Zabbixはローレベルディスカバリールールを使用して、VMwareハイパーバイザーと
仮想マシンを自動的に検出することができます。
すべての必須入力フィールドには、赤いアスタリスクが表示されます。
上記のスクリーンショットのディスカバリールールのキーは次のとおりです。 vmware.hv.discovery[{$VMWARE.URL}].
ホストプロトタイプは、ローレベルディスカバリルールで作成することができます。
仮想マシンが検出されると、このプロトタイプは実際のホストになります。
プロトタイプは、検出される前に、リンクされたテンプレートの item および trigger 以外の
独自の item および trigger を持つことができません。
発見されたホストは、既存のホストに属します。
プロトタイプから作成されたホストが一意なホスト名を持つためには、Host name フィールドに 少なくとも1つのlow-level discovery macroを含む必要があります。
Zabbix5.2以降、検出されたホストはカスタムインターフェイスで設定することができます。
またはディスカバリルールが属するホストのIPを継承することができます(デフォルト)
カスタムインターフェイスを1つ以上追加するには、インターフェイスセレクタを
Inherit から Custom モードに切り替えて、次に を押して、
表示されるドロップダウンメニューから必要なインターフェイスの種類を選択します。
すべてのホストプロトタイプには、サポートされている全ての種類のインタフェースを定義することができます。
Zabbix agent, SNMP, JMX, IPMI. Interface fields support low-level discovery macros and user macros
インタフェースフィールドは、ローレベルディスカバリーマクロとユーザマクロ(/manual/config/macros/user_macros)をサポートします。
複数のカスタム・インターフェースが指定されている場合、Default 列を使用してプライマリ・インターフェースを指定します。
注意事項
ホストインターフェイスに不正なデータが含まれている場合、ホストは作成されません。
LLDマクロは、可視名、ホスト・グループ・プロトタイプ・フィールド、タグ値、ホスト・
プロトタイプ・ユーザー・マクロの値にも使用できます。
その他、ホストプロトタイプに指定可能なオプションは以下の通り:
Create enabled がチェックされている場合、ホストは有効な状態で追加されます。
チェックされていない場合、ホストは追加されますが、無効な状態になります。
Discover がチェックされている場合 (デフォルト)、ホストが作成されます。
もしチェックされていない場合、discovery ruleでこの設定が上書きされない限り、
ホストは作成されません。この機能により、検出ルール作成時の柔軟性がさらに高まります。
検出されたホストは、ホスト一覧の中で、それらを作成したディスカバリルールの名前の前に表示されます。
検出されたホストは、手動で削除することができます。
検出されたホストは、ディスカバリルールの Keep lost resources period (in days) の値に基づいて
自動的に削除されることもあります。
ホストおよびホストインベントリの有効化/無効化を除いて、ほとんどの設定オプションは読み取り専用です。
検出されたホストは、それ自身のホストプロトタイプを持つことはできません。
Zabbixのデフォルトデータセットには、VMware venterや直接ESXハイパーバイザーを監視するために
すぐに使えるテンプレートがいくつか用意されています。
これらのテンプレートには事前に設定されたLLDルールと、仮想インストレーション監視のための
多くのビルトインチェックが含まれています。
VMware vCenterおよびESXハイパーバイザーの監視用テンプレートでは、
VMware FQDNテンプレートが正しく機能するためには、以下のことが必要です。
監視する各VMは、FQDNルールに準拠した一意のOS名を持つ必要があります。
VMware Toolsが各マシンにインストールされている必要があります。これらの条件を満たす場合
VMware FQDN* テンプレートを使用することをお勧めします。
Zabbix 5.2.でカスタムインターフェイスを持つホストを作成する機能が追加されたことにより、
VMware FQDNテンプレートの作成が可能になりました。
FQDNの要件を満たせない場合には、 従来のVMwareテンプレートも利用可能です。
ただし、VMwareテンプレートには既知の問題があることに留意してください。
検出された仮想マシンのホストは、vCenter に保存された名前で作成されます(たとえば、VM1、VM2など)。
これらのホストにZabbixエージェントアクティブをインストールし、自動登録を有効にした場合
自動再登録プロセスで起動時に登録されたホスト名(例,vm1.example.com、vm2.example.comなど)に一致するホストがないため、
新しいホストを作成します。
その結果、各マシンに異なる名前の2つの重複したホストが存在することになります。
ディスカバリーで使用されるテンプレート(通常、これらのテンプレートはホストに手動でリンクされるべきではありません。
VMwareシンプルチェックを使用するには、ホストに以下のユーザーマクロが定義されている必要があります。
以下の例は、Zabbix上でVMwareの監視を素早く設定する方法です:
VMwareコレクターによって収集されたデータは、デバッグレベル5を使用して
詳細なデバッグのためのログを記録することができます。
このレベルは serverと proxy 設定ファイルまたは
ランタイムコントロールオプションを使用して設定します。
実行時制御オプションの使用(-R log_level_increase="vmware collector,N"
(Nはプロセス番号)) を使用します。
次の例は、デバッグレベル 4 がすでに設定されている場合に、拡張ロギングを開始する方法を示しています。
second vmware collectorのログレベルの加算: shell> zabbix_server -R log_level_increase="vmware collector,2"
VMware コレクターデータの拡張ログが必要ない場合は、-R log_level_decrease
オプションを使用して、
ログを停止することができます。
config.vpxd.stats.maxQueryMetrics
パラメータを追加します。 maxQuerysize
の値と同じにする必要があります。