Мониторинг контейнеров homelab на рабочем столе

В недавней статье XDA рассказывалась знакомая история: мертвый контейнер находился в homelab 64 дня, а популярные мониторы его не заметили. Суть в том, что большинство мониторинга homelab — это театр HTTP-проверок. Проверяется балансировщик нагрузки, возвращается 200, и весь стек считается здоровым, в то время как фоновый рабочий процесс упал месяц назад. Этот обзор охватывает лучшие приложения для мониторинга здоровья контейнеров homelab на Windows, macOS и Linux, с акцентом на инструменты, которые смотрят на сам контейнер, а не только на порт перед ним.

Быстрое сравнение

Приложение Лучше всего для Платформы Бесплатный план Начальная цена Особенность
Uptime Kuma HTTP и Docker проверки с маршрутизацией оповещений Windows, macOS, Linux Да, self-host бесплатно Бесплатно Docker health probe, десятки notifiers
Beszel Легкая agent-based dashboard для homelab Windows, macOS, Linux Да, self-host бесплатно Бесплатно CPU и память контейнера с течением времени, крошечный footprint
Dozzle Live tail логов контейнеров на разных хостах Windows, macOS, Linux Да, self-host бесплатно Бесплатно Логи в реальном времени с фильтром и swarm view
Netdata Высокочастотные метрики с обнаружением аномалий Windows, macOS, Linux Да, community edition Cloud план менее $10/мес Гранулярность в секунду, ML-based alerts
Glances Terminal-first browser метрик с web UI Windows, macOS, Linux Да, open source Бесплатно Один экран для CPU, RAM, диска, контейнеров
Prometheus + Grafana Реальный pipeline метрик с dashboards Windows, macOS, Linux Да, оба open source Бесплатно Alertmanager правила на любых метриках
Zabbix Полная платформа мониторинга с агентами Windows, macOS, Linux Да, open source Бесплатно Templates, escalations, distributed proxies
Autoheal Автоматический перезапуск нездоровых контейнеров Windows, macOS, Linux Да, open source Бесплатно Наблюдает за HEALTHCHECK и перезагружает при падении

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

Случай XDA показателен. Контейнер работал, порт был открыт, а процесс внутри зависал. Монитор смотрел на порт, поэтому ничего не сработало. Чтобы избежать этого:

1. Uptime Kuma, лучший для HTTP и Docker проверок с маршрутизацией оповещений

Uptime Kuma — это стандартный self-hosted монитор работоспособности по хорошей причине. Он работает как один контейнер, проверяет HTTP endpoints и напрямую общается с Docker для статуса контейнера, поэтому остановленный контейнер вызывает оповещение без необходимости проверки портов.

Где он отстает: мониторы конфигурируются один за другим в UI, что нормально для маленького homelab, но болезненно для нескольких десятков сервисов. Исторические данные ограничены SQLite хранилищем.

Цены:

Платформы: Windows, macOS, Linux через Docker.

Скачать: Site GitHub

Итоговая оценка: первое, что нужно установить, когда homelab имеет более трех сервисов.

2. Beszel, лучший для легкой agent-based dashboard

Beszel — это маленький Go агент плюс hub, который отображает чистую dashboard CPU, RAM, диска и статистики контейнеров с течением времени. Он работает там, где Netdata слишком тяжелый, а Uptime Kuma слишком двоичный.

Где он отстает: слой оповещений тоньше, чем pipeline Prometheus, и интеграции вне встроенных notifiers требуют Webhook стыка.

Цены:

Платформы: Windows, macOS, Linux native binaries или Docker.

Скачать: Site GitHub

Итоговая оценка: правильный выбор, когда вы хотите исторические графики без обязательства Prometheus.

3. Dozzle, лучший для live log tailing на разных хостах

Dozzle передает логи контейнеров в браузер с фильтрами, цветами уровней логов и режимом swarm, который вытягивает логи с каждого хоста в одну панель. Умирающий контейнер часто показывает сбой в своих логах перед тем, как health check переключится, а Dozzle — это самый быстрый способ это увидеть.

Где он отстает: это просмотрщик логов, а не полный монитор, поэтому спаруйте его с чем-то, что оповещает по замеченному паттерну.

Цены:

Платформы: Windows, macOS, Linux через Docker.

Скачать: Site GitHub

Итоговая оценка: вкладка, которую вы держите открытой, когда контейнер начинает ненормально работать.

4. Netdata, лучший для высокочастотных метрик с обнаружением аномалий

Netdata производит выборку каждой метрики в секунду и применяет ML модели, которые помечают аномалии без написания правил оповещений. Падения контейнеров, сетевые остановки и задержки диска появляются на live графике в течение секунды или двух.

