4 VMware監視設定例
概要
次の例では、VMware仮想マシンの監視のためにZabbixをセットアップする方法について説明します。これには以下が含まれます。
- VMware環境を表すホストの作成
- VMware環境内の仮想マシンを検出するローレベルディスカバリルールの作成
- ローレベルディスカバリルールによって検出された仮想マシンのために、Zabbixが実際のホストを生成するためのホストプロトタイプの作成
前提条件
この例ではVMwareの設定については説明していません。VMwareがすでに設定されていることを前提としています。
続行する前に、Zabbixサーバーの設定ファイルでStartVMwareCollectorsパラメーターを2以上に設定してください(デフォルト値は0です)。
ホストの作成
1. データ収集 → ホストに移動します。
2. ホストを作成します。
- ホスト名フィールドにホスト名(例:"VMware VMs")を入力します。
- ホストグループフィールドにホストグループ(例:"Virtual machines")を入力または選択します。

- マクロタブで、以下のホストマクロを設定します。
- {$VMWARE.URL} - VMwareサービス(ESXiハイパーバイザー)SDKのURL(https://servername/sdk)
- {$VMWARE.USERNAME} - VMwareサービスのユーザー名
- {$VMWARE.PASSWORD} - VMwareサービスの{$VMWARE.USERNAME}ユーザーのパスワード

3. 追加ボタンをクリックしてホストを作成します。このホストはVMware環境を表します。
ローレベルディスカバリルールの作成
1. 作成したホストのディスカバリをクリックして、そのホストのローレベルディスカバリルールの一覧に移動します。
2. ローレベルディスカバリルールを作成します:
- 名前フィールドに、ローレベルディスカバリルール名(例:"Discover VMware VMs")を入力します。
- タイプフィールドで"シンプルチェック"を選択します。
- キーフィールドに、VMware仮想マシンをディスカバリするための組み込みアイテムキー
vmware.vm.discovery[{$VMWARE.URL}]を入力します。 - ユーザー名およびパスワードフィールドに、ホストで事前に設定した対応するマクロを入力します。

3. 追加ボタンをクリックして、ローレベルディスカバリルールを作成します。 このディスカバリルールは、VMware環境内の仮想マシンをディスカバリします。
ホストプロトタイプの作成
1. 低レベルディスカバリルールの一覧で、先ほど作成した低レベルディスカバリルールのホストプロトタイプをクリックします。
2. ホストプロトタイプを作成します。 ホストプロトタイプは低レベルディスカバリルールによってホストを作成するための設計図であるため、ほとんどのフィールドには低レベルディスカバリマクロが含まれます。 これにより、先ほど作成した低レベルディスカバリルールで取得した内容に基づいてホストが作成されます。
- ホスト名フィールドには、マクロ{#VM.UUID}を入力します。
- 表示名フィールドには、マクロ{#VM.NAME}を入力します。
- テンプレートフィールドには、「VMware Guest」テンプレートを入力または選択します。 このテンプレートには、仮想マシンの電源状態、CPU使用率、メモリ使用率、ネットワークデバイスなどを監視するためのVMwareアイテムおよびディスカバリルールが含まれています。
- ホストグループフィールドには、ホストグループ(例:「Discovered hosts」)を入力または選択します。
- インターフェースフィールドには、カスタムホストインターフェースを追加します。 その後、DNS名フィールドにマクロ{#VM.DNS}を入力するか、IPアドレスフィールドにマクロ{#VM.IP}を入力します。 または、VMware環境の仮想マシンに複数のインターフェースがある場合は、高度なホストインターフェースの設定セクションに進んでください。 カスタムホストインターフェースの設定は、VMware Guestテンプレートを正しく機能させるために必要です。

- マクロタブで、{$VMWARE.VM.UUID}マクロに値{#VM.UUID}を設定します。 これは、このマクロをアイテムパラメータのホストレベルのユーザーマクロとして使用するVMware Guestテンプレートを正しく機能させるために必要です (例: vmware.vm.net.if.discovery[{$VMWARE.URL}, {$VMWARE.VM.UUID}])。

3. 追加ボタンをクリックしてホストプロトタイプを作成します。 このホストプロトタイプは、先ほど作成した低レベルディスカバリルールで検出された仮想マシンのホストを作成するために使用されます。
ホストとメトリクスの表示
ホストプロトタイプが作成されると、ローレベルディスカバリルールによって検出されたVMware仮想マシンのホストが作成され、Zabbixはそれらの監視を開始します。必要に応じて、ホストのディスカバリと作成は手動で実行することもできます。
作成されたホストを表示するには、データ収集 → ホストメニューセクションに移動します。

収集されたメトリクスを表示するには、監視 → ホストメニューセクションに移動し、いずれかのホストの最新データをクリックします。

高度なホストインターフェースの設定
「低レベルディスカバリルールの作成」セクションで設定したvmware.vm.discovery[{$VMWARE.URL}]アイテムキーは、"net_if"フィールドでネットワークインターフェースのデータを返します。
"net_if": [
{
"ifname": "5000",
"ifdesc": "Network adapter 1",
"ifmac": "00:11:22:33:44:55",
"ifconnected": true,
"iftype": "VirtualVmxnet3",
"ifbackingdevice": "VLAN(myLab)",
"ifdvswitch_uuid": "",
"ifdvswitch_portgroup": "",
"ifdvswitch_port": "",
"ifip": [
"127.0.0.1",
"::1"
]
},
{
"ifname": "5001",
"ifdesc": "Network adapter 2",
"ifmac": "00:11:22:33:44:55",
"ifconnected": false,
"iftype": "VirtualVmxnet3",
"ifbackingdevice": "VLAN(myLab2)",
"ifdvswitch_uuid": "",
"ifdvswitch_portgroup": "",
"ifdvswitch_port": "",
"ifip": []
}
]
このデータを使用してカスタムホストインターフェースを設定できます。
1. 低レベルディスカバリルールを作成する際に、追加で低レベルディスカバリマクロを設定します。 LLDマクロタブで、JSONPath値を持つカスタムLLDマクロを作成します。例:
- {#MYLAB.NET.IF} -
$.net_if[?(@.ifbackingdevice=="VLAN(myLab)")].ifip[0].first()

2. ホストプロトタイプを作成する際に、カスタムホストインターフェースを追加し、DNS名またはIPアドレスフィールドにLLDマクロを入力します。
