Даже самые надёжные и отказоустойчивые системы иногда могут преподносить неприятные сюрпризы. Что уж говорить про обычные VPS-сервера и запущенные на них проекты. Рано или поздно может случиться ситуация, когда сайт или какой-то сервис «упал». Причины бывают разные: от внешних (например, сбой у провайдера или проблемы на стороне хостинга) до внутренних — ошибка в коде, нехватка ресурсов или некорректные настройки.

К таким ситуациям важно быть готовым заранее. И лучший способ — настроить мониторинг, который будет следить за работой сервисов и вовремя оповещать вас, если что-то пошло не так.

Один из удобных инструментов для этого — Uptime Kuma. Это относительно молодой (по сравнению с «тяжеловесами» вроде Zabbix) проект, который активно развивается, прост в установке и отлично подходит для новичков.

В этой статье мы разберёмся:

  • Что такое Uptime Kuma?

  • Какие версии актуальны в данный момент?

  • Как установить Uptime Kuma 2 на Docker-хостинг Dockhost?

  • Как с ним работать на практике?

Если вам интересны подобные материалы, подписывайтесь на наш Telegram-канал «Код на салфетке» — там мы публикуем много полезных статей с упором на новичков.


Что такое Uptime Kuma

Uptime Kuma — это self-hosted сервис мониторинга доступности. Проще говоря, это инструмент, который вы устанавливаете на свой сервер, и через удобный веб-интерфейс получаете возможность отслеживать, работает ли ваш сайт, API, база данных или любой другой сервис.

Главная идея Uptime Kuma — простота. Если Zabbix или Prometheus могут отпугнуть новичков своей сложностью, то Kuma подкупает лёгкой установкой и понятным интерфейсом. При этом возможностей здесь достаточно для большинства задач мониторинга.

Особенности:

  • Поддержка разных протоколов: HTTP(S), TCP, Ping, DNS и даже Docker-контейнеры.

  • Настраиваемые уведомления (Telegram, Discord, Slack, email и многие другие интеграции).

  • Подробная история доступности и графики с отображением времени отклика.

  • Авторизация и многопользовательский режим (можно использовать не только в одиночку, но и всей командой).

  • Простая установка через Docker.

  • Open Source и полностью бесплатный проект.

  • Активное сообщество: регулярные обновления и новые фичи.

Таким образом, Uptime Kuma можно рассматривать как лёгкий, но мощный инструмент мониторинга «для своих»: он не требует сложной настройки, работает на любом сервере и отлично подходит даже для начинающих администраторов.


Актуальные версии

На данный момент доступно две ветки проекта:

  • Ветка 1.x — основная и стабильная. Актуальная версия: 1.23.16.

  • Ветка 2.x — бета-ветка с множеством новых возможностей и изменений. Актуальная версия: 2.0.0-beta.3.

Нововведения в Uptime Kuma 2

  • Мониторинг через SMTP — проверка работы почтовых серверов напрямую.

  • Мониторинг через SNMP — контроль состояния сетевых устройств (роутеров, свитчей, серверов и др.).

  • Новые провайдеры уведомлений — SMSPlanet, OneChat, Pumble, SpugPush, Notifery и другие.

  • Поддержка HTML в пользовательском теле email-уведомлений.

  • Улучшенный Ping-мониторинг — добавлены параметры: count, timeout, numeric.

  • Звуковые уведомления (Pushover) — разные звуки для статусов UP / DOWN.

  • Публичные ссылки на мониторы с возможностью отображения их на статусной странице.

  • «Умные имена» (friendly name) — автоматически подставляются по hostname или URL.

Архитектурные изменения

  • Поддержка MariaDB (встроенной или внешней) вместо SQLite — это повышает производительность при большом числе проверок.

  • SMTP-темплейтинг через LiquidJS — более гибкий подход к шаблонам писем; переменные теперь чувствительны к регистру и игнорируются, если не совпадают.

  • Отключена поддержка Alpine-образов в Docker, Node.js ниже версии 18 и устаревших функций (например, DNS-кэш для HTTP-мониторов).


Про установку и Docker-хостинг

В этой статье мы будем разбирать установку именно второй версии Uptime Kuma, так как по первой уже существует немало материалов.

Вместо классического VPS мы воспользуемся Docker-хостингом от dockhost.ru. Это сервис, который позволяет запускать практически любые проекты в Docker-контейнерах без необходимости разбираться в настройке серверов и командной строке. Всё сводится к удобному интерфейсу и нескольким действиям.

Ранее я уже писал о Dockhost в статье "Шпаргалка для новичков — от GIT до Деплоя", где подробно разбирал процесс.

