Pulse — бесплатный инструмент мониторинга для Proxmox и Docker

от virtualizationhowto
0 Комментарии 232 просмотров 8 мин на чтение

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

Что такое Pulse?

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

Pulse proxmox monitoring dashboard
Панель мониторинга Pulse для 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
Запуск Docker-контейнера Pulse для мониторинга

После запуска контейнера вы сможете открыть порт 7655 на вашем Docker-хосте, где был развёрнут контейнер.

Окно входа в Pulse

Таким образом, Pulse успешно запускается и работает в Docker.

Добавление узла Proxmox в Pulse monitoring

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

В Pulse пока не добавлены узлы Proxmox

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

Добавление узла PVE

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

Копирование сгенерированной команды после ввода имени и URL

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

Выполнение скрипта на узле PVE с включением мониторинга оборудования и температуры

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

Мониторинг успешно установлен в Proxmox

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

Узел Proxmox успешно добавлен в окружение

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

Просмотр оповещений для узла Proxmox

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

Просмотр панели мониторинга Proxmox в Pulse

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

Просмотр хранилища узла PVE в Pulse

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

Просмотр резервных копий конкретного узла PVE

Добавление 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-хоста
Новый API-токен сгенерирован
Команда для добавления Docker-хоста доступна на экране Pulse

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

Ошибка при попытке установить агент мониторинга 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 может мониторить также контейнеры Docker

Почему Pulse хорошо подходит для мониторинга Proxmox и Docker в домашней лаборатории

Я считаю, что это отличное решение для мониторинга домашней лаборатории, работающей на Proxmox и Docker. В большинстве случаев в домашних условиях сервисы запускаются в виде виртуальных машин или LXC-контейнеров на Proxmox, либо как контейнеры Docker.

Pulse лёгкий, компактный и эффективный инструмент, не требующий сложной настройки. Не нужно устанавливать дополнительные клиенты или приложения для просмотра данных мониторинга.

Кроме того, можно включить опцию отображения метрик в iFrame для интеграции в дашборды домашней лаборатории — отличная возможность.

Опция встраивания iFrame из Pulse

Сравнение с другими решениями для мониторинга 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. Какие у вас впечатления? Что вы используете сейчас?

Источник на английском языке

Даже просто подбор, перевод и оформление статей требуют времени. А самостоятельный обзор устройств требует еще и финансовых вложений. Если Вы хотите больше обзоров, Вы можете помочь автору.

Вам может понравиться

Оставить комментарий