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. 作成したホストの Discovery をクリックして、そのホストのローレベルディスカバリルールの一覧に移動します。
2. ローレベルディスカバリルールを作成します。
- Name フィールドに、ローレベルディスカバリルール名(例: 「VMware VMを検出」)を入力します。
- Type フィールドで、"Simple check" を選択します。
- Key フィールドに、VMware仮想マシンを検出するための組み込みアイテムキー
vmware.vm.discovery[{$VMWARE.URL}]を入力します。 - User name フィールドと Password フィールドに、事前にホストで設定した対応するマクロを入力します。

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

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

3. Add ボタンをクリックして、ホストプロトタイプを作成します。 このホストプロトタイプは、先ほど作成したローレベルディスカバリルールによって検出された仮想マシン用のホストを作成するために使用されます。
ホストとメトリクスの表示
ホストプロトタイプが作成されると、ローレベルディスカバリルールによって検出された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 macros タブで、JSONPath の値を持つカスタムLLDマクロを作成します。例:
- {#MYLAB.NET.IF} -
$.net_if[?(@.ifbackingdevice=="VLAN(myLab)")].ifip[0].first()

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