9. Мониторинг виртуальных машин

Обзор

Поддержка мониторинга сред VMware доступна в Zabbix начиная с версии 2.2.0.

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

Поставляемый с Zabbix начальный набор данных предлагает несколько готовых к использованию шаблонов для мониторинга VMware vCenter и ESX гипервизоров.

Минимально требуемой версией VMware vCenter или vSphere является 4.1.

Подробности

Мониторинг виртуальных машин выполняется в два шага. Первый, данные о виртуальных машинах собирается Zabbix процессами vmware коллекторами. Эти процессы получают необходимую информацию с веб служб VMware через SOAP протокол, подготовалиивают эту информацию и записывают в разделяемую память Zabbix сервера. Затем, эти данные извлекаются с помощью поллеров, используя VMware ключи простых проверок Zabbix.

Начиная с версии Zabbix 2.4.4 собираемые данные разделены на 2 типа: данные конфигурации VMware и данные счётчиков производительности VMware. Оба эти типа собираются независимо vmware коллекторами. В связи с этим рекомендуется активировать больше коллекторов, чем служб VMware под мониторингом. В противном случае получение статистики основанной на счетчиках производительности VMware может задерживаться получением данных конфигурации VMware (что занимает длительное время на больших инсталляциях).

В настоящее время только статистика по хранилищам данных, сетевых интерфейсов и дисковых устройств основывается на информации со счётчиков производительности VMware.

Настройка

Для того чтобы мониторинг виртуальных машин заработал, необходимо, чтобы Zabbix был скомпилирован с опциями сборки --with-libxml2 и --with-libcurl.

Можно использовать следующие опции из файла конфигурации для оптимизации мониторинга виртуальных машин:

  • StartVMwareCollectors - количество префорк процессов vmware коллектора.
    Это значение зависит от количества служб VMware, которые вы наблюдаете. Для большинства случаев значением должно быть:
    колвослужб < StartVMwareCollectors < (колвослужб * 2),
    где колвослужб является количество служб VMware. Например, если у вас под наблюдением 1 служба VMware, задайте StartVMwareCollectors равным 2, если у вас 3 службы VMware, задайте параметр равным 5. Обратите внимание, что в большинстве случаев это значение не должно быть меньше 2 и не должно превышать более чем в 2 раза, чем количество служб VMware, которые вы мониторите. Также имейте в виду, что эта величина зависит также от размера вашей среды VMware, параметров конфигурации VMwareFrequency и VMwarePerfFrequency (смотрите ниже).
  • VMwareCacheSize
  • VMwareFrequency
  • VMwarePerfFrequency
  • VMwareTimeout

Для получения большей информации смотрите страницы файлов конфигурации Zabbix сервера и прокси.

Обнаружение

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

Ключом правила обнаружения на снимке экрана выше является vmware.hv.discovery[{$URL}].

Прототипы узлов сети

Прототипы узлов сети можно создать с помощью правила низкоуровневого обнаружения. Когда виртуальные машины обнаруживаются, их прототипы становятся реальными узлами сети. Прототипы, до момента обнаружения, не могут иметь своих собственных элементов данных и триггеров, кроме тех, которые унаследованы из присоединенных шаблонов. Обнаруженные узлы сети будут принадлежать существующему узлу сети и унаследуют IP адрес существующего узла сети в своей конфигурации.

В настройке прототипа узлов сети используются LLD макросы для полей имени узла сети, видимого имени и прототипа группы узлов сети. Состояние узла сети, соединения с существующими группами узлов сети и другие опции, которые можно указать.

В списке узлов сети обнаруженные узлы сети имеют префикс с именем правила обнаружения, от которого они были созданы. Обнаруженные узлы сети могут быть удалены вручную. Обнаруженные узлы автоматически удаляются, основываясь на значении Период хранения потерянных ресурсов (в днях) правила обнаружения. Большинство опций конфигурации доступно только на чтение, исключая активацию/деактивацию узла сети и инвентарные данные. Обнаруженные узлы сети не могут иметь свои собственные прототипы узлов сети.

Готовые к использованию шаблоны

Поставляемый с Zabbix начальный набор данных предлагает несколько готовых к использованию шаблонов для мониторинга VMware vCenter и мониторинга напрямую ESX гипервизоров.

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

Заметьте, что шаблон "Template Virt VMware" необходимо использовать для мониторинга VMware vCenter и ESX гипервизора. Шаблоны "Template Virt VMware Hypervisor" и "Template Virt VMware Guest" используются для обнаружения и обычно не присоединяются вручную к узлам сети.

Если ваш сервер обновлен с версии до 2.2 и не имеет описанных шаблонов, вы можете их импортировать вручную, загрузив со страницы официальных шаблонов с сервера сообщества. Однако, эти шаблоны имеют зависимости от преобразований значений VMware VirtualMachinePowerState и VMware status, поэтому необходимо сначала создать эти преобразования значений (используя SQL скрипт или вручную) до импорта шаблонов.

Настройка узла сети

Для того чтобы использовать простые проверки VMware, на узел сети должны быть назначены следующие макросы:

  • {$URL} - служба VMware (vCenter или ESX hypervisor) SDK URL (https://servername/sdk)
  • {$USERNAME} - Имя пользователя службы VMware
  • {$PASSWORD} - Пароль к пользователю {$USERNAME} службы VMware

Пример

Следующий пример демонстрирует как быстро в Zabbix можно настроить VMware мониторинг:

  • скомпилируйте zabbix сервер с требуемыми опциями (--with-libxml2 и --with-libcurl)
  • задайте параметр StartVMwareCollectors в файле конфигурации Zabbix сервера равным 1 или более
  • создайте новый узел сети
  • укажите требуемые для аутентификации в VMware макросы на уровне узла сети:
    {{..:..:assets:en:manual:vm_monitoring:vm_host_macros.png|}}
       * Присоедините шаблон к шаблону службы VMware: 
           {{..:..:assets:en:manual:vm_monitoring:vm_host_templates.png|}}
       * Нажмите на кнопку //Добавить//, чтобы сохранить узел сети

Расширенное журналирование

Можно записывать в файл журнала сбор данных коллектором VMware, используя уровень отладки 5. Этот уровень можно задать в файлах конфигурации сервера и прокси или используя опцию выполнения административных функций (-R log_level_increase="vmware collector,N", где N является номером процесса). При условии, что уровень отладки 4 уже задан, расширенное журналирование можно запустить так, как демонстрируется в следующих примерах:

Увеличение уровня журналирования по всем коллекторам vmware:
       shell> zabbix_server -R log_level_increase="vmware collector"
       
       Увеличение уровня журналирования по второму коллектору vmware:
       shell> zabbix_server -R log_level_increase="vmware collector,2"

Если расширенное журналирование данных коллекторов VMware не требуется, его можно истановить, используя -R log_level_decrease.

Решение проблем

  • В случае недоступности метрик, пожалуйста, убедитесь, что они не стали недоступными или отключенными по умолчанию в последних версиях VMware vSphere или, не наложены ли какие-либо ограничения на запросы метрик производительности в базу данных. Смотрите ZBX-12094 для получения более подробных сведений.
  • Для исправления 'config.vpxd.stats.maxQueryMetrics' is invalid or exceeds the maximum number of characters permitted** ошибки проверьте значение maxQuerySize параметра в web.xml в VMware, затем перейдите в advanced vCenter Server settings и добавьте config.vpxd.stats.maxQueryMetrics параметр с таким же значением. Смотрите статью базы знаний VMware для получения более подробной информации.