ScriptKiddie86

Пикабушник
Дата рождения: 2 сентября
100 рейтинг 0 подписчиков 0 подписок 1 пост 0 в горячем
4

Мониторинг сайтов с помощью Uptime Kuma ("self-hosted UpTimeRobot")

Мониторинг и алертинг серверов — важные инструменты для обеспечения бесперебойной работы веб-сайтов и сервисов. Проблемы могут возникнуть в любой момент: перегрузка сервера, сбои хостинга или ошибки в коде. Хорошая система мониторинга не только вовремя обнаруживает сбои, но и предупреждает о потенциальных проблемах — например, если сайт начал грузиться медленнее или часть запросов завершается с ошибками. Чем раньше вы выявите проблему, тем быстрее сможете её устранить, минимизировав неудобства для пользователей. Существует множество решений для мониторинга, например UpTimeRobot.

Самый крупный сервис UpTimeRobot

Мы же сегодня с вами рассмотрим его open-source альтернативу - Uptime Kuma. Его автором является Louis Lam, а сам проект расположен в GitHub. Это простой в настройке, но мощный инструмент, который позволяет в реальном времени отслеживать работу сайтов, API и серверов, мгновенно оповещая о любых сбоях. В отличие от платных аналогов, это решение, которое можно развернуть на собственном сервере, сохраняя полный контроль над данными. Uptime Kuma поддерживает различные типы проверок (HTTP, TCP, DNS, ping) и интеграции с Telegram, Slack, Discord и другими мессенджерами.

Uptime Kuma

Для работы Uptime Kuma подойдет любой сервер — можно использовать недорогой VPS или даже домашний компьютер в локальной сети. Однако важно учесть один нюанс: если развернуть мониторинг на той же машине, где работают основные сервисы, то при её отключении вы останетесь без уведомлений. Поэтому идеальный вариант — выделить для Kuma отдельный сервер или VPS в отдельной сети. Так вы всегда будете в курсе проблем, даже если основной хостинг перестанет работать.

В данной статье мы рассмотрим развертывание Kuma в Docker, по этому далее в статье у нас будет инструкция для Ubuntu 24.02 LTS, с предустановленным docker. У меня это виртуальная машина в Hyper-V. Приступим!

Разворачиваем Kuma

Подключаемся к своему серверу через PuTTy:

Все готово к настройке

Все готово к настройке

Создаем папку для нашего сервиса:

sudo mkdir -p /opt/docker/uptime-kuma

sudo mkdir -p /opt/docker/uptime-kuma

Создаем docker-compose.yml файл с одним сервисом — Uptime Kuma. Используем порт 3001 и Bind Mount для сохранения данных:

sudo nano /opt/docker/uptime-kuma/docker-compose.yml

sudo nano /opt/docker/uptime-kuma/docker-compose.yml

Создаем каталог для данных (который прописали на предыдущем шаге в volumes):

sudo mkdir -p /opt/docker/uptime-kuma/kuma/data

sudo mkdir -p /opt/docker/uptime-kuma/kuma/data

Переходим в каталог сервиса:

cd /opt/docker/uptime-kuma

cd /opt/docker/uptime-kuma

Запускаем сервис. Docker скачает необходимые образы и запустит контейнер:

sudo docker-compose up -d

Открываем веб-интерфейс в браузере (в моем случае — 192.168.0.110:3001). Uptime Kuma предложит выполнить первоначальную настройку: создать пользователя и выбрать язык:

http://192.168.0.110:3001

http://192.168.0.110:3001

После настройки мы попадаем на главную страницу Uptime Kuma (её функционал мы рассмотрим позже):

Главная страница Uptime Kuma

Главная страница Uptime Kuma

Настраиваем доменное имя и HTTPS

Работать с IP-адресом не всегда удобно, поэтому лучше настроить доступ через доменное имя. Вариантов реализации много — можно использовать локальную DNS, hosts-файл или зарегистрировать настоящий домен. В моём случае я просто добавлю запись kuma.demo в hosts-файл на своём компьютере, но вы можете выбрать любой другой подходящий способ:

http://kuma.demo:3001/

http://kuma.demo:3001/

Для защиты данных нам нужно организовать безопасное HTTPS-соединение. Для этого мы поставим перед Uptime Kuma веб-сервер Caddy — он автоматически получает SSL-сертификаты и шифрует трафик. Я выбрал Caddy вместо nginx за его простоту и удобство конфигурации. В обновлённом docker-compose.yml обратите внимание на важные изменения:

  • Убрана публикация портов Uptime Kuma (cервисы внутри одного compose-файла могут общаться между собой по именам контейнеров без проброса портов)

  • Весь внешний трафик теперь идёт через Caddy

sudo nano /opt/docker/uptime-kuma/docker-compose.yml

sudo nano /opt/docker/uptime-kuma/docker-compose.yml

Создаем каталоги для Caddy:

- sudo mkdir -p /opt/docker/uptime-kuma/caddy/etc/caddy
- sudo mkdir -p /opt/docker/uptime-kuma/caddy/data
- sudo mkdir -p /opt/docker/uptime-kuma/caddy/config

Мониторинг сайтов с помощью Uptime Kuma ("self-hosted UpTimeRobot")

Создаем файл Caddyfile с конфигурацией:

sudo nano /opt/docker/uptime-kuma/caddy/etc/caddy/Caddyfile

sudo nano /opt/docker/uptime-kuma/caddy/etc/caddy/Caddyfile

Перезапускаем сервисы. При редактировании docker-compose.yml, он сам поймет что обновилось и изменилось и перезапустит/запустит только новые контейнеры:

sudo docker-compose up -d

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

https://kuma.demo/

https://kuma.demo/

Итог

Мы развернули и настроили собственный экземпляр Uptime Kuma. Это потребовало некоторых усилий, но в результате мы получили мощный инструмент мониторинга, к тому же бесплатный (если не считать стоимость VPS и домена).

Для лиги лени @KumaCloudBot

Показать полностью 21
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества