こんにちは!SCSKの新沼です。
VMware環境の監視において、こんな悩みを抱えていませんか?
「膨大な数の仮想マシンを、1つずつZabbixに手動登録するのは大変…」
「すべての仮想マシンにZabbixエージェントを入れる必要があるの?」
今回は、Zabbixの標準機能(VMwareテンプレート)を利用して、VMware ESXiホストおよび、その上で稼働する仮想マシン(以下VM)を全自動で登録・監視する手順をご紹介します。
1. VMware監視の仕組みと構成
設定に入る前に、ZabbixにおけるVMware監視の仕組みを整理します。
従来の監視手法では、仮想マシン(ゲストOS)1台ずつにZabbixエージェントをインストールするのが一般的でした。しかし、この方法には以下のような課題があります。
- VMの数が多すぎて、手動でのホスト登録やエージェント導入に膨大な手間がかかる。
- アプライアンス製品など、そもそもOSにエージェントをインストールできない仮想マシンが存在する。
- VMが作成・削除されるたびに、Zabbix側の監視設定も手動で追加・削除しなければならない。
これらを一気に解決するのが、Zabbix標準のVMwareテンプレートとローレベルディスカバリ(LLD)の組み合わせです。
<メリット>
- 完全エージェントレス: Zabbixサーバーが直接ESXi(またはvCenter)のAPIと通信し、ハイパーバイザー側から見たCPUやメモリ、ストレージの利用状況を取得します。VM側には一切手を加えません。
- LLDによる自動追従: ESXiをZabbixに1つ登録するだけで、その配下にあるVMやデータストアをZabbixが自動的に見つけ出します。今後VMが増減しても、Zabbixが自動で監視対象に追加・削除してくれます。
2. 検証環境
本記事では、以下の環境を前提として設定手順を解説します。
- Zabbix Server: 構築済みのZabbixサーバ (Version 7.0)
- 監視対象: 1台のESXiホスト
- ESXi上のVM: 以下の2台を事前に作成済み
Web-Server-TestDB-Server-Test
この1台のESXiをZabbixに登録し、最終的に2台の仮想マシンがZabbix上に自動登録されることを目指します。
3. 事前準備①:ESXi側でのユーザー作成
ZabbixがAPI経由でESXiにアクセスするための認証情報を用意します。
セキュリティの観点から、root ユーザーではなくZabbix監視用の読み取り専用(Read-only)ユーザーを新規作成します。
- ESXiのWeb管理画面にログインします。
- 左メニューの 「ホスト」 > 「管理」 > 「セキュリティとユーザー」 > 「ユーザー」 タブを開きます。
- 「ユーザーの追加」をクリックし、ユーザー(例:
zabbix-monitor)とパスワードを設定して作成します。 - 次に、左メニューの 「ホスト」 を右クリックし、「権限」 をクリックします。
- 「ユーザーの追加」をクリックし、先ほど作成した
zabbix-monitorに対して 「読み取り専用 (Read-only)」 ロールを割り当てて保存します。
4. 事前準備②:Zabbix Server側のプロセスチューニング
Zabbixのデフォルト設定では、VMware環境からデータを収集するための専用プロセスが停止しています。設定ファイルを編集してプロセスを起動させます。
-
Zabbix ServerにSSH等でログインし、設定ファイルを開きます。
$ sudo vi /etc/zabbix/zabbix_server.conf-
以下の2つのパラメータを探し、コメントアウトを外して値を設定します。
StartVMwareCollectors=5
# APIから取得したデータを保存するキャッシュサイズ(VM数が多い場合は拡張推奨)
VMwareCasheSize=64M
-
設定を保存後、Zabbixサーバープロセスを再起動して設定を反映させます。
$ sudo systemctl restart zabbix-server5. Zabbixフロントエンドでのホスト登録
準備が整ったら、ZabbixのWeb管理画面からESXiを登録します。
ステップ1:ホストの作成
- Zabbixの管理画面にログインし、「データ収集」 > 「ホスト」 を開きます。
- 右上の 「ホストの作成」 をクリックします。
- 「ホスト」タブで以下を入力します。
- ホスト名:
ESXi-Test(任意の名前) - テンプレート:
VMwareを選択 - ホストグループ:
Virtual machines等の任意のグループ
- ホスト名:
💡 ポイント:インターフェース ZabbixのVM監視は、APIによる監視を行うのでインターフェースの設定は不要です。ここでは、エージェントを選択してデフォルトのまま設定しています。
ステップ2:マクロ(認証情報)の設定
次に、上部の「マクロ」タブを開き、「継承とホストマクロ」を選択します。VMwareテンプレートで定義されている以下の3つのマクロの「値」を入力します。
{$VMWARE.URL}:https://<ESXiのIPアドレス>/sdk{$VMWARE.USERNAME}:zabbix-monitor(先ほどESXiで作ったユーザー){$VMWARE.PASSWORD}: (設定したパスワード)
💡 ポイント:URLの末尾に注意 URLを設定する際、単なるIPアドレスではなく、vSphere APIのエンドポイントである
/sdkを必ず末尾に付与してください。これを忘れるとAPI通信に失敗します。
入力が完了したら、画面下部の「追加」ボタンをクリックしてホストを保存します。
※画像は、作成後のものなので、「ホストマクロ」タブになっていますが、「継承したマクロとホストマクロ」のタブで入力して「追加」をクリックしてください。
6. ディスカバリ(自動登録)の確認
ホストを追加すると、Zabbixが設定した間隔(デフォルトは1時間)でESXiと通信し、仮想マシンやデータストアの情報を自動的に取得(ディスカバリ)し始めます。
→すぐに確認したい場合は、ホスト>ディスカバリから、すべてのディスカバリルールを選択して、「監視データ取得」をクリックしてください。
💡 ポイント:初回登録時の「取得不可」エラーについて 登録直後にホストの「ディスカバリルール」画面を見ると、ルールが赤色の「取得不可」状態になることがあります。これは設定ミスではなく、Zabbixのバックグラウンドプロセスがデータを収集し、キャッシュに保存し終わるまでの一時的な状態です。 焦らずに5〜10分程度待つと、自動的に緑色の「有効」状態に切り替わります。
自動登録されたホストの確認
キャッシュが溜まり、ディスカバリが正常に実行された後、「データ収集」 > 「ホスト」 の一覧画面を再度確認します。
手動で登録した ESXi-Test ホストの他に、事前準備で作成しておいた Web-Server-Test や DB-Server-Test といった仮想マシンが、別々のホストとして自動的に追加されていることが確認できます。自動登録されたホストは、名前の横にディスカバリのリンクアイコンが表示されます。
7. 【補足】本番環境(vCenter)での運用について
今回は検証のため、「1台のESXiホスト」を直接Zabbixに登録し、その上の仮想マシンを自動検出する方針で解説しました。
しかし、実際の運用現場では複数のESXiホストを「vCenter Server」で一元管理しているケースが多いと思います。その場合、各ESXiをZabbixに1台ずつ登録する必要はありません。
Zabbix側に「vCenter」を1つだけホストとして登録し、マクロにvCenterの認証情報を設定するだけでOKです。
ZabbixがvCenterのAPIを叩き、その配下にある「複数のESXiホスト」も「すべての仮想マシン」も芋づる式に全自動で検出・登録してくれます。
本番環境に展開する際は、ぜひこの「vCenter起点」の構成で、劇的な監視運用の自動化を体感してください。
おわりに
以上がZabbixを利用したVMware ESXiおよび仮想マシンの自動監視設定の手順です。
VMwareテンプレートを使用することで、ハイパーバイザー自体のリソース状況をエージェントレスで取得できるだけでなく、仮想マシンが新規作成・削除された際の監視設定の追加・削除作業も全自動化されます。
仮想環境の監視運用を劇的に効率化できる強力な機能ですので、ぜひご自身の環境でも活用してみてください。
弊社ではZabbix関連サービスを展開しています。以下ページもご参照ください。
★SCSK Plus サポート for Zabbix★

★YouTubeに、SCSK Zabbixチャンネルを開設しました!★
★X(旧Twitter)に、SCSK Zabbixアカウントを開設しました!★






