Содержание
Думаю, все мы ищем классные инструменты, которые могут добавить современные дашборды в Proxmox и помочь мониторить, что происходит с вашим хостом Proxmox, узлами кластера, виртуальными машинами и контейнерами LXC. Есть новый проект с открытым исходным кодом, который может сделать именно это. Он называется Pulse. Pulse — это новый и захватывающий инструмент сообщества, предназначенный для мониторинга Proxmox. Давайте посмотрим, какие функции и возможности предлагает Pulse.
Что такое Pulse?
Итак, Pulse — это платформа мониторинга с открытым исходным кодом, которую можно бесплатно развернуть для мониторинга. Она была создана специально для Proxmox VE Server. В ней встроены хуки, которые напрямую взаимодействуют с API Proxmox и предоставляют чистую панель управления, где вы можете видеть метрики от своих узлов и виртуальных машин. Но на этом всё не заканчивается.

Вы также можете добавить и мониторить Docker-хосты вместе с контейнерами Docker с помощью Pulse. Мне это очень нравится, потому что, на мой взгляд, это именно то, что хотят видеть многие домашние лаборанты и энтузиасты self-hosting. Большинство из них, вероятно, используют Proxmox VE Server и одновременно запускают контейнеры Docker для размещения своих приложений.
Что делает Pulse и его возможности
Идея Pulse довольно проста. Он позволяет брать детализированные данные из внутреннего интерфейса Proxmox и отображать их в едином веб-интерфейсе. Интерфейс очень аккуратный и читаемый. После подключения Pulse к вашему кластеру он начнёт автоматически собирать данные и визуализировать живые метрики на панели мониторинга.
Вы увидите такие вещи, как использование системных ресурсов, состояние виртуальных машин и контейнеров и другие показатели. Ещё одна приятная особенность Pulse — это его лёгкость. Ему не нужна внешняя база данных или дополнительные сервисы. Всё содержится в одном развёртывании. Таким образом, вы можете запустить его на небольшой виртуальной машине или даже в LXC или Docker-контейнере.
Обратите внимание на основные возможности:
- Автоматическое обнаружение – автоматически находит узлы Proxmox с помощью однострочного скрипта установки
- Мониторинг кластера – возможность мониторить кластеры Proxmox
- Корпоративная безопасность – включает надёжную защиту: шифрование учётных данных, CSRF-защиту, ограничение запросов, безопасные сессии и хеширование паролей через bcrypt
- Подробное ведение журнала аудита – отслеживает входы в систему, изменения конфигурации и историю оповещений
- Живой мониторинг – отображает производительность в реальном времени для ВМ, контейнеров, хранилищ и узлов
- Оповещения через современные сервисы – уведомления по электронной почте или через webhooks (Discord, Slack, Telegram, Teams, ntfy.sh, Gotify)
- Адаптивные пороги – возможность задавать динамические уровни тревог с настраиваемыми триггерами и сбросами
- Хронология и аналитика оповещений – история тревог, отображение трендов и статусов подтверждения
- Интеграция с Ceph – отображает состояние Ceph, включая использование пулов и статус демонов
- Видимость резервных копий – отображает информацию о PBS-бэкапах, снимках и резервных копиях Proxmox с аналитикой
- Инсайты по почтовому шлюзу – мониторинг объёма почты, тенденций спама и состояния карантина для PMG
- Опциональный мониторинг Docker – лёгкий агент для сбора метрик контейнеров
- Управление конфигурацией – экспорт и импорт зашифрованных конфигураций с аутентификацией
- Автоматические обновления – безопасные и стабильные обновления с возможностью отката
- Современный интерфейс – светлая и тёмная темы, адаптивный дизайн, написан на Go для минимального использования ресурсов
Установка Pulse в Docker-контейнере
Установка довольно проста. Однако у меня возникла небольшая проблема с частью, связанной с мониторингом Docker, о которой я расскажу ниже. Официальную документацию проекта можно найти здесь: https://github.com/rcourtman/Pulse
Ниже приведён пример Docker Compose-файла, который я использовал в своей домашней лаборатории. Я задал начальные auth_user и auth_pass, как показано ниже. Также я предварительно сгенерировал API-токен для agents/webhooks — это сработало как начальное значение для API-токена.
# docker-compose.yml
services:
pulse:
image: rcourtman/pulse:latest
container_name: pulse
restart: unless-stopped
ports:
- "7655:7655"
environment:
# Администратор при первом запуске (в открытом виде; Pulse сам захэширует через bcrypt)
PULSE_AUTH_USER: admin
PULSE_AUTH_PASS: Letmein1$
# Предварительно сгенерированный API-токен для агентов/webhooks
API_TOKEN: 1bd764fae4c664d7f6158a814f8bf718f9e32e0c88b85fadb3ae2980eeea05f8
# Необязательно: ограничить область сетевого обнаружения (пример)
# DISCOVERY_SUBNET: "192.168.50.0/24"
volumes:
- /home/linuxadmin/homelabservices/pulse/data:/data Теперь просто выполните команду:
docker compose up -d 
После запуска контейнера вы сможете открыть порт 7655 на вашем Docker-хосте, где был развёрнут контейнер.

