Pulse - Proxmox Monitoring

На просторах интернета нашел интересный дашборд
для Proxmox VE и Backup

Мне очень зашел на сейчас пока я не дошел до прикручивания графаны, но пока очень информативно и красиво выглядит для тех, кто хочет понимать что происходит с сервисами.

Но самый кайф тут будет от мониторинга если вы используете Proxmox для построения сервисов, не K8S или всякие runtpi а именно ProxmoxVE (больше скринов тут)

Что умеет:

  1. Работать как с хостами, так и с кластером (мой случай):
  2. Показывать ресурсы нод
  3. Выводить список виртуалок и контейнеров с отображением ресурсов как в виде прогрессбара, так и графиками
  4. Выводить состояние стораджей
  5. Показывать снепшоты
  6. Информацию по бекапам в PBS
  7. Информацию по стораджам
  8. Делать какие-то нотификации, пока не понял какие и как настраивать

Что не умеет:

  1. Вносить изменения в PVE - тут чисто мониторинг в режиме только для чтения
  2. Аутентификацию, я прикрутил traefik proxy и ок, тем более, что ролевки все равно нет
  3. Стабильно работать, мне показалось, что как-то не быстро загружается и не всегда, например, те же снепщоты просто висит Loading…

Лично я для себя для дома пока остановился на следующем варианте

  • Proxmox VE Cluster из нескольких машин
  • VM для PBS и TrueNAS
  • LXC для сервисов, причем, LXC + Alpine Linux + Docker + Docker compose дает минимальный оверхед меньше 1% CPU, 90MB RAM, 100MB HDD
  • LXC без докера если это не надо, например Qbittorrent замечательно работает в LXC контейнере с Alpine Linux, при этом там самая актуальная версия из всех дистрибутивов, а сам контейнер весит очень мало
  • LXC контейнеры бекапятся в PBS
  • в docker-compose.yml есть еще proxmox-backup-client, который аккуратно бэкапит файлы в PBS
  • Ansible для деплоя и провижининга LXC контейнеров
  • (В процессе) Komodo для управления стеками внутри LXC контейнеров, compose файлы лежат в Forgejo и CI/CD шатся в LXC контейнеры
  • (не до конца) На каждой ноде PVE есть LXC контейнер c Traefik + Consul + VRRP. Локальный DNS направляет трафик на Traefik на одной с сервисом ноде, конфигурация traefik находится в гите и деплоится в кластер
  • crowdsec + grafana + Loki для сбора метрик и fail2ban
8 лайков

Если интересно, то могу завести отдельный топик на это. Пока выглядит так, что на 2 головы выше, чем portainer и dockge и arcane

2 лайка

Конечно интересно!
Видел, слышал, но сам не пробовал.
Очень круто, что поделились.

Сделай пожалуйста краткую инструкцию в картинках, а то я уже с эти токенами все варианты перепробовал. Часа три мучаюсь, никак не хочет цепляться к PVE.

У меня тоже не с первой попытки запустилось и вообще очень странно работает, периодически отваливаются ноды, но я грешил на то, что у меня медяха на одном порту не очень хорошо контачит и периодически отваливается, все никак не дойду до починки

  1. Заводим пользователя в Datacenter

  2. Создаем токен pulse, обязательно включить “Privilege Separation”

  3. Создаем права для пользователя (PVEAuditor)

  4. Создаем права для токена (PVEAuditor)

  5. В настройках Pulse добавляем токен (я прописывал только 1 ноду)

Опционально добавляем PBS
6. Создаем пользователя и токен аналогично PVE, но добавляем права DatastoreAudit

  1. И прописываем токен в Pulse

По проблемам

Можно еще попробовать не через UI настроить, а прописать переменные окружения, так будет лучше даже (как будет время так и сделаю, просто через веб интерфейс быстрее проверять и есть кнопка Test)
У меня сейчас вот такой баг


На одной из нод показывает, что присутствуют только виртуалки без контейнеров

  1. Можно попробовать перезапустить контейнер
  2. Можно подождать пока соберет статику всю, обычно хватает минуты
  3. Я сначала прописал адрес за reverse proxy, потом прямой с самоподписанным сертификатом, второй вариант заработал

Именно так делал. Проблема оказалось в том, что в докере сделал проброс на другой порт, видимо 7655 жестко зашит в контейнере.

Сегодня вышла новая версия pulse, переписана с нуля на go
Работает быстрее. но очень много багов пока еще, для продакшина не годится

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

Общими усилиями вроде довели до более или менее рабочего состояния, но все еще в активной работе

Дошли вчера руки пощупать, поставил на “дорожный мини-пк”
Очень симпотично, не хватает мелочей из Beszel в виде температуры, включена ли нотификация(значок на основном дашборде).

Но в остальном - установка в 1 клик, крутой лаконичный дизайн, нотификации, что еще нужно..
Крутой проект.

Мы в процессе обсуждения данного функционала с автором. Проблема в том, что штатное API proxmox не предоставляет информации по сенсорам. Варианта 2 и оба не очень.

  1. Патчить PVE по аналогии с одним из модов для добавления в API информации из lm-sensors
  2. Добавить SSH доступ к нодам, pulse будет ходить по SSH и забирать оттуда информацию
  3. Попытаться протянуть это через PR в основную ветку
