Как получить через VMWare SDK то, чего нет в стандартных шаблонах Zabbix

Встала у меня задача мониторить нагрузку по CPU на виртуалках, не устанавливая на них Zabbix Agent.

Казалось бы, чего сложного? Бери стандартный шаблон “Template Virt VMware Guest”, настраивай там себе недостающие элементы данных и триггеры и вперед, к трудовым свершениям. Что я радостно и сделал.

Однако радость была недолгой. Стандартные ключи vmware.vm.cpu.num, vmware.vm.cpu.ready и vmware.vm.cpu.usage показывали что-то странное на рабочей среде.

Собственно меньше всего претензий было к vmware.vm.cpu.num и vmware.vm.cpu.ready. Первый показывает количество виртуальных процессоров на виртуалке, второй - общее потребление MHz на виртуалке.

Проблема была в том, чтобы настроить триггер, который срабатывал бы при 95% превышении загрузки всех процессоров на виртуалке.

От чего плясать? От параметров хоста? Но от хоста мы имеем на виртуалке только название, даже не UUID. И выкручивать параметры хоста == перелопачивать весьма нетривиально правила обнаружения.

vmware.vm.cpu.usage же показывает каких-то странных “попугаев” и как их понимать, учитывая такое вот описание: “Процентное время, когда виртуальная машина была готова, но не запланирована на выполнение на физическом CPU. Время готовности CPU зависит от количества виртуальных машин на хосте и их загрузки CPU (%).” - непонятно.

Сильный гуглеж и подробное чтение мануалов сначала вывели на решение, называемое VmBix, которое показалось несколько избыточным для такой простой задачи. Затем в руки попался ключ vmware.vm.perfcounter и описание счетчиков производительности от VMWare https://www.vmware.com/support/developer/converter-sdk/conv60_apireference/vim.PerformanceManager.html, где в https://www.vmware.com/support/developer/converter-sdk/conv60_apireference/cpu_counters.html найден счетчик usage, вроде бы подходящий по описанию:

CPU usage as a percentage during the interval.VM - Amount of actively used virtual CPU, as a percentage of total available CPU. This is the host’s view of the CPU usage, not the guest operating system view. It is the average CPU utilization over all available virtual CPUs in the virtual machine. For example, if a virtual machine with one virtual CPU is running on a host that has four physical CPUs and the CPU usage is 100%, the virtual machine is using one physical CPU completely. 

Таким образом, выбирая необходимые счетчики, можно получить многое, что в стандартных шаблонах не отображено и не использовать сторонних решений.



Как получить через VMWare SDK то, чего нет в стандартных шаблонах Zabbix Автор: NetMoose Когда: 16.02.2022

Categories: Devops Tags: zabbix devops