Если в вашей инфраструктуре много объектов различной степени важности, то без хотя бы системы мониторинга в минимальной конфигурации будет очень сложно следить за состоянием здоровья ваших сервисов и оборудования. В этой публикации я покажу, как можно настроить мониторинг Proxmox через Zabbix.
Для настройки мониторинга я буду использовать вот это решение с официального сайта Zabbix. Тем более, что в Zabbix, по крайней мере версии 6.2, этот шаблон уже доступен “из коробки”.
О том, как выполнить установку Proxmox или установку Zabbix я уже писал.
Предварительные требования
Шаблон очень просто в настройке. Однако, нам потребуется создать токен доступа для системной учетной записи, который мы выдадим только необходимые разрешения.
Приступим:
1. Сначала создадим пользователя в Proxmox:
pveum user add zabbix@pam
2. Затем создадим роль с теми разрешениями, что указаны в документации:
pveum role add ZabbixMonitoring --privs "Sys.Audit VM.Audit Datastore.Audit"
3. Назначаем роль на пользователя:
pveum acl modify / -user zabbix@pam -role ZabbixMonitoring
4. И самым последним шагом нужно сгенерировать токен доступа:
Скопируйте значения из окна “Toker Secret”, т.к. после закрытия этого окна узнать секрет уже не получится. Только генерировать новый.
Настройка шаблона
Приступим:
1. Теперь переключимся на сервер Zabbix и добавим сервер Proxmox в хосты (если он еще не добавлен).
Имя хоста и группа хоста вы можете указать любые – на ваше усмотрение. В секции с типом интерфейса выбираем тип “Agent” и подключает хост с Proxmox либо по IP, либо по DNS имени. Но вот что важно – так это в поле Template указать шаблон “Proxmox VE by HTTP”.
2. Второй важный момент – необходимо указать токен доступа и секрет на вкладке “Macros”:
Указываем Token ID и Secret в макросах {$PVE.TOKEN.ID} и {$PVE.TOKEN.SECRET}.
3. Сохраняем внесенные изменения.
4. Перейдем к просмотру последних данных:
В том случае, если мы не допустили никаких ошибок при конфигурации, то мы с вами должны увидеть некий набор данных – все зависит от конфигурации и рабочей нагрузки на ваш сервер Proxmox.
Примеры собранных данных
Если какие-то из контейнеров или виртуальных машин не запущены, то Zabbix предупредит об этом (можно отключить для каких-то ВМ или контейнеров).
Примеры графиков:
Настройка мониторинга Proxmox через Zabbix завершена.
Мониторинг Proxmox через Zabbix: 45 комментариев
Все круто, спасибо за описание, но Вы не написали куда ставить Zabbix в итоге, на саму систему, где Proxmox, на виртуальную систему в Proxmox или на отдельную вовсе.
Добрый день! Сервер Zabbix предварительно устанавливается либо на ВМ на самом Proxmox, либо на любой другой платформе виртуализации или физическом хосте.
а где и какой дистрибутив на ВМ взять для Proxmox?
Добрый день! Можете взять любой Linux дистрибутив. Например, Ubuntu Server – https://ubuntu.com/download/server. Сверху уже развернуть Zabbix сервер – https://itproblog.ru/%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%ba%d0%b0-zabbix/
Учтите – есть опечатки – если не исправить работать не будет.
Добрый день! Благодарю за обратную связь и внимательное чтение! Я всегда стараюсь предварительно вычитывать материал, но, к сожалению, иногда “глаз замыливается”. Я перепроверил текст. Да, действительно, роль я изначально хотел обозвать как “ZabbixMonitoring”, но опечатался и назвал “ZabbiMonitoring”. Но если выполнять все команды, как они приведены в публикации, то мониторинг работает – проверил на стенде. Название роли скорректировал.
Добрый день, а нет случаем отдельно шаблона Proxmox VE by HTTP для zabbix версии 5.0
Добрый день! Вот этот шаблон посмотрите – https://github.com/zabbix/community-templates/tree/main/Virtualization/Proxmox/template_proxmox_5.x_services_monitoring/5.0
Вроде бы оно.
Все сделал, но zbx не активно. В “последние данные” нет информации о узлах гипервизора, что может быть не так? Агента же на Proxmox ставить не надо?
Добрый день! Агента ставить не нужно. Скорее всего либо какой-то шаг пропущен, либо где-то опечатка. Попробуйте перепровить конфигурацию со стороны Zabbix и Proxmox. Еще вариант – трафик может фильтроваться каким-то промежуточным сетевым оборудованием.
Буквально пару дней назад по этой же инструкции настраивал мониторинг – все получилось.
с обычнми виртуалками проходит, именно с proxmox нет
Для проксмокса “zbx” не будет подсвечиваться. Но данные должны быть в разделе последних данных.
Роль PVEAuditor для zabbix не нужна?
Если честно, то я не помню какие разрешения назначены этой роли. Я создавал отдельную роль, как указано в статье.
почему в поле token.secret после самого секрета еще следом прописан id token
Вот здесь соглашусь, в поле token.secret нужен только секрет без id токена. Кривой скрин – прошу прощения 🙁
А из какой группы шаблонов брали Proxmox VE by HTTP?
Templates/Applications
А вообще у проксмокс у вас зеленым горит zbx?
нет
Поправил скрин
Как мониторить проксмокс шаблоном Smart by Zabbix agent, как получить доступ, если токен нельзя указать в данном шаблоне
Добрый день! В документации (https://www.zabbix.com/ru/integrations/smart) указано, что нужно установить дополнительный пакет и скорректировать разрешения в sudoers:
sudo dnf install smartmontools
sudo visudo
“zabbix ALL=(ALL) NOPASSWD:/usr/sbin/smartctl”
Предварительно нужно будет установить Zabbix агент на сервер Proxmox
smartctl установлен. Не пойму эти строки :
sudo visudo
“zabbix ALL=(ALL) NOPASSWD:/usr/sbin/smartctl”
что это, поподробнее. в какой файл это записывается
1. Запускаете в консоле коману:
sudo visudo
2. Добавляете в файл строчку (только проверьте имя пользователя от которого запускается агент Zabbix и расположение бинарника для smartctl):
zabbix ALL=(ALL) NOPASSWD:/usr/sbin/smartctl
3. Сохраняете текстовый файл и выходите из него.
visudo – это утилита для редактирования файла /etc/sudoers. В этом файле указывается кому из пользователей или групп разрешено запускать определенные команды через sudo.
Есть еще один обязательный макрос который вы не указали: {$PVE.URL.HOST} – ip proxmox.
Без него у меня не завелось.
Добрый день! Возможно, но зависит от ситауации. У меня подключенго несколько Proxmox серверов в Zabbix. Макрос {$PVE.URL.HOST} я не указывал при их подключении.
Плюсую
Добрый. А если у меня несколько Proxmox серверов? Как быть Token ID и Secret
Добрый день! Тогда вам нужно создавать в Zabbix два объекта с серверами Proxmox + на каждом сервере Proxmox генерировать Token ID и Secret. Потом вы просто для каждого объекта в Zabbix прописываете свой Token ID и Secret.
Что делать при ошибке API service not available?
Пробовал менять токен несколько раз
Добрый день! Я бы начал с того, что убедился, что API Proxmox доступен с сервера Zabbix – по имени или по IP-адресу, в зависимости от того, как вы подключаетесь.
Спасибо за инструкцию!!!
Сразу не заработало, добавил как в официальной инструкции еще макросы {$PVE.URL.PORT} и {$PVE.URL.HOST} , еще раз перезапустил агента и всё заработало.
Добрый день! Я еще раз перепроверил свою конифгурацию – на обоих Proxmox серверах я не указывал макросы {$PVE.URL.PORT} и {$PVE.URL.HOST}. Я просто на вкладке “Hosts” указал IP-адрес сервера. Возможно, если вы хотели указать имя сервера для подключения, то на вкладке “Host” нужно заполнить поле “DNS name”. Но это только мое предположение.
Каким образом заббих должен подкл к 10050 порту? Если он коннектится по http и агент не нужен? Из комменто понятно что ошибок ппц, автор просто на отвались написал
На вкладке “Hosts” нужно указать или IP-адрес для подключения (Interfaces – IP address) или указать имя для подключениия (Interfaces – DNS name), а затем выбрать соответствующий переключатель.
у меня не подключается в этой инструкции, пишет ошибку API service not available
как исправить
Добрый день! Коллеги в комментариях писали, что кому-то помогает определние макроса {$PVE.URL.HOST}. Попробуйте, воможно, что это вам поможет.
Нежно использовать макросы {$PVE.URL.PORT} и {$PVE.URL.HOST}. В настройке шаблона пункт 1 не нужно использовать zabbix agent. Zabbix 7.0.7, работает.
Приветствую
Статья прекрасно подходит для мониторинга одиночного сервера Proxmox
НО как быть с кластером? При добавлении всех узлов кластера в мониторинг приходят данные о событии на любой ноде от всех серверов кластера
В результате появляется куча событий. Например у меня 6 ног и в случае любого события отображается 6 алармов
Добрый день! С кластером я не тестировал мониторинг, но судя по документации, такой сценарий поддерживается – https://www.zabbix.com/ru/integrations/proxmox. Например, есть Cluster discovery.
Попробуйте добавлять не все 6 узлов, а в {$PVE.URL.HOST} указать один из серверов, т.к., насколь я вчитался, то с любого сервера по API можно забрать информацию по статуса и состоянию всего кластера. Либо попробовать зарегистрировать общее DNS имя для 6-ти IP-адресов узлов. Но такой сценарий тестировать нужно – возможно с Proxmox не зараотает.
Cluster discovery действительно есть и казалось бы при такой настройке все работает как надо, за исключением того что при падении этой ноды отгадывает весь мониторинг кластера
Я не тестировал, но добавьте в Zabbix один объект хоста и в разделе интерфейсов указать все шесть IP-адресов узлов. Возможно он будет опрашивать любой доступный IP-адрес, но считать все шесть узлов одним объектом мониторинга.
Proxmox: API service not available как можно решить эту проблему ?
Добрый день! Если вы обращаетесь к Proxmox по DNS-имени, то убедитесь, что это имя разрешается в нужный IP-адрес с Zabbix сервера. Также нужно убедиться, что с сервера Zabbix доступен порт 8006/TCP на сервере Proxmox.