1 лайк

А “внутрь” докер контейнеров он не умеет заглядывать? чтобы видеть, кто из квартирантов vm\lxc ресурсы съел?
Я или плохо искал или пока не по зубам задачка ему.

Вопрос не в беззубости а в стандартизации. Сейчас все данные берутся из по API самого proxmox, для того, чтобы внутрь ходить в контейнеры надо прописывать креды доступа в эти контейнеры, и интерфейс сбора данных тоже должен быть общий, в теории, можно через /proc
Либо в каждый контейнер ставить агента, который будет по своему апи отдавать метрики

Если провнутрь, не lxc контейнеров, в docker? То типа docker top?

Нормально так с докером работает только komodo, ни dockge, ни portainer, ни arcane не работают нормальном агентами, ну и надо ставит агенты, а 32 агента ещё я чёт не хочу ставить

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

У меня для docker есть Комодо, там и мониторинг есть

Как оказалось, все очень просто.
По крайней мере для телеги - два клика и будет прилетать вот такого вида:

Как настроить?

  1. Документация автора тут
  2. В целом, если знать куда идти, документация будет не нужна.
  3. Alerts->Notifications->Webhooks
    найти нужную кнопочку справа Generic ->
    image

То “брюки превращаются.. превращаются брюки..”(c)

В абсолютно понятную историю..


Где мы вибарем Телеграм
и заполняем webhook_url
https://api.telegram.org/bot<BOT_TOKEN>/sendMessage?chat_id=<CHAT_ID>
<BOT_TOKEN> - Ваш токен бота
<CHAT_ID> - Ваш чат, куда бот должен слать(бот должен быть в чате)
<> - удаляем, они не нужны, не пытайтесь вставить между них Ваши креды.

1 лайк

Круто, что автор реализовал это тоже.

Просто напомню, что с момента моего первого сообщения автор как минимум 1 раз полностью переписал приложение со сменой ЯП и судя по истории изменений справки где-то с месяц назад взялся за переписывание уведомлений.

2 лайка

Кстати, по поводу видео.
В одном месте можно посмотреть статистику по всем контейнерам/виртуалкам.
Надо в годе открыть вкладку search и там можно даже отсортировать по CPU/памяти и т.д.

При том, что я рекламировал pulse на этом ресурсе, я сам редко про него вспоминаю и чаще смотрю в самом PVE

Pulse же собирает информацию по всем годам и выводит ее в визуально более качественном виде, не надо ходить по куче мест

  • Графики раньше строились, но в новых версиях он удалил этот функционал
  • Начальный визард настройки и конфигурирования нод очень крутой стал, я изначально без него настраивал все + раз 10 добавлял ноды в pulse т.к. были проблемы с персистентностью данных, с копированием данных между формами, с редактированием данных, с форматом хранения настроек, с документацией.
  • Ну и в целом, надо понимать, что сервис переписан был разработчиком и текущее его состояние сильно отличается от того, что было в июле
1 лайк

Интереса ради поставил Pulse на кластер + PBS. Вроде выглядит
информативно. Но для уведомлений и алёртов у меня Zabbix с сообщениями в “телегу”
Сейчас пытаюсь понять, можно ли внутрь Пульса ssl-серы прилепить. Не хочется шифровать через реверс-прокси. Никто не видел настроек ssl?

Можно настроить как при установки в контейнере, так и у службы. Пример с документации:

Спойлер

Systemd: sudo systemctl edit pulse-backend

Environment=“HTTPS_ENABLED=true”
Environment=“TLS_CERT_FILE=/etc/pulse/cert.pem”
Environment=“TLS_KEY_FILE=/etc/pulse/key.pem”

Docker

docker run -d -p 7655:7655
-e HTTPS_ENABLED=true
-e TLS_CERT_FILE=/data/cert.pem
-e TLS_KEY_FILE=/data/key.pem
-v pulse_data:/data
-v /path/to/certs:/data/certs:ro
rcourtman/pulse:latest

В целом, упоминается в двух местах:
Место раз
Место два
И там, и там можно найти по “TLS”

1 лайк

А вот ещё небольшой вопрос.
Кто-то встраивал Pulse как iframe?

Думал встроить Pulse в Home Assistant через ingress. План был такой: отключить аутентификацию пульса, не давать ему проброс порта для веб-интерфейса и добавить через ingress в Home Assistant, который в той же сети в докере.
Сначала упёрся в запрет встраивания по умолчанию (отключается в веб-интерфейсе пульса), потом ловил 404 ошибку, так как запросы уходили не на /api/ingress/pulse, а в /

В общем, убил кучу времени, но результата положительного не добился. Лучшее, что вышло - запросы ресурсов Pulse завершаются без ошибок, но запрос /pulse в статусе Canceled и белый экран в браузере…

Мб кто-то настроил у себя такой проброс? Не хочется через nginx делать доступным интерфейс пульса.

Заранее спасибо за ответ!

Да, Ром.

Но к сожалению попытка этим “байтом” призвать в комментарии знатоков.. чет не вышла..
Не пришли знатоки) тапками видимо уже накидались..

Ну а для тех, кто может действительно не знает.
Само собой есть и в целом даже рабочая, но не такая красивая и без алертинга.