Если вам пока не хочется переходить на бета-ветку — не проблема. В конце я покажу, как запустить стабильную версию так же просто.


Запуск Uptime Kuma 2

Переходим к самому интересному — установке. И, что приятно, она здесь «ленивая»: не нужно подключаться к серверу по SSH, вручную редактировать конфиги или разбираться с системными настройками. Всё делается в пару кликов через интерфейс Dockhost.

Создание проекта

Сначала заходим в личный кабинет Dockhost. По умолчанию откроется страница со списком проектов. Нажимаем кнопку «Новый проект»:

В появившемся окне указываем название проекта и жмём «Создать»:

Готово! Новый проект создан. Теперь кликаем по нему, чтобы перейти в панель управления:

Сетевой диск

Чтобы данные и настройки Uptime Kuma сохранялись между перезапусками контейнера, необходимо выделить отдельное хранилище. В Dockhost такая функция называется «Сетевой диск».

Переходим в раздел «Сетевые диски» и нажимаем кнопку «Добавить»:

В открывшемся окне указываем параметры:

  • Имя — произвольное название, например kuma-data.

  • Тип — выбираем тип диска: быстрый SSD или более бюджетный HDD.

  • РежимReadWriteOnce (используется только одним контейнером) или ReadWriteMany (одновременно несколькими). Для нашего случая подойдёт ReadWriteOnce.

  • Размер, GiB — минимальный объём для старта можно задать 5 ГБ. В дальнейшем, если количество мониторингов вырастет, размер диска всегда можно увеличить.

Жмём «Применить», и готовый диск появится в списке:

Контейнер Uptime Kuma 2

Теперь создадим сам контейнер. Переходим в раздел «Контейнеры» и нажимаем «Добавить»:

Перед нами откроется форма для создания контейнера. Заполняем поля следующим образом:

  • Имя — любое удобное название, например kuma.

  • Образ — указываем Docker-образ Uptime Kuma: louislam/uptime-kuma:beta.

  • Количество реплик — оставляем 1.

  • Ресурсы:

    • Процессор — достаточно одного ядра.

    • Резервирование процессора — можно задать 20%, этого обычно хватает для работы с небольшим количеством мониторингов.

    • Память, MiB — выберем 1024 МБ. Учтите, что с ростом количества мониторингов потребуется больше ОЗУ.

  • Порты:

    • Нажимаем «Добавить порт» и вводим 3001.

  • Сетевые диски:

    • Нажимаем «Добавить сетевой диск».

    • В первом поле выбираем ранее созданный диск.

    • Во втором поле указываем путь монтирования: /app/data.

Нажимаем «Применить», после чего начнётся процесс запуска контейнера:

Когда контейнер успешно запустится, рядом с его названием загорится зелёный индикатор.

Доступ к запущенному контейнеру

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

В разделе «Сетевые сервисы» выбираем «Домены» и нажимаем «Добавить»:

Указываем название (техническое) и выбираем тип домена:

  • Динамический — виртуальный домен от Dockhost, удобен для тестирования.

  • Внешний — подключение собственного домена.

Для примера выбираем динамический и нажимаем «Применить»:

На странице появится созданный домен с его адресом. Пока он ещё не работает, так как необходимо настроить маршрутизацию.

Переходим в раздел «Маршруты» в «Сетевых сервисах». На открывшейся странице нажимаем «Добавить»:

Практически все поля будут заполнены автоматически: выбран домен, корневой путь и связь с портом контейнера. Осталось только задать название маршрута и нажать «Применить»:

Теперь можно вернуться в раздел «Домены» и перейти по адресу:

Если вы видите страницу настройки Uptime Kuma, значит всё прошло успешно и можно приступать к настройке мониторинга!


Первоначальная настройка

Переходим к первичной настройке сервиса. На первом экране вам будет предложено выбрать язык интерфейса и тип базы данных.

  • Язык — для удобства выбираем Русский.

  • База данных — указываем Embedded MariaDB. Этот вариант рекомендуется для стабильной работы. Если у вас уже есть внешняя MariaDB, можно подключить её. А вот SQLite лучше не использовать, так как она плохо подходит для проектов с большим количеством проверок.

Нажимаем «Далее» и ждём, пока запустится база данных:

После запуска появится форма для создания учётной записи администратора:

Указываем логин и пароль, затем нажимаем «Создать»:

Готово! Мы попадаем в интерфейс Uptime Kuma и можем начинать добавлять свои первые мониторинги.


Создание мониторингов

Теперь добавим несколько тестовых мониторингов.

Слева нажимаем кнопку «Добавить новый сенсор» и переходим на страницу создания мониторинга:

Ping

