Всем доброго времени суток! На днях впервые устанавливал Zabbix и столкнулся с проблемой мониторинга standalone VMware ESXi 6.0. Проблема заключалась в том, что стандартные шаблоны Zabbix предусматривают мониторинг через vCenter и в случае standalone не срабатывают.
Начальную установку и настройку Zabbix в этой статье пропускаем и приступаем сразу к обнаружению нашего standalone хоста. Мы имеем установленный и настроенный Zabbix 4.2.5 на Ubuntu server (18.04), ESXi 6.0 с парой машин внутри. Перед началом действий советую создать для Zabbix отдельного юзера в ESXi с правами Read-only, это позволит не отвлекаться в середине пути.
Время на прочтение
Привет, Хабр! На связи Александр Воронцов, технический специалист компании Cloud4Y. Сегодня я расскажу, как можно настроить получение в Zabbix метрик СУБД PostgreSQL, используемой в VMware Cloud Director и vCenter Server Appliance.
Кое-что вы уже могли читать на Хабре. Я хочу структурировать информацию и более подробно описать тонкости процесса.
Процесс настройки для vCenter и Cloud Director буду описывать параллельно, потому что последовательность действий для настройки одинаковая, отличия в деталях.
- Показывать буду на примере
- Настройки Zabbix
- Настройка ESXi
- Добавление хоста в Zabbix
- Установка Zabbix Agent
- Configuring Zabbix Server
- Запуск Zabbix Server
- Настройка веб-интерфейса Zabbix
- Установка Zabbix Monitoring 5
- О компонентах Zabbix
- Установка компонентов Zabbix
- Настройка Брандмауэра
- Для vCenter Server Appliance
- Создание и настройка базы данных Zabbix
- Импорт схемы базы данных Zabbix
- Мониторинг хоста VMware ESXi
- Добавление хоста VMware ESXi
- Создание триггера для оповещения
- Viewing Alerts
- Добавление шаблона
- Как разрешить доступ Zabbix к PostgreSQL
- Для Cloud Director
- Дистрибутив Zabbix Agent для PhotonOS
- Prerequisites
- Результат
- Дебаг
Показывать буду на примере
Have you ever needed to monitor a single instance or a group of VMware ESXi hosts, but didn’t have a budget for enterprise-grade monitoring? Well, I have some good news for you! You can get the monitoring you need for free with Zabbix monitoring!
In this article, we will build a complete solution. Starting from the ground up, you will gain the knowledge and confidence required to successfully install, configure, and manage a Zabbix server.
Here’s what you’ll be doing:
By the end of this article, you will have all the required knowledge to begin monitoring your VMware ESXi hosts. We will close out with all the additional resource links you will need for your Zabbix journey.
Are you interested? If so, keep reading.
VMware ESXi не дает возможности установить zabbix-agent для настройки мониторинга через агента, но Zabbix может пользоваться SOAP протокол для обмена информацией через XML.
Настройки Zabbix
Настройки Zabbix сервера или прокси (в зависимости, что используется для соединения с ESXi):
/etc/zabbix/zabbix-server.conf
StartVMwareCollectors=2
# значение больше 0. Это количество процессов vmware коллектора.
VMwareFrequency=60
# частота опроса
VMwareCacheSize=8M
# размер кеша
Эти данные соответствуют предлагаемым значениям из конфигурационного файла. Можно просто раскомментировать строки.
Официальная документация — https://www.zabbix.com/documentation/5.0/ru/manual/vm_monitoring
После внесения изменений в конфигурационный файл, перезагружаем сервис zabbix (server или proxy).
Настройка ESXi
Создаем пользователя в ESXi:
Далее присваиваем права на пользователя, для мониторинга достаточно Read-only:
Проверим запущен ли сервис Config. HostAgent.plugins.solo.enableMob, если нет то запустим.
Переходим по адресу:
Нам нужно значение UUID.
Добавление хоста в Zabbix
Настраиваем в админке Zabbix хост:
Через некоторое время Zabbix начнет получать данные от ESXi и появятся виртуальные машины из нашего гипервизора VMware ESXi.
Данная статья описывает настройку мониторинга состояния сервера с VMware ESXi средствами Zabbix.
В моем случае используется 3.2 на ОС 7. Было протестировано с
серверами на
4.1 и 5.5.
Первое,
что нам необходимо будет сделать – это внести изменения в настройки zabbix.
Открываем файл zabbix-server.conf (на 7 он расположен по пути /etc/zabbix/zabbix-server.conf), и
раскомментируем и изменим следующие параметры:
Сохраняем изменения и
перезапускаем .
В 7 это делается так:
# systemctl restart zabbix-server.service
Далее
необходимо создать пользователя на сервере с правами -. Для этого заходим в VMware vSphere Client и подключаемся к
необходимому серверу VMware .
В оставшемся окне проверяем,
что выбранный нами пользователь появился в левой колонке и права выставлены -. После этого нажимаем кнопку «».
Настройки на сервере закончены и можно
закрыть VMware vSphere Client.
В открывшейся форме нажимаем
«Выберите файл» и выбираем один из скачанных шаблонов. Все галочки оставляем по
умолчанию и нажимаем кнопку «Импорт». Данное действие необходимо будет
повторить для всех 3-х шаблонов.
Template Virt VMware
Template Virt VMware Hypervisor
Template Virt VMware Guest
Далее
необходимо узнать нашего сервера с , он будет необходим при добавлении узла сети. Для этого
проходимо пройти по ссылке https://127.0.0.1/mob/?moid=ha-host&doPath=hardware.systemInfo
(127.0.0.1 необходимо заменить на ip адрес сервера ), в появившемся окне
запроса вбиваем имя пользователя и пароль, которые мы создали во 2-м пункте. Должна
отобразиться страница следующего вида:
UUID необходимо скопировать
(без кавычек).
В открывшейся форме в «Имя
узла сети» вбиваем полученный в 4-м пункте, в поле «Видимое имя» вбиваем
название сервера (произвольное, оно будет отображаться в списке узлов сети).
Выбираем к какой группе будет принадлежать данный сервер (в моем случае «»), и в « адрес» вместо 127.0.0.1
вписываем адрес
сервера
(показано на рисунке ниже).
Переходим на вкладку «Шаблоны»
и выбираем наши 3 ранее добавленных шаблона, нажав на кнопку «Выбрать». После
выбора нажимаем кнопку «Добавить», которая подчеркнута красным на рисунке ниже.
После этого шаблоны должны
присоединиться, о чем будет свидетельствовать информация «Присоединенные
шаблоны», как показано ниже на рисунке:
Переходим на вкладку
«Макросы». Жмем на кнопку «Добавить», которая подчеркнута красным на рисунке
ниже, чтобы увеличить возможно добавления количества макросов до 3-х полей. В
поля вбиваем следующие значения:
Добавление
триггера к шаблону.
Нажимаем на «Создать триггер»,
как показано на картинке ниже.
В открывшейся форме жмем «Выбрать».
В открывшейся форме выбираем
параметр «Overall status».
Значение «Функция» выбираем «Последнее
(самое новое)
значение » и
в поле «» пишем цифру
1. Далее жмем «Вставить».
После этого, поле «Выражение» должно
заполниться как показано ниже на картинке. Если все верно – жмем кнопку «Добавить».
Все! Триггер успешно создан.
В 2021 году уже известно, что Zabbix предлагает в качестве средства комплексного мониторинга инфраструктуры VMware набор шаблонов, использующих функционал Low Level Discovery (LLD) и элементы типа Host prototype, в которых создаются стандартные списочные сенсоры из известных vCenter’у. Однако отнюдь не все вендоры оборудования корректно публикуют сенсоры или счетчики своих устройств в доступном для vCenter виде. Здесь рассматривается в подробностях настройка мониторинга для всё ещё поддерживаемых, но не отображающих состояние в vCenter контроллерах дисковой подсистемы Adaptec SmartRAID. Способ получения данных может быть пригоден и для других вендоров.
Итак, задача. Есть несколько хостов ESXi, купленных порознь у разных вендоров, с разным наполнением, и есть охота заиметь под них одинаковый мониторинг. Часть хостов выдает информацию в vSphere web client, но неструктурировано — никаких красивых группировок сенсоров по слову «storage» и близко нет, другая часть вообще ничего не выдает. При этом необходимое ПО установлено! Пример:
Как видим, в списке есть и драйвер для контроллера (здесь Adaptec RAID 8805), и утилита управления arcconf, и «родной» провайдер данных для внешних служб (далее «CIM провайдер») arc-cim-provider, все последних версий. Версия VMware на хосте 6.7U3, и сенсоров состояния подсистемы хранения в ней нет. Однако, если есть провайдер, то как-то можно получить от него данные — этим и займемся.
Во-первых, как получать эти данные. В документации на VMware, помимо всего прочего, сказано, что есть сервис sfcb, который запускается при установке стороннего CIM-провайдера, и сервис openwsman, представляющий собой сервер WS-Management, к тому же, умеющий работать с более примитивными запросами CIM или WBEM. А для работы с данными протоколами есть вполне серьезный клиент pywbem, возвращающий данные в любом удобном виде. Для своей реализации мониторинга я взял более привычную мне среду программирования bash и wbemcli в качестве средства обращения к хосту ESXi.
Чтобы получить данные от хоста, необходимо на нем авторизоваться, но локального root, естественно, заббиксу никто давать не будет. Поэтому на каждом хосте, подлежащем отслеживанию, нужно создать пользователя с ограниченным доступом, но в то же время имеющего доступ к подсистеме CIM, которая в VMware ограничена дополнительно. m4ce, создавший свой вариант шаблона для ESXi-хоста, выложил инструкцию, как правильно создать пользователя для Zabbix на ESXi-хосте версий 6.х (для более ранних необходимы слегка другие команды):
Инструкция слегка избыточна, так как, если когда-то мониторинг по CIM/WBEM/WS-Man уже настраивался, роль пользователя, подобная CIM_ReadOnly, может существовать, но на чистой системе подобных ролей не найдено.
Далее самое интересное. Дело в том, что сенсоры, которые собирает VMware vCenter, находятся в пространстве имен WBEM «по умолчанию», оно же «root/cimv2», а так как информации о дисках там нет, либо она в кривом виде, нужно найти правильное пространство имен, где эти данные есть, и правильные имена классов устройств, которые нужно отслеживать. Вторая часть несколько проще — беглым поиском находятся имена классов CIM_DiskDrive, CIM_StorageVolume, CIM_Controller, от которых можно отталкиваться в поисках фактических элементов. А с первой поможет вот этот документ от VMware (PDF), содержащий ссылки на ужасно обрезанную документацию по вендорским провайдерам. Но она есть, и вуаля — для Adaptec CIM Provider найдено пространство имен «root/pmc/arc/smi_15». Из того же документа можно узнать пространства имен и для других вендоров, пусть иногда и не напрямую — например, для Emulex пространство имен «root/emulex».
Если в одной строке появляются несколько символов подчеркивания, визуальный редактор их сжирает, думая, что это элемент форматирования. Как это отрубить?
Теперь у нас есть вся необходимая информация, чтобы начать собирать какие-то данные с хоста. Но данные из wbemcli возвращаются в очень громоздком и нечитаемом виде, мало того, адресуются элементы в командной строке не очень легко, к тому же, в Zabbix нужно суметь передать структуру обнаруженных данных через тот же механизм LLD. Для этого я написал скрипт, который умеет две вещи — отдавать найденные инстансы некоего класса из определенного пространства имен в Zabbix, и отдавать необработанные данные wbemcli при запросе конкретного инстанса. Скрипт представляет собой обертку над вызовами wbemcli einи wbemcli gi, с форматированием данных в режиме обнаружения в формат, приемлемый для Zabbix’a. Шаблон для его использования находится там же, в нем настроены некоторые основные параметры отслеживаемых физических и логических дисков — для физических это состояние, температура (два варианта — один для сервера с HDD, второй для сервера с SSD, они заполняют разные параметры!), флаг состояния SMART (тоже два), счетчик оставшегося ресурса SSD и счетчики аппаратных ошибок, для логических — только состояние, и некоторые базовые триггеры на их основе. Дополнения и тесты на не-Adaptec системах приветствуются.
Напоследок: Если вы не сумели найти правильное пространство имен, в поисках поможет то, что «пространство имен» — это тоже класс, с именем __namespace, перечисление экземпляров которого можно начать с пространства «root».
Установка Zabbix Agent
С помощью, например, WinSCP, копируем бинарные файлы в /usr/bin, файл конфигурации в /etc/zabbix. Файл конфигурации заполняем «классическим способом».
Примечание: vCenter и Cloud Director будут удалять каталог /var/run/zabbix при каждой перезагрузке, потому PID файл нужно расположить в другом месте, например /tmp/zabbix.pid
Создаём System.d Unit для работы Zabbix Agent в качестве системного сервиса:
Unit разместим по пути /usr/lib/systemd/system/zabbix-agent.service, со следующим содержимым:
Для запуска Zabbix Agent выполняем:
systemctl enable zabbix-agent
systemctl restart zabbix-agent
Configuring Zabbix Server
Using the built-in text editor Nano that comes with Ubuntu Server, you need to make a couple of edits to the /etc/zabbix/zabbix_server.conf file.
You can use Vim too if that works better for you. This guide uses Nano in screenshots and instruction, but the actual edits do not change based on your choice of text editing utility.
There are two parameters you will need to search for, uncomment, and edit. Those are DBPassword and StartVMwareCollectors.
You can quickly search for these options using CTRL+W when using the nano text editor.

Editing the DBPassword parameter in /etc/zabbix/zabbix_server.conf using nano on Ubuntu Server
Now edit StartVMwareCollectors. Using CTRL+W again, search for StartVMwareCollectors and press Enter. You should now see the StartVMCollectors=0 parameter below. Edit StartVMwareCollectors parameter and assign a value of 5.

Editing the StartVMwareCollectors parameter in /etc/zabbix/zabbix_server.conf using nano on Ubuntu Server
Before you save the file, you may have noticed there is a couple of other VMware related parameters. You do not need to edit these at this time as the defaults are fine. However, if you would like to write different settings, I encourage you to take a look at the full list of parameters here.
Save your changes using CTRL+X, choose Y, and then press Enter. You will be returned to the Bash prompt.
Последняя конфигурация, которую вам нужно будет отредактировать в /etc/zabbix/apache.conf. Этот файл управляет настройками веб-интерфейса Zabbix.

Редактирование конфигурации Apache в /etc/zabbix/apache.conf с помощью nano на Ubuntu Server
Раскомментируйте строку # php_value date.timezone Europe/Riga и укажите нужный часовой пояс. Например, вы можете ввести America/New_York, чтобы установить часовой пояс на Восточное стандартное время. См. этот сайт для получения полного списка действительных часовых поясов PHP. Ваша конфигурация должна выглядеть примерно так, как показано на скриншоте ниже:

Значение php_value date.timezone установлено в America/New_York
Сохраните изменения. Вы вернетесь к командной строке Bash. Теперь вы готовы запустить сервер Zabbix.
Запуск Zabbix Server
Перезапустите службы Zabbix и включите их, чтобы они автоматически запускались при перезагрузке.
Используя приведенные ниже команды, вы перезапускаете сервер Zabbix, агента и демоны apache2, чтобы ваши изменения в файле конфигурации вступили в силу. Затем вы разрешаете этим демонам автоматически запускаться после перезагрузки. Если вы этого не сделаете, вам придется вручную запускать службы каждый раз, когда ваш хост отключается для обслуживания или становится нестабильным и перезагружается.
Теперь вы можете выйти из сеанса SSH и закрыть терминал.
Теперь вы сможете открыть любой современный веб-браузер, перейти к веб-интерфейсу Zabbix и завершить первоначальную настройку. Это именно то, что вы собираетесь делать в следующем разделе.
Настройка веб-интерфейса Zabbix
Первая страница, на которую вы попадаете, — это страница приветствия. Нажмите «Следующий шаг»:

Приветственная страница веб-интерфейса Zabbix
Далее Zabbix выполнит список предварительных условий. Вы должны увидеть все статусы OK при прокрутке списка вниз. На этом этапе вы увидите, верны ли сделанные ранее изменения. Если это не так, мастер установки не продолжит работу, пока вы не внесете исправления в файлы конфигурации. Если все правильно и задокументировано, нажмите Следующий шаг:

Веб-интерфейс Zabbix Проверка предварительных условий

Веб-интерфейс Zabbix Настройка соединения с БД
Наконец, дайте Zabbix-серверу Имя и оставьте значения по умолчанию для Хоста и Порта. Подойдет любое имя, это всего лишь способ обозначить ваш сервер Zabbix в пользовательском интерфейсе Zabbix. Однако рекомендуется использовать реальное имя хоста вашего сервера. Если вы удовлетворены, нажмите «Следующий шаг»:

Сведения о веб-интерфейсе Zabbix Zabbix-сервере
Наконец, проверьте сводную информацию перед установкой. Это еще один хороший момент для документирования конфигурации вашего сервера Zabbix. Если вы удовлетворены, нажмите «Следующий шаг»:

Веб-интерфейс Zabbix Сводная страница перед установкой
Установка завершена. Нажмите «Готово».

Веб-интерфейс Zabbix завершен

Страница входа в веб-интерфейс сервера Zabbix
Установка Zabbix Monitoring 5
Этап процесса установки — подготовка к добавлению репозитория Zabbix в Ubuntu, чтобы вы могли загрузить и установить пакет.
sudo dpkg -i zabbix-release_5.0-1+focal_all.deb

Вывод после обновления репозитория APT на сервере Ubuntu.
Теперь вы готовы начать установку компонентов Zabbix.
О компонентах Zabbix
Каждое развертывание Zabbix состоит из трех основных компонентов:
Zabbix поддерживает разделение Zabbix Server и Zabbix Web Front End на автономные экземпляры. Разделение компонентов является более сложной задачей и не является типичным сценарием. Поэтому данное руководство не будет охватывать этот тип установки.
Каждый из этих компонентов представляет собой основной компонент Zabbix.
Установка компонентов Zabbix
После завершения вы готовы перейти к настройке сервера MySQL, созданию пустой базы данных и импорту предопределенной схемы в указанную базу данных.
Настройка Брандмауэра
Добавляем в начало файла
-A INPUT -p tcp -m state —state NEW -m tcp —dport 10050 -j ACCEPT
Для vCenter Server Appliance
В конце приготовления вставляются по сравнению с другими, не ломая исходное форматирование:
Пример на скриншоте
Создание и настройка базы данных Zabbix
Zabbix требуется база данных для хранения статистических данных и данных конфигурации. Самый распространенный выбор — MySQL. В репозиториях Ubuntu Server 20.04 по умолчанию используется MariaDB, которая является исходной версией MySQL, обе системы реляционных баз данных с открытым исходным кодом. Вместо этого вы можете использовать PostgreSQL, но процесс немного отличается. В этом руководстве используйте вариант по умолчанию — MariaDB.
создать набор символов zabbix базы данных utf8, сопоставить utf8_bin;
Теперь вы должны вернуться к командной строке Bash.
Импорт схемы базы данных Zabbix
На данный момент у вас есть пустая база данных. Там нет таблиц или структуры. Следующим шагом является импорт схемы с использованием скрипта и шаблона базы данных, предоставленных Zabbix.
Это займет минуту или две. Когда вы вернетесь к командной строке Bash, вы можете продолжить.
Мониторинг хоста VMware ESXi
Вы завершили самую сложную часть установки Zabbix. Теперь, когда у вас есть полностью работающий пользовательский интерфейс Zabbix, пришло время перейти к сути этого руководства.
В этом разделе вы познакомитесь с процессом настройки и добавления хоста VMware ESXi в Zabbix, а также с настройкой триггера для оповещения вас о состоянии хоста при выполнении условия. Помните, Zabbix может отслеживать практически любое устройство, к которому вы можете подключиться. Шаги, которые вы будете выполнять для добавления хоста VMware ESXi, почти идентичны с некоторыми отличиями для других типов устройств.
Добавление хоста VMware ESXi
Чтобы начать мониторинг хоста VMware ESXi, сначала необходимо создать хост. Хост в Zabbix — это любое устройство, которое вы хотите отслеживать, например серверы, рабочие станции, виртуальные машины, коммутаторы, маршрутизаторы, брандмауэры и т. д.
Для этого используйте меню навигации в левой части пользовательского интерфейса Zabbix и щелкните, чтобы развернуть меню Конфигурация, а затем щелкните Хосты:

Теперь нажмите кнопку «Создать хост». Эта кнопка находится в правом верхнем углу веб-интерфейса:

Экран хостов Zabbix
Теперь введите некоторую информацию о хосте VMware ESXi, который вы хотите отслеживать:

Экран конфигурации хостов Zabbix
Вот некоторые определения параметров:
При использовании агента Zabbix обязательно используйте здесь то же имя хоста, что и в файле конфигурации агента. Если вы не используете одно и то же имя хоста, активные проверки не пройдут. Это обязательный параметр.
Введите IP-адрес хоста VMware ESXi, который вы хотите отслеживать, в поле «Имя хоста», дайте ему более понятное имя в поле «Видимое имя», создайте новую группу под названием «Хосты VM» и добавьте простое описание «Этот host является частью руководства по блогу ATA». Пока не нажимайте Добавить!

Экран конфигурации хостов Zabbix заполнен
Далее добавим применить шаблон к хосту. Шаблон — это набор объектов, которые вы можете прикрепить к хосту или группе хостов. Для этого щелкните пункт меню «Шаблоны» на экране конфигурации хостов:

Экранное меню конфигурации Zabbix Hosts
Следующий экран будет выглядеть так:

Экран конфигурации Zabbix Hosts Templates
Вы заметите, что связанных шаблонов нет, и это ожидаемо, потому что вы еще не собираете элементы для мониторинга на своем хосте. Вы можете создать свой шаблон, клонировав и изменив существующий шаблон. Тем не менее, Zabbix поставляется с шаблонами VMware прямо из коробки! Вам не нужно тратить часы на настройку объектов для мониторинга.
Связать шаблон под названием Template VM VMware. Это добавит все соответствующие выражения и определения элементов для хостов ESXi. Если вы начнете вводить это имя в поле поиска, вы увидите предложения автозаполнения. Вы можете сэкономить время на наборе текста, используя клавишу со стрелкой и нажав клавишу ввода, как только увидите правильный шаблон. Пока не нажимайте Добавить!

Связанный шаблон экрана конфигурации Zabbix Hosts Templates
Вы видите два других шаблона в списке. Это Template VM VMware Guest и Template VM VMware Hypervisor. Эти два шаблона на самом деле являются шаблонами низкоуровневого обнаружения (LLD), которые являются частью выбранного вами шаблона. Они будут использовать правила низкоуровневого обнаружения для сбора дополнительной информации о добавляемом хосте.
Теперь последний шаг настройки хоста. Прежде чем Zabbix сможет подключиться к хостам VMware ESXi, вы должны предоставить некоторые макросы или параметры хоста, которые позволят вам подключиться к хосту VMware ESXi. Для этого щелкните пункт меню «Макросы» на экране конфигурации хостов:


Экран настройки макросов Zabbix Hosts
По умолчанию у вас есть только одно поле макроса, но вам понадобятся еще два. Причина, по которой вам нужны дополнительные макросы, заключается в том, что вам нужно указать дополнительные параметры. Нажатие на кнопку «Добавить» добавит дополнительное поле для следующего параметра, который вы хотите назначить. Нажмите «Добавить», как показано на скриншоте ниже, еще два раза:

Добавление нового поля Host macros
Вы, наверное, заметили, что есть опция для поля пароля. Это новая опция Zabbix 5.0.

