VMware 설정 예시
개요
다음 예시는 VMware 가상 머신을 모니터링하도록 Zabbix를 설정하는 방법을 설명합니다. 여기에는 다음 작업이 포함됩니다.
- VMware 환경을 나타내는 호스트 생성
- VMware 환경의 가상 머신을 탐색하는 로우레벨 디스커버리 규칙 생성
- 로우레벨 디스커버리 규칙으로 탐색한 가상 머신에 대해 Zabbix가 실제 호스트를 생성할 때 기반으로 사용할 호스트 프로토타입 생성
전제 조건
이 예시에서는 VMware 구성 방법을 다루지 않습니다. VMware가 이미 구성되어 있다고 가정합니다.
계속하기 전에 Zabbix 서버 구성 파일의 StartVMwareCollectors 매개변수를 2 이상으로 설정합니다(기본값은 0).
호스트 생성
1. 데이터 수집 → 호스트로 이동합니다.
2. 호스트를 생성합니다.
- 호스트명 필드에 호스트 이름을 입력합니다(예: "VMware VM").
- 호스트 그룹 필드에 호스트 그룹을 입력하거나 선택합니다(예: "가상 머신").

- 매크로 탭에서 다음 호스트 매크로를 설정합니다.
- {$VMWARE.URL} - VMware 서비스(ESXi 하이퍼바이저) SDK URL(https://servername/sdk)
- {$VMWARE.USERNAME} - VMware 서비스 사용자 이름
- {$VMWARE.PASSWORD} - VMware 서비스 {$VMWARE.USERNAME} 사용자의 비밀번호

3. 추가 버튼을 클릭하여 호스트를 생성합니다. 이 호스트는 VMware 환경을 나타냅니다.
로우레벨 디스커버리 규칙 생성
1. 생성한 호스트의 디스커버리를 클릭하여 해당 호스트의 로우레벨 디스커버리 규칙 목록으로 이동합니다.
2. 로우레벨 디스커버리 규칙을 생성합니다.
- 이름 필드에 로우레벨 디스커버리 규칙 이름을 입력합니다(예: "VMware VM 탐색").
- 유형 필드에서 "단순 검사"를 선택합니다.
- 키 필드에 VMware 가상 머신을 탐색하는 기본 제공 아이템 키를 입력합니다.
vmware.vm.discovery[{$VMWARE.URL}] - 사용자 이름 및 비밀번호 필드에 앞서 호스트에 구성한 해당 매크로를 입력합니다.

3. 추가 버튼을 클릭하여 로우레벨 디스커버리 규칙을 생성합니다. 이 디스커버리 규칙은 VMware 환경의 가상 머신을 탐색합니다.
호스트 프로토타입 생성
1. 로우레벨 디스커버리 규칙 목록에서 앞서 생성한 로우레벨 디스커버리 규칙의 호스트 프로토타입을 클릭합니다.
2. 호스트 프로토타입을 생성합니다. 호스트 프로토타입은 로우레벨 디스커버리 규칙을 통해 호스트를 생성하기 위한 설계도이므로 대부분의 필드에는 로우레벨 디스커버리 매크로가 포함됩니다. 이렇게 하면 앞서 생성한 로우레벨 디스커버리 규칙이 가져온 내용을 기반으로 속성을 설정하여 호스트를 생성할 수 있습니다.
- 호스트명 필드에 {#VM.UUID} 매크로를 입력합니다.
- 표시 이름 필드에 {#VM.NAME} 매크로를 입력합니다.
- 템플릿 필드에 "VMware Guest" 템플릿을 입력하거나 선택합니다. 이 템플릿에는 가상 머신의 전원 상태, CPU 사용량, 메모리 사용량, 네트워크 장치 등을 모니터링하기 위한 VMware 아이템과 디스커버리 규칙이 포함되어 있습니다.
- 호스트 그룹 필드에 호스트 그룹을 입력하거나 선택합니다(예: "탐색된 호스트").
- 인터페이스 필드에 사용자 지정 호스트 인터페이스를 추가합니다. 그런 다음 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 매크로를 입력합니다.
