На одном сервере Proxmox могут работать сайт, файловое хранилище и несколько приложений. Если заканчивается место в хранилище или останавливается виртуальная машина, последствия затрагивают сразу несколько задач.
Zabbix помогает собрать состояние этой инфраструктуры в одном месте: видеть нагрузку, следить за доступными ресурсами и получать уведомления о проблемах.
В этой статье покажу, как подключить Proxmox VE 8 к Zabbix 7.0 LTS через официальный шаблон Proxmox VE by HTTP.
Что будем контролировать
Шаблон получает данные через API Proxmox и автоматически обнаруживает узлы, виртуальные машины, LXC-контейнеры и хранилища.
В зависимости от объекта доступны состояние, загрузка процессора, использование памяти, сетевой трафик и показатели дисковой активности. Для хранилищ можно контролировать заполнение, а для кластера — наличие кворума. Состав проверок описан в официальном шаблоне для Zabbix 7.0.
Для этого способа устанавливать Zabbix Agent на гипервизор не требуется. Агент можно подключить отдельно, если нужны дополнительные проверки Linux: журналы, службы или собственные скрипты.
Что понадобится
Перед настройкой подготовьте:
- Работающий Zabbix 7.0 LTS.
- Доступ администратора к Proxmox для создания пользователя и токена.
- Сетевой доступ от Zabbix server или выполняющего проверки proxy к API Proxmox по TCP-порту
8006. - DNS-имя или IP-адрес гипервизора.
В примере используем имя pve01.example.net. Его нужно заменить адресом своего сервера.
Сначала найдите шаблон Proxmox VE by HTTP в разделе Сбор данных → Шаблоны. Если его нет, импортируйте вариант из ветки release/7.0 официального репозитория Zabbix.
1. Создаём пользователя для мониторинга
Для сбора данных заведём отдельную учётную запись с правами чтения. Команды выполняются в оболочке Proxmox от имени администратора.
Создадим роль:
pveum role add ZabbixMonitoring -privs "Sys.Audit Datastore.Audit VM.Audit"
Эти привилегии указаны в требованиях официального шаблона.
Добавим пользователя:
pveum user add zabbix@pve
Назначим ему роль на корневом пути с наследованием:
pveum acl modify / -user zabbix@pve -role ZabbixMonitoring -propagate 1
В таком примере мониторинг получает доступ на чтение ко всем соответствующим объектам. Если требуется наблюдать только часть инфраструктуры, область разрешений нужно ограничить.
2. Выпускаем API-токен
Создадим токен с именем monitoring, сохранив разделение привилегий:
pveum user token add zabbix@pve monitoring -privsep 1
Proxmox покажет секрет токена. Сохраните его в защищённом месте: повторно получить это значение нельзя.
При включённом разделении привилегий токену нужно назначить собственные разрешения:
pveum acl modify / -token 'zabbix@pve!monitoring' -role ZabbixMonitoring -propagate 1
Проверим права пользователя и токена:
pveum user permissions zabbix@pve
pveum user token permissions zabbix@pve monitoring
Итоговые права токена ограничены одновременно разрешениями пользователя и самого токена. Поэтому недостаточно настроить только одну из этих сторон. Эта схема описана в документации Proxmox по управлению доступом.
3. Добавляем Proxmox в Zabbix
Откройте Сбор данных → Узлы сети → Создать узел сети.
Укажите имя, например pve01, выберите группу и подключите шаблон Proxmox VE by HTTP.
Для этого шаблона интерфейс агента добавлять не нужно: адрес API задаётся через макросы.
На вкладке Макросы заполните:
| Макрос | Значение в примере |
|---|---|
{$PVE.URL.HOST} |
pve01.example.net |
{$PVE.URL.PORT} |
8006 |
{$PVE.TOKEN.ID} |
zabbix@pve!monitoring |
{$PVE.TOKEN.SECRET} |
Секрет, полученный при создании токена |
В {$PVE.URL.HOST} указывается только имя или IP — без https:// и пути /api2/json.
Для секрета выберите тип макроса Секретный текст. Адрес и формат токена можно сверить с настройками шаблона ветки 7.0.
Сохраните узел сети и дождитесь первых опросов.
4. Проверяем поступление данных
Откройте Мониторинг → Последние данные и выберите созданный узел.
Проверьте, что появились свежие значения и обнаруженные объекты соответствуют вашей инфраструктуре. Сопоставьте несколько показателей с интерфейсом Proxmox: состояние одной виртуальной машины, объём памяти узла и заполнение хранилища.
Если данных нет, проверяйте последовательно:
- Доступен ли API с сервера или proxy, который выполняет опрос.
- Правильно ли указаны адрес, порт и полный идентификатор токена.
- Совпадает ли секрет с выданным значением.
- Назначены ли разрешения пользователю и токену.
- Какие ошибки показывают элементы данных Zabbix.
Для HTTPS используйте сертификат с подходящим именем и настройте доверие к выдавшему его центру сертификации. В HTTP-проверках проверьте параметры SSL verify peer и SSL verify host; настройки скриптовых проверок зависят от ревизии шаблона. Описание проверки сертификатов в Zabbix 7.0.
5. Настраиваем полезные уведомления
После подключения посмотрите, какие события создаёт шаблон. Например, штатно выключенная тестовая машина может попасть под условие «виртуальная машина не запущена».
Заранее определите:
- Какие машины должны работать постоянно.
- Для каких хранилищ заполнение действительно критично.
- Как долго допустима повышенная нагрузка.
- Кому отправлять сообщения о проблеме и восстановлении.
Затем настройте пороги и исключения под эти условия. Проверку доставки удобно провести на отдельной тестовой машине: остановить её, дождаться события, запустить и убедиться, что восстановление тоже зафиксировано.
Что стоит добавить дальше
Состояние running показывает, что виртуальная машина запущена. Чтобы понять, работает ли размещённый внутри сайт или база данных, нужны проверки самого сервиса.
Следующим шагом можно подключить мониторинг гостевой ОС, доступности приложения и результатов резервного копирования. Тогда будет видно не только состояние виртуальной инфраструктуры, но и выполнение задач, ради которых она работает.
Нужна помощь с настройкой?
Настройка Zabbix — состав работ и подход к задаче.