Таким образом, Pulse успешно запускается и работает в Docker.
Добавление узла Proxmox в Pulse monitoring
Теперь, когда мы запустили Pulse, можно добавить первый узел Proxmox в систему. Перейдите в раздел Settings (Настройки).

В разделе Proxmox VE nodes нажмите кнопку +Add PVE Node, чтобы начать процесс добавления нового узла PVE.

В диалоговом окне Add Proxmox VE node введите Node Name (имя узла) и Host URL (URL хоста). Команда для копирования появится только после нажатия кнопки Copy справа от поля. После этого команда станет видимой.

Теперь я скопировал команду, вошёл в узел PVE, открыл терминал и вставил туда команду. Выполнив её, вы увидите, что скрипт остановится и спросит: Enable hardware temperature monitoring for this node? (Включить мониторинг температуры оборудования для этого узла?) — введите «Yes».

Будут установлены необходимые модули. В конце вы увидите сообщение: Node successfully registered with Pulse monitoring (Узел успешно зарегистрирован в Pulse).

Теперь мы видим добавленный узел в списке PVE nodes.

Сразу после добавления узла в мониторинг начали поступать оповещения. Очень полезная информация, например предупреждения о заполнении дисков, нагрузке на память и т. д.

На странице Overview (Обзор) панели мониторинга Pulse мы видим список узлов и ВМ. Мне очень нравится этот вид. Единственный минус — на ВМ нельзя кликнуть, чтобы «провалиться» внутрь для подробного просмотра. Эти данные отображаются в реальном времени, но без перехода по объектам. Было бы здорово, если бы в будущем добавили возможность перехода к деталям виртуальных машин и узлов.

Также есть вкладка Storage (Хранилище).

И, наконец, вкладка Backups (Резервные копии).

Добавление Docker-хоста в Pulse
Теперь рассмотрим вторую часть — мониторинг контейнеров Docker, запущенных на Docker-хостах. Этот процесс оказался немного сложнее по сравнению с Proxmox. Основная сложность была связана с API-ключом.
В коде Docker Compose, приведённом выше, вы можете увидеть API-токен:
API_TOKEN: 1bd764fae4c664d7f6158a814f8bf718f9e32e0c88b85fadb3ae2980eeea05f8 Этого достаточно, чтобы контейнер Pulse запустился. Однако почему-то этот токен не работал для подключения Docker-хоста через API. После отладки оказалось, что нужно создать файл .env в каталоге data Pulse, который указан в Docker Compose. Я думал, что это необязательно, если использовать Docker Compose для хранения секретов, но оказалось, что даже при полном описании окружения в Compose файл .env всё равно требуется для инициализации системы безопасности контейнера. Без этого файла появляется ошибка.
Я сделал следующее — перешёл в каталог data и создал там файл командами:
# Переходим в каталог данных Pulse
cd /home/linuxadmin/homelabservices/pulse/data
# Исправляем права при необходимости
sudo chown -R linuxadmin:linuxadmin /home/linuxadmin/homelabservices/pulse/data
# Создаём файл .env
sudo tee .env > /dev/null Затем я смог перейти в интерфейсе Pulse в раздел Settings > Security и сгенерировать новый токен (Generate New Token).