Вариант секретного текста
После завершения этого шага вы можете нажать синюю кнопку «Добавить», как показано ниже:

Добавить хост на сервер Zabbix
Вы вернетесь на страницу конфигурации хостов. Теперь вы должны увидеть, что ваш хост VMware ESXi теперь указан в списке:

ESXi-01 добавлен к хостам
Не пугайтесь, если сразу не увидите никаких значений отслеживаемых предметов. Получение данных с хоста VMware ESXi может занять до часа. Вы также можете добавить другие шаблоны для гостей VMware и VMware (для журналов), если хотите.
Создание триггера для оповещения
А пока настройте триггер на основе уже отслеживаемых элементов. Благодаря низкоуровневым шаблонам обнаружения, привязанным к шаблону, который вы применили к своему хосту, информация льется потоком. Там много подробностей по гипервизору и даже несколько гостей (если у вас есть гости)! Вы увидите, что эта информация собирается при просмотре последних данных. Вы можете изучить элементы, которые содержит каждый хост, чтобы получить представление о том, для чего вы можете создать оповещение. Но для этого руководства вы просто создадите простой триггер.
Создание триггера позволит вам получать оповещения на основе заданных вами условий. Например, вы хотели бы знать, когда в гипервизоре ESXi вашей крошечной домашней лаборатории начинает не хватать памяти. У вас так мало доступной памяти, что вы решаете, что вам нужно получать оповещения, когда использование достигает или превышает 8 ГБ. Теперь в этой лабораторной работе имя гипервизора — это localhost.localdomain по умолчанию, так что это имя используется в дальнейших примерах. Чтобы приступить к созданию условия для оповещения, щелкните ссылку «Триггеры», как показано ниже:

Обнаружен гипервизор VMware localhost.localdomain

Создать триггер для обнаруженного гипервизора VMware localhost.localdomain
Теперь вы должны увидеть экран конфигурации триггеров:

Создание триггера для localhost.localdomain
Дадим триггеру осмысленное имя «Используемая половина памяти» и выберем уровень серьезности «Предупреждение». Затем в поле «Выражение» нажмите кнопку «Добавить», как показано ниже, чтобы начать создание условного выражения для триггера:

Создание условий срабатывания для триггера localhost.localdomain
Появится всплывающее окно, которое позволит вам выбрать условия для запуска. Начните с нажатия «Выбрать» в поле «Элемент»:

Нажмите «Выбрать», чтобы начать просмотр доступных элементов, для которых вы можете создать условные выражения:

Доступные предметы для использования в состоянии
После того, как вы прокрутите список вниз, найдите «Используемая память» и щелкните по нему. Это добавит элемент в выражение условия. У вас есть три дополнительных поля, которыми можно манипулировать. Это поля «Функция», «Последнее число (T)» и «Время смены времени». Все они являются частью выражений предиктивного триггера и выходят за рамки данного руководства. На данный момент придерживайтесь выбора функции по умолчанию, а затем измените получившееся раскрывающееся меню с = на ≥=. Zabbix в первую очередь имеет дело с байтами, когда речь идет о чтении памяти, поэтому вы дадите значение 8589934592, что составляет 8 ГБ. Когда закончите, нажмите «Вставить», чтобы возобновить настройку триггера:

Добавление условий используемой памяти в выражение триггера
Вы вернетесь к экрану выражения триггера. Здесь есть и другие варианты, но об одном стоит упомянуть особо. Параметр генерации события OK противоположен генерации события Проблема. Проблема и – это просто состояние вашего триггера. Подумайте об этом так. Когда ваше условное выражение оценивается как ИСТИНА, создается событие проблемы. Когда выполняется следующий интервал проверки и условное выражение оценивается как FALSE, генерируется событие OK. You could add a separate trigger expression to generate an OK event based on a conditional expression. This could be useful for automation of alert handling if your ESXi host shut a few VM’s off and stopped using so much memory.
Add a simple description and ensure that the Enabled box is checked and click on Add:

