Какую панель мониторинга поставить на маленький VPS

Какую панель мониторинга поставить на маленький VPS

Иван Проскуряков
Автор статьи

Иван Проскуряков

Разработкаworkflow

Если на VPS крутится сайт, API, база и пара служебных контейнеров, сразу тащить Prometheus, Grafana и Alertmanager обычно рано. Это хороший стек, но для одного небольшого сервера он часто превращается в отдельный проект по обслуживанию проекта.

Мне в такой ситуации нужна не большая observability-платформа, а простая панель: посмотреть CPU, память, диск, сеть, контейнеры и понять, жив ли сервис снаружи. Желательно без магии, недельной настройки и ощущения, что я случайно устроился SRE в свою же маленькую админку.

Что я хочу видеть на маленьком сервере

Минимальный набор довольно скучный:

  • сколько CPU и RAM ест сервер
  • не заканчивается ли диск
  • какие контейнеры запущены
  • не упал ли важный контейнер
  • отвечает ли сайт или API по HTTP
  • пришло ли уведомление, если все сломалось

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

Beszel для ресурсов и контейнеров

Сейчас первым я бы смотрел на Beszel. Это легкая панель мониторинга с Docker/Podman-статистикой, историей метрик и алертами.

Что в нем хорошо для маленького VPS:

  • показывает CPU, RAM, диск и сеть
  • видит контейнеры
  • хранит историю, а не только текущий снимок
  • умеет алерты по ресурсам и статусам
  • не выглядит как комбайн для дата-центра

Репозиторий: github.com/henrygd/beszel

Для одного-двух серверов это почти идеальный формат: открыл, быстро понял состояние, закрыл. Без культа графиков ради графиков.

Uptime Kuma для проверки снаружи

Ресурсы сервера — это только половина картины. Контейнер может быть запущен, CPU может быть спокойным, а сайт при этом не отвечать нормально.

Для таких проверок я бы ставил Uptime Kuma. Он хорошо закрывает вопрос «жив ли сервис»:

  • HTTP и HTTPS проверки
  • TCP и ping
  • проверки Docker-контейнеров
  • уведомления в Telegram, Discord, email и другие каналы
  • публичные статус-страницы, если они нужны

Uptime Kuma полезен именно как внешний здравый смысл. Он не спрашивает, красиво ли у вас разложены контейнеры. Он проверяет, отвечает ли то, что должно отвечать.

Portainer, если нужно управлять контейнерами

Portainer — это уже не микро-панель мониторинга, а нормальная админка для контейнеров. Через него удобно смотреть контейнеры, логи, compose-стэки, перезапускать сервисы и управлять окружениями.

Но для одного VPS я бы не ставил его автоматически. Если вы и так спокойно работаете через docker compose, Portainer может оказаться лишним слоем. Не опасным, но еще одной штукой, которую надо обновлять, закрывать доступом и помнить, зачем она вообще стоит.

Я бы ставил Portainer, когда есть реальная потребность:

  • несколько людей трогают контейнеры
  • нужен UI для логов и перезапусков
  • есть несколько окружений
  • хочется управлять compose-стэками из браузера

Если задача только «посмотреть, жив ли сервер», это уже перебор.

DockMon, если нужна реакция на проблемы

DockMon выглядит интереснее, когда хочется не только наблюдать, но и действовать: health checks, авто-рестарт контейнеров, логи, события, уведомления в Telegram, Discord, Slack, Gotify, SMTP и другие каналы.

Это полезно, если у вас несколько контейнеров, которые можно безопасно перезапускать при понятном сбое. Но тут важно не включать режим «лечить все перезапуском». Авто-рестарт без нормальных лимитов легко превращает одну проблему в шумный цикл.

Я бы рассматривал DockMon, если:

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

Для совсем простого VPS я бы начал без него.

Мой минимальный стек

Если бы я сегодня поднимал маленький прод на одном VPS, начал бы с двух контейнеров:

  • Beszel — ресурсы сервера и контейнеров.
  • Uptime Kuma — реальные проверки сайта, API и важных портов.

Эта связка закрывает большую часть бытовых проблем: видно, когда сервер задыхается, и понятно, когда сервис перестал отвечать. При этом не нужно поднимать отдельный мир из метрик, экспортеров, дашбордов и алерт-правил.

Portainer добавил бы только при необходимости управлять контейнерами из UI. DockMon — если нужна реакция на сбои и авто-рестарты с нормальными ограничениями.

Важный момент про безопасность

Почти все такие панели хотят доступ к Docker. Часто это означает проброс /var/run/docker.sock. Это удобно, но не безобидно: доступ к Docker socket почти равен доступу к серверу.

Поэтому базовые правила такие:

  • не выставлять панели наружу без авторизации и TLS
  • закрывать доступ через VPN, firewall или reverse proxy с нормальной защитой
  • использовать сильные пароли и 2FA, если инструмент это поддерживает
  • не давать UI больше прав, чем реально нужно
  • обновлять панели, а не ставить и забывать на два года

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

Вывод

Для маленького VPS я бы не начинал с тяжелого мониторинга. Сначала нужно закрыть простые вопросы: хватает ли ресурсов, живы ли контейнеры, отвечает ли сайт, придет ли уведомление.

Beszel плюс Uptime Kuma обычно дают ровно это. Дешево по ресурсам, быстро в установке, понятно в поддержке. А все более серьезное стоит добавлять только тогда, когда появилась реальная операционная боль, а не желание построить центр управления полетами вокруг одного сервера.

Похожие статьи

Вам будет интересно