Мониторинг — это важный процесс, позволяющий непрерывно отслеживать состояние IT-инфраструктуры, своевременно реагировать на проблемы и инциденты, а также вести историю изменений. Объектами мониторинга может являться практически все что угодно, будь то аппаратная составляющая оборудования или средства виртуализации, отдельно взятые сервера, виртуальные машины и контейнеры, отдельные сервисы и приложения, сетевое оборудование и т.д.
Однако не всегда задача мониторинга состоит в полноценном сборе, анализе и хранении многочисленных метрик, а сводится к мониторингу доступности отдельных активов. Тогда продвинутые системы мониторинга (такие как Zabbix) становятся избыточны и тяжеловесны. В таких случаях оптиммальным решением может стать такой сервис как Uptime Kuma.

Как следует из описания проекта, Uptime Kuma — это простой в использовании self-hosted инструмент для мониторинга (в первую очередь, мониторинга доступности).
Из основных преимуществ Uptime Kuma, которые я отметил для себя, можно выделить:
Развернуть сервис в Docker-контейнере можно буквально одной командой:
docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:2
Далее потребуется перейти в веб-интерфейс приложения и выполнить первичную настройку: выбрать СУБД (встроенная SQLite или внешние MariaDB/MySQL) и настроить учетной записи администратора.
На этом все — система мониторинга готова к работе! Далее останется только добавить мониторы и настроить способы оповещения.
P.S. В моем случае приоритетным способом оповещения были уведомления в Битрикс-24. Из коробки Kuma отправляет системные уведомления, о которых, к сожалению, не приходят пуши в мобильное приложение. Данная проблема была решена изменением типа уведомления на пользовательское. Для этого перед сборкой контейнера в исходный код были внесены небольшие изменения: в файле /app/server/notification-providers/bitrix24.js в теле запроса end-point im.notify.system.add.json был заменен на im.notify.personal.add.json.