4 VMware 모니터링 설정 예시
원본 보기4 VMware 모니터링 설정 예제
개요
다음 예제는 VMware 가상 머신 모니터링을 위한 Zabbix 설정 방법을 설명합니다. 여기에는 다음이 포함됩니다:
- VMware 환경을 나타내는 호스트 생성;
- VMware 환경에서 가상 머신을 발견하는 로우 레벨 디스커버리 규칙 생성;
- Zabbix가 로우 레벨 디스커버리 규칙으로 발견된 가상 머신에 대한 실제 호스트를 생성할 수 있는 기반이 되는 호스트 프로토타입 생성.
사전 요구사항
이 예제는 VMware 구성을 다루지 않습니다. VMware가 이미 구성되어 있다고 가정합니다.
진행하기 전에 Zabbix 서버 구성 파일에서 StartVMwareCollectors 매개변수를 2 이상으로 설정하세요 (기본값은 0입니다).
호스트 생성
1. 데이터 수집 → 호스트로 이동합니다.
2. 호스트를 생성합니다:
- 호스트명 필드에 호스트명을 입력합니다 (예: "VMware VMs").
- 호스트 그룹 필드에 호스트 그룹을 입력하거나 선택합니다 (예: "Virtual machines").

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

3. 추가 버튼을 클릭하여 호스트를 생성합니다. 이 호스트는 VMware 환경을 나타냅니다.
낮은 수준 탐지 규칙 생성
1. 생성된 호스트의 Discovery를 클릭하여 해당 호스트의 낮은 수준 탐지 규칙 목록으로 이동합니다.
2. 낮은 수준 탐지 규칙을 생성합니다:
- Name 필드에 낮은 수준 탐지 규칙 이름을 입력합니다 (예: "Discover VMware VMs").
- 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 환경의 가상 머신에 여러 인터페이스가 있는 경우 고급 호스트 인터페이스 구성 섹션으로 이동하세요. VMware Guest 템플릿의 올바른 기능을 위해서는 사용자 정의 호스트 인터페이스 구성이 필요합니다.

- Macros 탭에서 {$VMWARE.VM.UUID} 매크로를 값 {#VM.UUID}로 설정합니다. 이는 아이템 매개변수에서 이 매크로를 호스트 레벨 사용자 매크로로 사용하는 VMware Guest 템플릿의 올바른 기능을 위해 필요합니다 (예: vmware.vm.net.if.discovery[{$VMWARE.URL}, {$VMWARE.VM.UUID}]).

3. Add 버튼을 클릭하여 호스트 프로토타입을 생성합니다. 이 호스트 프로토타입은 이전에 생성한 로우레벨 디스커버리 규칙에 의해 발견된 가상 머신에 대한 호스트를 생성하는 데 사용됩니다.
호스트 및 메트릭 확인
호스트 프로토타입이 생성된 후, 저수준 디스커버리 규칙이 검색된 VMware 가상 머신에 대한 호스트를 생성하고, Zabbix가 이들을 모니터링하기 시작합니다. 필요한 경우 호스트의 디스커버리와 생성은 수동으로 실행할 수도 있습니다.
생성된 호스트를 확인하려면 Data collection → Hosts 메뉴 섹션으로 이동하세요.

수집된 메트릭을 확인하려면 Monitoring → Hosts 메뉴 섹션으로 이동하여 호스트 중 하나에 대해 Latest data를 클릭하세요.

고급 호스트 인터페이스 설정
로우레벨 디스커버리 규칙 생성 섹션에서 설정된 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 이름 또는 IP 주소 필드에 LLD 매크로를 입력합니다.