Однако при выполнении команды на Docker-хосте возникла ошибка — пакет не был найден.

Обходное решение: ручная загрузка агента и создание службы systemd
Вместо этого я нашёл обходное решение: вручную скачать агент с GitHub и создать для него службу systemd.
Загрузите агент:
# Загрузка агента с GitHub
cd /tmp
wget https://github.com/rcourtman/Pulse/releases/download/v4.22.0-rc.1/pulse-v4.22.0-rc.1-linux-amd64.tar.gz
# Для систем ARM64:
# wget https://github.com/rcourtman/Pulse/releases/download/v4.22.0-rc.1/pulse-v4.22.0-rc.1-linux-arm64.tar.gz
# Распаковываем архив
tar -xzf pulse-v4.22.0-rc.1-linux-amd64.tar.gz
# Устанавливаем бинарный файл агента
sudo cp ./bin/pulse-docker-agent /usr/local/bin/
sudo chmod +x /usr/local/bin/pulse-docker-agent
# Проверяем установку
/usr/local/bin/pulse-docker-agent --help Создайте службу systemd, изменив переменные окружения в соответствии с вашей системой:
sudo tee /etc/systemd/system/pulse-docker-agent.service > /dev/null Запустите и активируйте службу на Docker-хосте:
# Перечитываем systemd
sudo systemctl daemon-reload
# Включаем автозапуск
sudo systemctl enable pulse-docker-agent
# Запускаем службу
sudo systemctl start pulse-docker-agent
# Проверяем статус
sudo systemctl status pulse-docker-agent После загрузки агента из репозитория и запуска службы Pulse отобразил Docker-хост в своей панели мониторинга.

Почему Pulse хорошо подходит для мониторинга Proxmox и Docker в домашней лаборатории
Я считаю, что это отличное решение для мониторинга домашней лаборатории, работающей на Proxmox и Docker. В большинстве случаев в домашних условиях сервисы запускаются в виде виртуальных машин или LXC-контейнеров на Proxmox, либо как контейнеры Docker.
Pulse лёгкий, компактный и эффективный инструмент, не требующий сложной настройки. Не нужно устанавливать дополнительные клиенты или приложения для просмотра данных мониторинга.
Кроме того, можно включить опцию отображения метрик в iFrame для интеграции в дашборды домашней лаборатории — отличная возможность.

Сравнение с другими решениями для мониторинга Proxmox
Proxmox имеет базовые графики и статистику, но они ограничены. Если вам нужно больше, обычно используют связку Prometheus и Grafana — отличные open-source инструменты для мониторинга Proxmox.
Ещё один хороший инструмент — Netdata, который предоставляет метрики и оповещения на уровне системы. Однако он не имеет встроенного понимания структуры Proxmox — узлов и ВМ. Его можно использовать для мониторинга Debian Linux (на базе которого работает Proxmox), а также Docker, который он поддерживает нативно.
Преимущество Pulse в том, что он изначально разработан именно для Proxmox. Он понимает структуру платформы и автоматически отображает узлы, ВМ и контейнеры. К тому же, он гораздо эффективнее других решений — достаточно одного контейнера, чтобы мониторить Proxmox, ВМ, LXC и Docker одновременно.
Заключение
Pulse — отличное новое решение для мониторинга вашей среды Proxmox, созданное специально для этой платформы. Вдобавок он поддерживает мониторинг Docker. В целом, большинство домашних энтузиастов переходят на Proxmox для self-hosting и используют Docker для контейнерных приложений. Это делает Pulse решением, которое обеспечивает почти идеальный баланс функциональности, необходимой для домашней лаборатории.
Напишите в комментариях, пробовали ли вы Pulse для Proxmox. Какие у вас впечатления? Что вы используете сейчас?

