Какую панель мониторинга поставить на маленький VPS
Если на 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 обычно дают ровно это. Дешево по ресурсам, быстро в установке, понятно в поддержке. А все более серьезное стоит добавлять только тогда, когда появилась реальная операционная боль, а не желание построить центр управления полетами вокруг одного сервера.