가상 머신 모니터링
개요
Zabbix는 저수준 디스커버리 규칙을 사용해 VMware 하이퍼바이저와 가상 머신을 자동으로 탐색하고, 사전 정의된 호스트 프로토타입을 기반으로 이를 모니터링할 호스트를 생성할 수 있습니다.
Zabbix에는 VMware vCenter나 ESXi 하이퍼바이저를 모니터링하기 위한 바로 사용 가능한 템플릿도 포함되어 있습니다.
필요한 최소 VMware vCenter 또는 vSphere 버전은 5.1입니다.
데이터 수집
가상 머신 모니터링은 두 단계로 구성됩니다:
-
Zabbix vmware collector 프로세스가 가상 머신 데이터를 수집합니다 - 이 프로세스는 SOAP 프로토콜을 통해 VMware 웹 서비스로부터 필요한 정보를 얻어 전처리한 후, Zabbix 서버 공유 메모리에 저장합니다.
-
Zabbix poller 프로세스는 Zabbix 단순 확인 VMware 모니터링 아이템 키를 사용해 데이터를 조회합니다.
Zabbix는 수집한 데이터를 VMware 구성 데이터와 VMware 성능 카운터 데이터로 구분합니다. 두 유형의 데이터는 모두 vmware collector 프로세스에 의해 독립적으로 수집됩니다.
VMware 성능 카운터 정보를 기반으로 다음과 같은 통계를 사용할 수 있습니다:
- 데이터스토어
- 디스크 장치
- CPU
- 전원
- 네트워크 인터페이스
- 사용자 지정 성능 카운터 아이템
VMware 성능 카운터에서 데이터를 얻는 아이템의 전체 목록은 VMware 모니터링 아이템 키를 참고하십시오.
VMware 이벤트 조회 빈도는 vmware.eventlog의 폴링 간격에 따라 달라지지만, 5초 미만으로는 설정할 수 없다는 점에 유의하십시오.
설정
Zabbix 서버를 소스에서 컴파일하는 경우, 가상 머신 모니터링을 활성화하려면 --with-libcurl --with-libxml2 설정 옵션과 함께 컴파일해야 합니다.
Zabbix 패키지는 이 옵션이 이미 활성화된 상태로 컴파일되어 있습니다.
가상 머신 모니터링을 위해 다음 Zabbix 서버 설정 파일 매개변수를 수정할 수 있습니다:
모니터링 중인 VMware 서비스 수보다 더 많은 수집기를 활성화하는 것이 좋습니다;
그렇지 않으면 VMware 구성 데이터 조회(대규모 설치 환경에서는 시간이 걸림)로 인해 VMware 성능 카운터 통계 조회가 지연될 수 있습니다.
일반적으로 StartVMwareCollectors 값은 2 미만으로 내려가지 않아야 하며, 모니터링 중인 VMware 서비스 수의 2배를 초과하지 않아야 합니다: 서비스 수 < StartVMwareCollectors < (서비스 수 * 2).
예를 들어, VMware 서비스 하나를 모니터링하는 경우 StartVMwareCollectors를 2로 설정하고, 서비스 세 개를 모니터링하는 경우 StartVMwareCollectors를 5로 설정하십시오.
필요한 수집기 수는 VMware 환경의 범위와 VMwareFrequency, VMwarePerfFrequency 설정 매개변수에도 좌우된다는 점에 유의하십시오.
데이터스토어 용량 메트릭을 지원하려면, VMware vpxd.stats.maxQueryMetrics 키의 값이 최소 64로 설정되어 있는지 확인하십시오.
자세한 내용은 VMware Knowledge Base 문서를 참고하십시오.
디스커버리
Zabbix는 저수준 디스커버리 규칙(예: vmware.hv.discovery[{$VMWARE.URL}])을 사용해 VMware 하이퍼바이저와 가상 머신을 자동으로 탐색할 수 있습니다. 또한 Zabbix는 호스트 프로토타입을 사용해 탐색된 항목에 대한 실제 호스트를 자동으로 생성할 수 있습니다. 자세한 내용은 호스트 프로토타입을 참고하십시오.
설정 예시
VMware FQDN 템플릿을 사용해 VMware 모니터링을 위한 Zabbix를 설정하는 기본 예시는 Zabbix로 VMware 모니터링하기를 참고하십시오.
VMware 모니터링을 위한 호스트, 저수준 디스커버리 규칙, 호스트 프로토타입을 생성하는 좀 더 자세한 예시는 설정 예시를 참고하십시오.
확장 로깅
vmware collector 프로세스가 수집한 데이터는 디버그 레벨 5를 사용해 상세한 디버깅용으로 로깅할 수 있습니다.
디버그 레벨은 서버 및 프록시 설정 파일에서 구성하거나
런타임 제어 옵션 -R log_level_increase="vmware collector,N"(여기서 "N"은 프로세스 번호)을 사용해 구성할 수 있습니다.
예를 들어, 모든 vmware collector 프로세스의 디버그 레벨을 4에서 5로 높이려면 다음 명령을 실행하십시오:
zabbix_server -R log_level_increase="vmware collector"
두 번째 vmware collector 프로세스의 디버그 레벨을 4에서 5로 높이려면 다음 명령을 실행하십시오:
zabbix_server -R log_level_increase="vmware collector,2"
VMware collector 데이터의 확장 로깅이 더 이상 필요하지 않은 경우, -R log_level_decrease 명령을 실행해 디버그 레벨을 기본값(3)으로 낮추는 것이 좋습니다.
문제 해결
- 메트릭을 사용할 수 없는 경우, 최근 VMware vSphere 버전에서 기본적으로 비활성화되거나 사용 불가능하게 설정된 것은 아닌지, 또는 성능 메트릭 데이터베이스 쿼리에 제한이 걸려 있는 것은 아닌지 확인하십시오. 자세한 내용은 ZBX-12094를 참고하십시오.
config.vpxd.stats.maxQueryMetrics가 잘못되었거나 허용되는 최대 문자 수를 초과했다는 오류가 발생하면, vCenter Server 설정에config.vpxd.stats.maxQueryMetrics매개변수를 추가하십시오. 이 매개변수의 값은 VMware의 web.xml 파일에 있는maxQuerysize값과 동일해야 합니다. 자세한 내용은 VMware Knowledge Base 문서를 참고하십시오.- Zabbix 설치가 메모리를 과도하게 사용하는 것으로 의심되는 경우, tcmalloc으로 과도한 메모리 사용량 프로파일링하기를 참고하십시오.