Uptime Kuma
Хотя существует множество готовых решений для мониторинга доступности сервисов, бывает трудно найти такое, которое удовлетворяло бы базовым требованиям и просто работало без сложных настроек. Используя различные подходы к непрерывному мониторингу доступности, мы рекомендуем простое решение, подходящее для всех владельцев On‑premise инстансов, развернутых локально в организациях или в облачных сервисах.
Предлагаемое нами аккуратное решение удовлетворяет следующим требованиям:
Развертывается локально на сервере (поэтому подходит для засекреченных инфраструктур)
Простота установки
Наличие удобного пользовательского интерфейса и отсутствие перегрузки опциями
Способно мониторить разнообразные метрики (не только пинг адреса)
Поддерживает различные варианты уведомлений (электронная почта, SMS, мессенджеры и прочее)
Решение называется Uptime Kuma и доступно в репозитории автора на GitHub:
https://github.com/louislam/uptime-kuma
Установка
Процесс установки подробно описан на странице продукта на GitHub, поэтому не будем останавливаться на деталях. Стоит отметить, что самый простой вариант — развернуть контейнер docker, что выполняется буквально одной командой.
Существует также альтернативный метод установки без использования Docker, который также относительно прост и доступен для Linux и Windows. Выбор метода установки остается за вами.
Важно убедиться, что на вашем сервере доступен выделенный порт для Uptime Kuma — по умолчанию это 3001.
После установки веб‑интерфейс Uptime Kuma будет доступен по адресу сервера (домену или IP‑адресу) и порту и сразу готов к использованию. Вам потребуется задать учетные данные администратора и перейти к настройке метрик.
Метрики
С точки зрения бизнеса наиболее важными метриками являются доступность веб‑сайта, доступ клиентов к данным и запись новых данных с трекер‑устройств. Именно это мы будем мониторить.
Для каждой метрики вы можете указать интервал heartbeat, чтобы настроить частоту проверок (по умолчанию 60 секунд), отрегулировать количество повторных попыток (прежде чем считать сервер недоступным) и задать другие параметры.
Доступность веб‑сайта
Для начала создайте первый монитор, который будет отслеживать доступность домена на основе HTTPS‑запросов. Выберите тип монитора HTTP(s), присвойте ему имя и укажите URL вашего веб‑сайта. Это будет проверять доступность сайта на основе HTTP‑статусов ответа. Кодами считаются 200–299, поэтому если будет получен любой другой код (например, 404 Not found или 504 Gateway timeout) это будет считаться сбоем, и монитор сообщит, что сервис недоступен.

Сохраните настройки монитора — он автоматически начнет отслеживать доступность веб‑сайта.
Доступность API
API — это ключевой сервис, необходимый для взаимодействия сайта с бэкендом платформы, кроме того многие клиенты используют его для получения данных напрямую с платформы. Поэтому стабильная работа API также имеет первостепенное значение. Мониторинг работы этого сервиса можно выполнить одним простым API‑запросом.
Запрос выглядит следующим образом:
https://my.domain.com/api/base/ping/А ответ нормально функционирующего сервиса будет следующим JSON:
{"success": true}Вы можете настроить монитор для работы с этим ответом. Для этого создайте ещё один монитор типа HTTP(s), укажите API‑запрос в поле URL и затем настройте параметры HTTP:
Method:
GETBody encoding:
JSONBody:
{"success": true}

Сохраните настройки монитора — он автоматически начнет проверять доступность API, отправляя указанный запрос и разбирая ответы.
Доступность TCP
Приём данных от устройств критически важен для платформы трекинга. Поэтому важно поддерживать доступ устройств и мониторить активность TCP‑сервера. Поскольку сервис мониторинга находится внешне относительно платформы, можно просто отслеживать внешнюю доступность любых портов, на которых подключаются устройства. Например, это может быть порт 47770 для мобильного приложения X-GPS tracker, 47776 для Teltonika или любой другой порт для ваших используемых устройств.
Настройте монитор: выберите тип монитора «TCP Port», укажите базовый домен и интересующий вас порт.

Сохраните настройки монитора — он начнёт проверять доступность порта.
Уведомления
Для каждой метрики вы можете настроить уведомления, чтобы Uptime Kuma оповещал вас при возникновении событий недоступности. Таким образом у вас будут не только графики доступности сервисов, но и срочные уведомления, если один из сервисов выйдет из строя.

Вы можете настроить различные типы уведомлений, но важно отметить, что сам Uptime Kuma не является шлюзом уведомлений. Для настройки любого типа уведомления вам потребуются учетные данные соответствующего внешнего шлюза (например, SMTP, Twilio, Discord и т.д.).
После указания настроек шлюза уведомлений вы будете получать оповещения о проблемах с сервисами через выбранный вами канал.
Последнее обновление
Это было полезно?