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

Обзор

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

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

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

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

Детали

Мониторинг виртуальных машин выполняется в два шага. Первый, данные о виртуальных машинах собираются Zabbix процессами vmware collector. Эти процессы получают необходимую информацию с веб служб 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 и не должно превышать двукратного количества служб VMware, которые вы мониторите. Также имейте в виду, что эта величина зависит также от размера вашей среды VMware, параметров конфигурации VMwareFrequency и VMwarePerfFrequency (смотрите ниже).
  • VMwareCacheSize
  • VMwareFrequency
  • VMwarePerfFrequency
  • VMwareTimeout

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

Чтобы поддерживать метрики объёмов хранилищ данных, Zabbix требуется, чтобы значение параметра VMware vpxd.stats.maxQueryMetrics было по меньшей мере 64. Смотрите также статью [en] в базе знаний VMware.

Обнаружение

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

Все обязательные поля ввода отмечены красной звёздочкой.

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

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

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

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

Начиная с Zabbix 5.2, обнаруженные узлы сети можно настраивать с пользовательскими интерфейсами или наследовать IP адрес узла сети, которому принадлежит правило обнаружения (по умолчанию). Чтобы добавить один и более пользовательских интерфейсов, переключите параметр Интерфейс из режима Наследовать на Пользовательское, затем нажмите на add_link.png (Добавить) и выберите тип требуемого интерфейса в появившемся выпадающем меню. Прототипу узлов сети можно добавить все поддерживаемые типы интерфейсов: Zabbix агент, SNMP, JMX, IPMI. Поля интерфейсов поддерживают низкоуровневые макросы и пользовательские макросы. Если задано несколько пользовательских интерфейсов - используйте колонку По умолчанию, чтобы определить основной интерфейс.

Примечания:

  • Если выбран режим Пользовательские, но интерфейсы не заданы, узлы сети будут созданы без интерфейсов.
  • Если выбрано Наследовать у прототипа узлов сети, который принадлежит шаблону, обнаруженные узлы сети будут наследовать интерфейс узла сети, к которому присоединён шаблон.

Узел сети не будет создан, если интерфейс узла сети содержит некорректные данные

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

Другие параметры, которые можно задать прототипу узлов сети:

  • Связь с существующими группами узлов сети
  • Связь с шаблонами
  • Шифрование

Если Создать активированным выбрано, узел сети добавится в активированном состоянии. Если не выбрано, узел сети добавится, но в деактивированном состоянии.

Если опция Обнаружение выбрана (по умолчанию), узел сети будет создан. Если опция не выбрана, узел сети не будет создаваться, если только этот параметр не переопределён в правиле обнаружения. Эта возможность даёт дополнительную гибкость при создании правил обнаружения.

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

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

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

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

Шаблоны для мониторинга VMware vCenter и ESX гипервизоров:

  • VMware - использует данные UUID для соответствующих макросов;
  • VMware FQDN - использует данные FQDN для соответствующих макросов.

Для корректной работы шаблона VMware FQDN каждая VM должна иметь уникальное имя ОС, соответствующее правилам FQDN, и VMware Tools или Open Virtual Machine Tools должны быть установлены на каждой машине. Если эти условия соблюдены, рекомендуется использовать шаблон VMware FQDN. Создание шаблона VMware FQDN стало возможным после введения возможности создания узлов сети с пользовательскими интерфейсами в Zabbix 5.2.

Классический шаблон VMware всё ещё доступен и может быть использован, если требования FQDN не соблюдаются. Пожалуйста, имейте в виду, что у шаблона VMware имеется известная проблема. Узлы сети обнаруженных виртуальных машин создаются с именами, которые хранятся в vCenter (например, VM1, VM2 и т.д.). Если активный Zabbix агент позже устанавливается на этих узлах сети с активированной опцией авторегистрации, процесс автоматической регистрации прочитает имена хостов так, как они были зарегистрированы при запуске (например, vm1.example.com, vm2.example.com и т.д.) и создаст новые узлы сети, так как совпадения не будут найдены. В результате будет два дубликата узлов сети с разными именами по каждой машине.

Обратите внимание:

  • Шаблон VMware Hypervisor можно как вручную присоединить к узлу сети, так и использовать в обнаружении;
  • Шаблон VMware Guest не стоит вручную присоединять к узлам сети, его можно использовать только в обнаружении.

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

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

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

Пример

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

  • убедитесь, что Zabbix сервер скомпилирован с требуемыми опциями (--with-libxml2 и --with-libcurl): файл журнала при запуске сервера должен содержать: «VMware monitoring: YES».
  • задайте параметр StartVMwareCollectors в файле конфигурации Zabbix сервера значением 2 или более
  • создайте новый узел сети
  • укажите требуемые для аутентификации в VMware макросы на уровне узла сети:

  • присоедините узел сети к шаблону службы VMware:

  • нажмите на кнопку Добавить, чтобы сохранить узел сети.

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

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

# Увеличение уровня журналирования по всем коллекторам vmware:
       zabbix_server -R log_level_increase="vmware collector"
       
       # Увеличение уровня журналирования по второму коллектору vmware:
       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**, добавьте параметр config.vpxd.stats.maxQueryMetrics в настройки сервера vCenter. Значение этого параметра должно быть таким же, как и maxQuerysize в VMware web.xml. Для получения более подробных сведений смотрите эту статью базы знаний VMware.