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 매크로를 입력합니다.