Add Trigger with completed condition expression
And now you have the first trigger created for your ESXi host:

Trigger added to host
The initial Value should be OK as long as the trigger expression is evaluating to FALSE. If the trigger expression evaluates to TRUE, you would see a value of PROBLEM. Now time to run a test on the trigger. You will see the alert on the monitoring dashboard if your trigger condition expression is true in the next section.
Viewing Alerts
“Hey Boss. You have an alert on one of your VMware hosts. Are you doing deployments on the wrong host?”
You pull up your Zabbix URL on your iPad or Surface book and sign in. By default, you are shown the Global view dashboard.
Через час после успешного принятия первых метрик, в разделе Hosts вы увидите ваши виртуальные машины:
Во избежания конфликтов имен, в случае установки Zabbix agent на гостевую ОС, данный шаблон добавляет ВМ по следующей маске:
Ссылки на используемые материалы и шаблон:
— Шаблон
— Zabbix wiki
Добавление шаблона
Первым делом всегда собираются исходные данные, и в нашем случае это UUID вашего хоста. « Добыть» его можно двумя способами:
Как разрешить доступ Zabbix к PostgreSQL
Будем следовать официальному мануалу для Zabbix Agent (не Zabbix Agent 2). Переписывать мануал я не буду, но прокомментирую неочевидные моменты:
На шаге 1: vCenter использует версию PostgreSQL 9.6.20, Cloud Director — версию 10.12. Для них нужно выполнять разные команды для создания пользователя zbx_monitor.
На шаге 4: Нужно отредактировать pg_hba.conf для доступа Zabbix Agent к PostgreSQL, добавив строку host all zbx_monitor 127.0.0.1/32 trust вверху списка правил IPv4 local connections:

Для Cloud Director
Нужно вносить изменения в /opt/vmware/appliance/etc/base_pg_hba.conf.
Нужно вносить изменения в /storage/db/vpostgres/pg_hba.conf.
На шаге 6: Ничего делать не нужно в случае размещения Zabbix Agent и PostgreSQL на одном хосте (как в нашем примере).
После завершения настройки по мануалу, выполняем перезагрузку VMware Cloud Director и vCenter Server Appliance и проверяем доступность Zabbix Agent из Zabbix.
Дистрибутив Zabbix Agent для PhotonOS
Zabbix Agent для PhotonOS можно собрать самостоятельно из исходников, но мы возьмём уже собранный «дистрибутив» (вопрос безопасности использования чужих бинарников с гитхаба обойду стороной. Как я уже сказал, всегда можно собрать из исходников самому).
Prerequisites
It is assumed that:
You may be wondering why an SSH client is optional. While this guide will be using the native PowerShell 7 capability of opening SSH connections, the choice is yours on what SSH client tool you want to use to connect to the Linux VM. If you are just planning on using a virtual machine management console, you may have to do extra typing as the SSH clients will allow you to paste the code examples in this guide.
Результат
После проведения всех манипуляций по настройке получим нечто подобное:

Графики с VMware Cloud Director

Графики с vCenter Server Appliance
Дебаг
Если у вас что-то не работает, то вот несколько вариантов решения проблемы:
Не запускается Zabbix Agent:
Выполните systemctl status zabbix-agent. Если агент не стартует, попробуйте запустить его из консоли командой /usr/bin/zabbix_agentd -f -c /etc/zabbix/zabbix_agentd.conf, посмотрите ошибку в выводе на экран.
Zabbix Agent недоступен по сети:
Проверьте, что порт 10050/tcp открыт на Firewall: iptables -L
Проверьте, что разрешающее правило находится в цепочке INPUT

Спасибо за внимание!

