VMware 수집 항목
서버 모니터링 에이전트는 VMware API를 통해 ESXi 호스트와 가상 머신의 상태를 함께 수집합니다. 가상 머신 안에서 본 자원 사용량만으로는 성능 저하의 원인을 알기 어렵습니다. 호스트의 팬이 고장 났거나, 한 호스트에 가상 머신이 과도하게 몰려 vCPU가 서로 순서를 기다리는 상황은 게스트 지표에 잘 드러나지 않기 때문입니다. 이 문서는 가상화 기반 인프라를 운영하며 호스트 단위 원인까지 추적해야 하는 운영자를 대상으로, VMware 연동으로 수집하는 항목을 안내합니다.
VMware 데이터 연동은 vCenter가 없어도 ESXi 호스트에 직접 연동해 데이터를 수집할 수 있습니다. 다만 vm_vcenter_inventory 카테고리는 vCenter에 연동한 경우에만 수집합니다.
지원 에이전트 버전은 Linux·Windows 2.9.23 이상입니다. 각 표의 비고 열에 2.9.23 신규로 표시한 필드는 2.9.23에서 추가된 항목이며, 표시가 없는 필드는 이전 버전부터 제공합니다.
infra_vm_vhost_hw
ESXi 호스트의 하드웨어 상태를 부위별로 모아 수집하는 카테고리입니다. 호스트 하나가 한 행이 되며, 전원·냉각·메모리·프로세서 등 부위별 상태와 최고 온도를 제공합니다. 하드웨어 고장이 성능 저하나 장애로 이어지기 전에 확인할 때 사용합니다. 2.9.23에서 추가한 카테고리로, 표의 모든 필드가 신규입니다.
- 수집 대상: VMware ESXi
상태 값은 다음 네 가지로 표준화합니다. 부위별 센서가 여러 개면 가장 심각한 상태를 대표 값으로 표시하고, 센서 데이터가 제공되지 않는 부위는 unknown으로 표시합니다.
| Item | Description |
|---|---|
green | 정상 |
yellow | 경고 |
red | 장애 |
unknown | 상태를 확인할 수 없음 |
| Field | Type | Unit | Description |
|---|---|---|---|
vhostName | string | - | 수집 대상 호스트 이름. 각 하드웨어 상태가 어느 ESXi 호스트에서 수집됐는지 식 별하는 기준 |
uuid | string | - | 호스트의 하드웨어 UUID. 호스트 이름이나 IP가 바뀌어도 같은 호스트를 식별하는 보조 기준 |
hardwareHealth | string | - | 수집 가능한 전체 하드웨어 상태 중 가장 심각한 상태를 대표하는 종합 상태 |
powerSupplyStatus | string | - | 전원 공급 장치의 상태 |
powerSupplyRedundancyStatus | string | - | 전원 공급 장치의 이중화 상태. 일부 장애로 이중화가 저하됐는지 확인할 때 사용 |
networkDeviceStatus | string | - | 물리 네트워크 장치와 네트워크 어댑터의 하드웨어 상태. 네트워크 링크의 Up·Down 상태와는 구분되는 정보 |
batteryStatus | string | - | 내부 배터리 또는 하드웨어 관리 컨트롤러 배터리의 상태. CMOS 배터리, RAID 캐시 배터리 등이 포함 |
processorsStatus | string | - | 물리 프로세서와 CPU 소켓의 하드웨어 상태. CPU 사용률과는 무관한 물리 하드웨어 상태 |
memoryModulesStatus | string | - | 물리 메모리 모듈의 하드웨어 상태. DIMM 오류나 모듈 장애·경고 상태를 포함 |
coolingUnitStatus | string | - | 팬, 블로어 등 냉각 장치의 상태 |
coolingUnitRedundancyStatus | string | - | 냉각 장치의 이중화 상태. 일부 팬이 고장 나도 냉각 기능이 유지되는지 확인할 때 사용 |
temperatureStatus | string | - | CPU, 시스템 보드, 메모리, 흡기구 등 온도 센서의 종합 상태 |
temperatureMax | - | °C | 수집 시점에 확인된 온도 센서 값 중 가장 높은 온도. 센서 원시값에 VMware가 제공하는 단위 보정값을 적용해 계산하며, 온도 센서가 없으면 빈 값 |
hardwareHealthDataAvailable | boolean | - | 호스트에서 하드웨어 상태 또는 센서 데이터가 하나 이상 제공됐는지 여부 |
hardwareHealthSupportStatus | string | - | 하드웨어 상태 수집 지원 여부. supported는 센서 데이터가 제공되는 상태, unsupported는 API가 지원되지 않거나 센서가 노출되지 않는 상태 |
hardwareHealthUnavailableReason | string | - | 하드웨어 상태 데이터를 수집할 수 없는 이유. Hardware Health API 미지원, 센서 미노출, 수집 오류 등이 기록되며 정상 수집 시 빈 값 |
temperatureMaxSensor | string | - | temperatureMax 값이 측정된 온도 센서의 이름. CPU, 시스템 보드, 메모리, 흡기구 중 실제로 가장 높은 온도를 기록한 센서를 식별 |
temperatureUnit | string | - | temperatureMax에 적용되는 온도 단위. 보통 Degrees C 형태이며 센서 제공자에 따라 표현 방식이 다를 수 있음 |
infra_vm_vhost_resource_capacity
ESXi 호스트의 물리 자원과 가상 머신에 할당한 자원을 함께 수집하는 카테고리입니다. 호스트 하나가 한 행이 되며, 물리 용량 대비 할당량의 비율(오버커밋)을 제공합니다. 특정 호스트에 가상 머신을 과도하게 배치하지 않았는지 점검할 때 사용합니다. 2.9.23에서 추가한 카테고리로, 표의 모든 필드가 신규입니다.
- 수집 대상: VMware ESXi
| Field | Type | Unit | Description |
|---|---|---|---|
vhostName | string | - | 수집 대상 호스트 이름. 각 자원 지표가 어느 ESXi 호스트에서 수집됐는지 식별하는 기준 |
uuid | string | - | 호스트의 하드웨어 UUID. 호스트 이름이나 IP가 바뀌어도 같은 호스트를 식별하는 보 조 기준 |
cpuCores | - | count | 호스트 전체의 물리 CPU 코어 수. 가상 머신 할당 가능 자원과 CPU 용량 산정의 기준 |
totalMemory | - | byte | 호스트에 장착된 전체 메모리 용량. 가상 머신 배치 가능 용량과 메모리 자원 계획의 기준 |
activeVCpu | - | count | 전원이 켜진 가상 머신에 할당된 vCPU 수의 합계 |
allocatedVCpu | - | count | 호스트에 배치된 전체 가상 머신에 설정된 vCPU 수의 합계. 전원이 꺼졌거나 일시 중지된 가상 머신도 모두 포함 |
activeOverCommitCore | - | - | activeVCpu를 물리 CPU 코어 수로 나눈 값. 실행 중인 가상 머신 기준으로 물리 코어 하나당 평균 몇 개의 vCPU가 할당됐는지를 배수로 표시 |
allocatedOverCommitCore | - | - | allocatedVCpu를 물리 CPU 코어 수로 나눈 값. 전원이 꺼졌거나 일시 중지된 가상 머신까지 포함한 구성 기준의 vCPU 오버커밋 배수 |
activeMemory | - | byte | 전원이 켜진 가상 머신에 설정된 메모리 용량의 합계 |
allocatedMemory | - | byte | 호스트에 배치된 전체 가상 머신에 설정된 메모리 용량의 합계. 전원이 꺼졌거나 일시 중지된 가상 머신도 모두 포함 |
activeOverCommitMemory | - | - | activeMemory를 물리 메모리 용량으로 나눈 값. 실행 중인 가상 머신 기준으로 물리 메모리 대비 몇 배의 메모리가 할당됐는지를 배수로 표시 |
allocatedOverCommitMemory | - | - | allocatedMemory를 물리 메모리 용량으로 나눈 값. 전원이 꺼졌거나 일시 중지된 가상 머신까지 포함한 구성 기준의 메모리 오버커밋 배수 |
vmGuestCount | - | count | 호스트에 연결된 가상 머신 객체 수. 호스트별 배치 현황과 밀집도를 파악할 때 사용 |
poweredOffVMCount | - | count | 전원이 꺼진 가상 머신 수. allocatedVCpu에는 포함되지만 activeVCpu에는 포함되지 않음 |
suspendedVMCount | - | count | 일시 중지 상태의 가상 머신 수. vCPU가 설정돼 있어 allocatedVCpu에는 포함되지만, 실행 중이 아니므로 activeVCpu에는 포함되지 않음 |
unknownPowerStateVMCount | - | count | 전원 상태를 확인할 수 없거나 poweredOn·poweredOff·suspended 중 하나로 식별되지 않은 가상 머신 수. vCenter 응답 지연, 권한, 일시적인 상태 불일치로 발생할 수 있음 |
vcpuSkippedVMCount | - | count | vCPU 설정값을 읽지 못해 vCPU 합산에서 제외한 가상 머신 수. 설정 정보 접근 실패, 권한 부족, 비정상 구성, 일시적인 vCenter 응답 오류가 원인일 수 있음 |
memorySkippedVMCount | - | count | 메모리 설정값을 읽지 못해 메모리 합산에서 제외한 가상 머신 수. 원인은 vcpuSkippedVMCount와 같음 |
오버커밋 비율은 소수점 두 자리까지 표시합니다. 값이 1을 넘으면 물리 자원보다 많은 자원을 가상 머신에 할당한 상태입니다. 가상화 환경에서는 일정 수준의 오버커밋이 일반적이므로, 절대값보다 같은 클러스터 내 호스트 사이의 편차와 시간에 따른 증가 추이를 함께 보는 것이 좋습니다.
수집 여부는 다음 옵션으로 조정합니다.
vm.vhost.perf.resource_capacity.enabled=true # 수집 여부 (기본값: true)
infra_vm_vhost_cpu
ESXi 호스트의 CPU 사용량과 대기 시간을 집계하는 카테고리입니다. 호스트 하나가 한 행이 되며, 호스트에 올라간 전체 가상 머신의 CPU 사용과 경합을 함께 제공합니다.
- 수집 대상: VMware ESXi
| Field | Type | Unit | Description | 비고 |
|---|---|---|---|---|
vhostName | string | - | 수집 대상 호스트 이름. 각 CPU 지표가 어느 ESXi 호스트에서 수집됐는지 식별하는 기준 | |
uuid | string | - | 호스트의 하드웨어 UUID. 호스트 이름이나 IP가 바뀌어도 같은 호스트를 식별하는 보조 기준 | |
usage | - | percent | 호스트의 전체 CPU 자원 중 실제로 사용한 비율. 호스트의 CPU 부하 수준을 확인하는 기본 지표 | |
usageMhz | - | MHz | 호스트에서 실제 사용 중인 CPU 자원량. CPU 용량이 다른 호스트를 비교할 때는 usage와 함께 확인 | |
totalCapacity | - | MHz | 호스트가 제공할 수 있는 전체 CPU 용량. 사용률·사용량·요구량·예약 용량을 해석하는 기준값 | |
demand | - | MHz | 호스트의 가상 머신이 실제로 사용하려고 요구한 CPU 자원량 | |
readiness | - | percent | 가상 머신이 실행 가능한 상태였지만 물리 CPU를 즉시 할당받지 못한 비율. 호스트의 CPU 경합을 판단하는 핵심 지표 | |
ready | - | ms/s | 실행 가능한 상태에서 물리 CPU를 할당받지 못해 대기한 시간 | |
latency | - | percent | CPU 자원을 요청한 뒤 실제 실행되기까지의 지연 수준 | |
costop | - | ms/s | 멀티 vCPU 가상 머신이 동시에 스케줄링되기를 기다리며 멈춰 있던 시간 | |
wait | - | ms/s | CPU가 실제 연산을 수행하지 않고 대기한 시간. 유휴, I/O 대기, 스왑 대기가 모두 포함 | |
swapwait | - | ms/s | 메모리 스왑 처리 때문에 CPU 실행이 지연된 시간 | |
idle | - | ms/s | CPU가 유휴 상태였던 시간 | |
reservedCapacity | - | MHz | 예약으로 확보한 CPU 용량. 전체 용량 대비 크면 실제 가용 CPU 여유가 줄어듦 | |
demandPct | - | percent | demand를 totalCapacity로 나눈 비율 | 2.9.23 신규 |
costopPct | - | percent | costop을 비율로 환산한 값(1,000ms/s = 100%) | 2.9.23 신규 |
CPU 경합 여부는 단일 지표로 판단하지 말고 함께 보는 것이 좋습니다. usage가 높으면서 readiness·ready도 함께 높으면 CPU 경합 가능성이 큽니다. 반대로 usage가 낮은데 readiness가 높다면 vCPU 과다 할당, 자원 제한, 스케줄링 정책을 함께 확인하세요. usageMhz보다 demand가 지속적으로 높으면 가상 머신이 요구한 만큼 CPU를 받지 못하는 상태일 수 있습니다.
wait에는 유휴 상태와 I/O 대기, 스왑 대기가 모두 포함되므로 값이 높다고 해서 CPU 부족으로 단정하면 안 됩니다. idle, swapwait와 나눠서 확인하세요. swapwait는 CPU 지표로 표시되지만 원인은 메모리 부족이나 메모리 경합일 수 있어, 값이 늘어나면 호스트와 가상 머신의 메모리 사용률, 벌루닝, 스왑 발생 여부를 함께 확인해야 합니다.
ms/s 단위 지표는 수집 주기가 달라져도 같은 기준으로 비교할 수 있도록 초당 값으로 환산해 제공합니다.
demandPct와 costopPct