Sidebar

Zabbix Summit 2022
Register for Zabbix Summit 2022

10. 仮想マシン監視

概要

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 されている必要があります。

次の設定ファイルオプションを使用して、仮想マシンの監視を調整することができます。

  • StartVMwareCollectors - フォークされたVMwareコレクターインスタンスの数です。
    この値は、監視するVMwareサービスの数に依存します。
    Servicenum < StartVMwareCollectors < (servicenum * 2)
    ここで、servicenum は VMware サービスの数です。例:監視するVMwareサービスが1つの場合
    監視するVMwareサービスが1つの場合、StartVMwareCollectorsを2に設定し、
    3つのVMwareサービスがある場合、StartVMwareCollectorsを5を設定します。
    ほとんどの場合、この値は2未満であってはならず、監視するVMwareサービスの数の2倍を超えないようにしてください。
    またこの値は、VMware 環境のサイズと VMwareFrequencyおよびVMwarePerfFrequency
    構成パラメータ(以下を参照)にも依存することに留意してください。
  • VMwareCacheSize
  • VMwareFrequency
  • VMwarePerfFrequency
  • VMwareTimeout

詳細は 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 モードに切り替えて、次に add_link.png を押して、
表示されるドロップダウンメニューから必要なインターフェイスの種類を選択します。
すべてのホストプロトタイプには、サポートされている全ての種類のインタフェースを定義することができます。
Zabbix agent, SNMP, JMX, IPMI. Interface fields support low-level discovery macros and user macros
インタフェースフィールドは、ローレベルディスカバリーマクロとユーザマクロ(/manual/config/macros/user_macros)をサポートします。
複数のカスタム・インターフェースが指定されている場合、Default 列を使用してプライマリ・インターフェースを指定します。

注意事項

  • Custom を選択し、インターフェイスを指定しなかった場合、ホストはインターフェイスなしで作成されます。
  • テンプレートに属するホストのプロトタイプで Inherit が選択されている場合、検出されたホストは、
    テンプレートに属するホストのインターフェースを継承します。

ホストインターフェイスに不正なデータが含まれている場合、ホストは作成されません。

LLDマクロは、可視名、ホスト・グループ・プロトタイプ・フィールド、タグ値、ホスト・
プロトタイプ・ユーザー・マクロの値にも使用できます。

その他、ホストプロトタイプに指定可能なオプションは以下の通り:

  • 既存ホストへのリンク
  • テンプレートへのリンク
  • 暗号化

Create enabled がチェックされている場合、ホストは有効な状態で追加されます。
チェックされていない場合、ホストは追加されますが、無効な状態になります。

Discover がチェックされている場合 (デフォルト)、ホストが作成されます。
もしチェックされていない場合、discovery ruleでこの設定が上書きされない限り、
ホストは作成されません。この機能により、検出ルール作成時の柔軟性がさらに高まります。

検出されたホストは、ホスト一覧の中で、それらを作成したディスカバリルールの名前の前に表示されます。
検出されたホストは、手動で削除することができます。
検出されたホストは、ディスカバリルールの Keep lost resources period (in days) の値に基づいて
自動的に削除されることもあります。
ホストおよびホストインベントリの有効化/無効化を除いて、ほとんどの設定オプションは読み取り専用です。
検出されたホストは、それ自身のホストプロトタイプを持つことはできません。

すぐに使えるテンプレート

Zabbixのデフォルトデータセットには、VMware venterや直接ESXハイパーバイザーを監視するために
すぐに使えるテンプレートがいくつか用意されています。
これらのテンプレートには事前に設定されたLLDルールと、仮想インストレーション監視のための
多くのビルトインチェックが含まれています。

VMware vCenterおよびESXハイパーバイザーの監視用テンプレートでは、

  • VMware - 対応するマクロに UUID データを使用します。
  • VMware FQDN - 対応するマクロに FQDN データを使用します。

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 Hypervisor;
  • VMware Guest

ホストの構成

VMwareシンプルチェックを使用するには、ホストに以下のユーザーマクロが定義されている必要があります。

  • {$VMWARE.URL} - VMwareサービス(vCenterまたはESXハイパーバイザー) SDK URL (https://servername/sdk)
  • {$VMWARE.USERNAME} - VMwareサービスのユーザー名
  • {$VMWARE.PASSWORD} - VMware サービス {$VMWARE.USERNAME} ユーザー名 パスワード

次の例は、VMwareの監視を素早く設定する方法を示しています。

  • zabbix server を必要なオプション(--with-libxml2 および --libcurl付き) でコンパイルします。
  • Zabbix server 設定ファイルのStartVMwareCollectorsオプションを 1 以上に設定します。
  • 新規ホストを作成します。
  • VMwareの認証に必要なホストマクロを設定します。
    {{...:..:assets:en:manual:vm_monitoring:vm_host_macros.png|}} 
       * ホストをVMwareサービステンプレートにリンクします。
           {{...:...assets:en:manual:vm_monitoring:vm_host_templates.png|}}
       * //Add//ボタンをクリックして、ホストを保存します。

拡張ログ

VMwareコレクターによって収集されたデータは、デバッグレベル5を使用して
詳細なデバッグのためのログを記録することができます。
このレベルは serverproxy 設定ファイルまたは
ランタイムコントロールオプションを使用して設定します。
実行時制御オプションの使用(-R log_level_increase="vmware collector,N" (Nはプロセス番号)) を使用します。
次の例は、デバッグレベル 4 がすでに設定されている場合に、拡張ロギングを開始する方法を示しています。

vmware collectors 全体のログレベルの加算: 
       shell> zabbix_server -R log_level_increase="vmware collector"

second vmware collectorのログレベルの加算: shell> zabbix_server -R log_level_increase="vmware collector,2"

VMware コレクターデータの拡張ログが必要ない場合は、-R log_level_decrease オプションを使用して、
ログを停止することができます。

トラブルシューティング

  • メトリクスが利用できない場合、最近のVMware vSphereのバージョンで利用できなくなったり、
    デフォルトでオフになったりしていないか、また、パフォーマンス メトリックのデータベース クエリに
    何らかの制限がかかっていないかどうかを確認してください。
    ZBX-12094を参照してください。
  • 'config.vpxd.stats.maxQueryMetrics' is invalid or exceeds the maximum number of characters permitted** エラー が発生した場合、
    vCenter Server の設定に config.vpxd.stats.maxQueryMetrics パラメータを追加します。
    このパラメータの値は、VMware の web.xml にある maxQuerysize の値と同じにする必要があります。
    このVMwareのナレッジベース articleを参照してください。