Начнём с самого простого и наглядного варианта — проверки доступности через Ping. Такой мониторинг проверяет, «отзывается» ли сервер или устройство по сети. Если пинг перестал проходить — значит сервер недоступен.

Для этого в поле «Тип Монитора» выбираем Ping:

Заполняем основные поля:

  • Имя — название мониторинга, например pressanybutton-ping.

  • Имя хоста — IP-адрес или домен сервера (указываем только хост, без http(s)://).

  • Частота опроса — периодичность проверки (например, раз в 60 секунд).

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

После заполнения нажимаем «Сохранить»:

Готово! После сохранения вы попадёте на страницу со статистикой мониторинга, где начнут отображаться результаты проверок.

SNMP

SNMP (Simple Network Management Protocol) — это протокол, который используется для мониторинга и управления сетевым оборудованием: роутерами, свитчами, серверами и даже отдельными датчиками. С его помощью можно получать информацию о состоянии устройств, их нагрузке, температуре и других параметрах.

Например, именно через SNMP провайдеры домашнего интернета следят за состоянием оборудования. Это одна из причин, почему мне стало интересно попробовать вторую версию Uptime Kuma: в ней появился встроенный мониторинг по SNMP. Один из подписчиков нашего канала работает в провайдере, и их команда рассматривает переход с тяжеловесного Zabbix на более лёгкие решения вроде Kuma.

Чтобы добавить мониторинг по SNMP, в поле «Тип Монитора» выбираем SNMP. Перед нами появится гораздо больше полей, чем при настройке Ping:

Заполняем основные параметры:

  • Имя — произвольное название мониторинга, например servernaya_TV.

  • Имя хоста — IP-адрес устройства.

  • Порт — стандартный порт для SNMP: 161.

  • Строка сообщества (SNMP Community) — своего рода «пароль» для доступа к устройству, чаще всего используется значение public.

  • OID (Object Identifier) — уникальный идентификатор объекта для мониторинга, например 1.3.6.1.4.1.9.6.1.101.

  • Версия SNMP — выбираем ту, что поддерживается устройством. Обычно это SNMPv2c.

  • Выражение запроса JSON — здесь самое сложное. Нужно понимать, в каком формате устройство отдаёт данные.

    • $ — представляет весь полученный объект (любое значение считается «1», а отсутствие — «0»). Это позволяет отследить, работает ли устройство в принципе.

    • Можно обращаться к конкретным полям ответа, например $.value вернёт содержимое поля value.

  • Условие и ожидаемое значение — операция сравнения. Например, для температурного датчика можно задать условие <= 60. Если устройство вернёт 61, Kuma отправит уведомление о перегреве. В отличие от Zabbix, Kuma не «понимает», что это именно датчик температуры, поэтому здесь всё работает только по заданному условию.

Остальные параметры можно оставить по умолчанию или настроить при необходимости. После заполнения нажимаем «Сохранить» — и начинается отслеживание SNMP-устройств.

HTTP(S) в виртуальном браузере

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

В поле «Тип Монитора» выбираем HTTP(S) - Browser Engine (Chrome/Chromium) (Beta):

Заполняем всего два обязательных поля:

  • Имя — название монитора, например pressanybutton-web.

  • URL-ссылка — адрес сайта или конкретной страницы, начинающийся с http(s)://....

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

Нажимаем «Сохранить» и после создания мониторинга переходим к статистике. Здесь видно:

  • результаты проверок, включая HTTP-статус коды (200, 404, 500 и т.д.),

  • время отклика,

  • скриншоты сайта на момент проверки.


Установка Uptime Kuma 1

Если по каким-то причинам вы не хотите использовать Uptime Kuma 2, можно установить первую стабильную версию — и это будет даже проще!

В Dockhost есть каталог приложний. Это набор заранее настроенных приложений, которые можно установить "в один клик". Среди них есть Uptime Kuma.

Открываем раздел «Приложения»:

Прокручиваем страницу вниз до блока «Мониторинг» и выбираем Uptime Kuma. Откроется страница приложения:

Здесь можно выбрать:

  • Нужную версию приложения,

  • Подходящую конфигурацию.

После этого нажимаем «Установить».

Всё! Контейнер запустится автоматически, а сетевой диск и домен будут созданы без дополнительных действий.


Заключение

Uptime Kuma — действительно интересный инструмент. Его очень просто установить и так же просто начать использовать.

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

Отдельно стоит отметить удобство Docker-хостинга Dockhost: даже тот, кто никогда не работал с VPS, сможет без проблем запустить контейнер и пользоваться им.

Подписывайтесь на наш Telegram-канал «Код на салфетке» — у нас много материалов для новичков по Python и DevOps.

Комментарии (0)