Настраиваем мониторинг Proxmox Virtual Environment при помощи Zabbix

  • Автор:

proxmox-zabbix-monitoring-000.png Виртуализация сегодня плотно вошла в нашу жизнь и гипервизор давно стал объектом высокой степени важности, так как от его работы зависит множество различных сервисов. Поэтому очень важно держать руку на пульсе и своевременно получать данные о состоянии гипервизора и виртуальных машин. В этом нам поможет система мониторинга Zabbix. В данной статье мы рассмотрим, как настроить интеграцию Proxmox и Zabbix чтобы начать получать все необходимые данные о состоянии гипервизора и виртуальных машин.

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Установка Zabbix Agent 2

В ряде материалов высказывается мнение, что для мониторинга Proxmox Virtual Environment установка Zabbix Agent не обязательна. Да, это так, шаблон Proxmox VE by HTTP работает через API Proxmox, но не будем забывать, что система виртуализации - это еще и хост под управлением Linux и нам тоже нужно получать по нему различную информацию, поэтому агент точно лишним не будет.

Proxmox построен на базе Debian и для PVE 7 нам потребуется агент для Debian 11, а для PVE 8 - для Debian 12. Переходим на официальный сайт в раздел загрузок и получаем инструкцию для установки на нужную систему:

proxmox-zabbix-monitoring-001.pngНиже, в качестве примера, покажем установку агента на PVE 8 (Debian 12). Сначала подключим репозитории и обновим список пакетов:

wget https://repo.zabbix.com/zabbix/7.0/debian/pool/main/z/zabbix-release/zabbix-release_7.0-2+debian12_all.deb
dpkg -i zabbix-release_7.0-2+debian12_all.deb

apt update

После чего установим агент и плагины к нему:

apt install zabbix-agent2 zabbix-agent2-plugin-*

Затем откроем файл /etc/zabbix/zabbix_agent2.conf и найдем в нем опции:

Server=zabbix7.interface31.lab

и

ServerActive=zabbix7.interface31.lab

В каждой из которых укажите FQDN или IP-адрес вашего IP-сервера. Если оставить опцию ServerActive пустой - активные проверки будут отключены.

Теперь сохраним изменения и перезапустим службу агента:

systemctl restart zabbix-agent2

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

Получение токена для работы с API Proxmox Virtual Environment

Для работы с шаблоном нам потребуется специальный системный пользователь Proxmox с нужным набором прав. Чем мы сейчас и займемся.

Сначала создадим отдельную роль с требуемым набором прав:

pveum role add ZabbixMonitoring --privs "Datastore.Audit Sys.Audit VM.Audit"

Где ZabbixMonitoring - название роли.

Теперь добавим группу и назначим ей права в соответствии с ролью, группу назовем просто - zabbix:

pveum group add zabbix 
pveum acl modify / -group zabbix -role ZabbixMonitoring

После чего создадим нового пользователя и добавим в указанную группу:

pveum user add zabbix@pam
pveum user modify zabbix@pam -group zabbix

Завершающий этап - получение токена для нашего пользователя, для этого выполните команду:

pveum user token add zabbix@pam monitoring -privsep 0

Где zabbix@pam - имя пользователя для которого мы получаем токен, а monitoring - его идентификатор. Скопируйте и сохраните значение поля value для токена, это секретный ключ, повторно узнать его не получится.

proxmox-zabbix-monitoring-002.pngНа этом настройки на стороне гипервизора закончены.

Добавление узлов Proxmox Virtual Environment в Zabbix

Открываем веб-интерфейс Zabbix и переходим в Мониторинг - Узлы сети, справа вверху выбираем Создать узел сети и начинаем заполнять значения во всплывающем окне. Поле узла сети для работы активных проверок оно должно соответствовать Hostname в агенте, иначе активные проверки работать не будут.

Далее выбираем шаблоны, в нашем случае это должны быть Linux by Zabbix agent и Proxmox VE by HTTP.

proxmox-zabbix-monitoring-003.png

Выбираем группу узлов сети. Группы мы можем выбирать как из уже существующих, так и создавать новые, для этого вполне достаточно указать здесь желаемое название. Потом добавляем интерфейс с типом Агент и указываем адрес узла или его доменное имя. После чего переходим в раздел Макросы - Макросы узла сети и унаследованные и заполняем следующие параметры:

  • {$PVE.TOKEN.ID} - идентификатор токена, в нашем случае zabbix@pam!monitoring
  • {$PVE.TOKEN.SECRET} - секретный ключ токена, который вы сохранили на предыдущем шаге
  • {$PVE.URL.HOST} - IP адрес или доменное имя гипервизора

proxmox-zabbix-monitoring-004.pngДобавляем узел и ждем, через некоторое время Zabbix начнет собирать данные, как по самому хосту виртуализации, так и по работающих на нем виртуальных машинах и контейнерах.

proxmox-zabbix-monitoring-005.pngТакже пошли первые срабатывания триггеров, например, Zabbix сразу же уведомил нас о том, что некоторые виртуальные машины и контейнеры на узле не запущены.

proxmox-zabbix-monitoring-006.png

На этом интеграция Proxmox Virtual Environment с Zabbix завершена и вы можете начать контролировать состояние своих гипервизоров и своевременно получать сообщения если что-то пошло не так.

Автоматизация

Для тех, кто не хочет делать все это руками (кроме добавления узлов в Zabbix) мы подготовили специальный скрипт, который выполняет все необходимые настройки на стороне Proxmox Virtual Environment и формирует готовый токен.

PVE-ZBX.sh
SHA1:D88877016661019A936B1D8864D65BCA43DFAB7A

Скрипт поддерживает Proxmox Virtual Environment 6-8.

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Поддержи проект!

Или подпишись на наш Телеграм-канал: Подпишись на наш Telegram-канал



Loading Comments