Где он отстает: агент использует больше ресурсов, чем Beszel или Glances, и cloud уровень — это то, где многоузловые виды действительно сияют.

Цены:

Платформы: Windows, macOS, Linux.

Скачать: Site GitHub

Итоговая оценка: опция для использования, когда homelab перешел линию “достаточно большой, мне нужны реальные графики”.

5. Glances, лучший для terminal-first browser метрик

Glances показывает CPU, память, диск, сеть и Docker контейнер статистику в едином terminal виде, и выкладывает тот же вид через web UI, когда вы хотите вкладку браузера. Для headless сервера это самый быстрый способ увидеть, что происходит прямо сейчас.

Где он отстает: история ограничена тем, что процесс держит в памяти, и нет встроенного канала оповещений кроме stdout.

Цены:

Платформы: Windows, macOS, Linux.

Скачать: Site GitHub

Итоговая оценка: второе SSH окно на мониторе каждого администратора homelab.

6. Prometheus + Grafana, лучший для реального pipeline метрик

Prometheus собирает метрики, Grafana их отображает, а Alertmanager направляет оповещения туда, куда вы хотите. Точка cAdvisor и node-exporter на то же Prometheus и вы имеете CPU, память, счет перезагрузок и статус здоровья для каждого контейнера в одном языке запросов.

Где он отстает: три или четыре движущихся части для конфигурации, и PromQL требует выходного дня. Награда — это stack мониторинга, который не выходит за пределы homelab.

Цены:

Платформы: Windows, macOS, Linux через Docker или native binaries.

Скачать: Prometheus Grafana cAdvisor

Итоговая оценка: финал, если вы планируете расширять homelab. Чрезмерно для трех контейнеров.

7. Zabbix, лучший для полной платформы мониторинга

Zabbix — это зрелый сервер мониторинга с агентами для каждой ОС, шаблонами для сотен сервисов и escalation деревьями для оповещений. Он смотрит на контейнер, хост и сеть с одной dashboard.

Где он отстает: UI показывает свой возраст, и homelab из пяти контейнеров не нужна операционная поверхность, которую приносит Zabbix.

Цены:

Платформы: Windows, macOS, Linux.

Скачать: Site GitHub

Итоговая оценка: выберите это, если вы также администрируете реальные серверы на работе и хотите один инструмент с обеих сторон забора.

8. Autoheal, лучший для автоматических перезагрузок при неудачных health checks

Autoheal — это один контейнер, который смотрит на статус HEALTHCHECK других контейнеров и перезагружает все, что сообщает нездоровое слишком долго. Он не сообщает, он действует, поэтому зависший процесс мертв и рожден заново, прежде чем вы узнаете, что что-то пошло не так.

Где он отстает: ему нужен реальный HEALTHCHECK в Dockerfile или compose файле каждого контейнера. Контейнер без него невидим для Autoheal.

Цены:

Платформы: Windows, macOS, Linux через Docker.

Скачать: GitHub

Итоговая оценка: страховка безопасности, которую вы добавляете после исправления health-check определений.

Как выбрать правильный

FAQ

Почему мой мониторинг пропустил мертвый контейнер? Наиболее распространенная причина — проверка, которая смотрит на порт перед контейнером, пока процесс позади него зависает. Переместите проверку внутрь контейнера, используя Docker HEALTHCHECK, или спаруйте HTTP проверку с метрикой вроде количества процессов или частоты строк логов.

Нужен ли мне Prometheus для маленького homelab? Нет. Uptime Kuma и Beszel охватывают большую часть того, что нужно маленькому homelab. Prometheus становится стоящим, когда вам нужна длинная история, пользовательские запросы и rule-based оповещения на любых метриках.

Какой вариант лучше всего бесплатный? Uptime Kuma, Beszel, Dozzle, Glances, Prometheus, Grafana, Zabbix и Autoheal все бесплатные и open source. Uptime Kuma — это самый короткий путь от установки к первому оповещению.

Могу ли я использовать это на Windows? Да. Каждый вариант здесь работает на Windows либо нативно, либо через Docker Desktop. Uptime Kuma, Beszel, Dozzle, Prometheus и Grafana обычно запускаются как контейнеры.

Как мне остановить проблему усталости от оповещений? Направляйте оповещения на канал, который вы действительно читаете, установите escalation от warning к page после задержки, и предпочитайте symptom оповещения (пользователи не могут войти) вместо cause оповещений (CPU составляет 85 процентов). Каждый инструмент выше поддерживает этот паттерн.