Как настроить мониторинг Minecraft-сервера через Uptime Kuma
«Узнал о падении сервиса через игроков» - знакомая ситуация? Администрация проекта физически не имеет возможности круглосуточно следить за сервисами своего проекта вручную, и для этого лучше всего подойдет простое self-host решение - Uptime Kuma. В этой статье мы рассмотрим установку Uptime-Kuma на виртуальный сервер через Docker Compose с поддержкой HTTPS, создание страницы статуса и примера его вывода на Minecraft-сервер, а также настройку уведомлений в Telegram/Discord.
ℹ️ Проверено на: Ubuntu 26.04, Docker, Uptime Kuma 2.x (образ
louislam/uptime-kuma:2). Сервер: Minecraft 26.2 (Purpur)
Что такое Uptime Kuma и для чего он нужен
Страница статуса с мониторами проекта в Uptime Kuma
Uptime Kuma - FOSS self-host решение, опрашивающее в заданный период времени сервисы из вашего списка (пример продемонстрирован на скриншоте страницы статуса), показывающее результат на страницах статуса для пользователей и рассылающее оповещения администрации об изменении состояния мониторов, благодаря чему вы узнаете о неработоспособности сервиса и будете иметь возможность оперативно среагировать на инцидент.
Представим ситуацию: Вы - администратор игрового Minecraft-сервера. Вечер пятницы, и разработчик на вашем проекте несколько минут назад выпустил обновление, не дожидаясь перезагрузки и проверки состояния работоспособности измененного им аспекта. Впереди - пара выходных и полноценный сон, однако, игровой сервер по неожиданности не запустился после ночной правки. Инцидент, вероятнее всего, остался незамеченным до понедельника, а ваш проект потерял потенциальную конверсию игроков на период неактивности сервера, которая в выходные дни особенно высока. Вы могли бы предотвратить это, если бы вас уведомили об этом в первые же минуты. Именно поэтому мы рекомендуем использовать Uptime-Kuma, который сразу же определит отвалившийся или недоступный сервис, точное время и отправит администрации сообщение об этом с последующим повторным напоминанием о произошедшем инциденте.
Благодаря этому инструменту следить за состоянием сервисов также может не только администрация, но и сами игроки. Нередко бывают случаи, когда игрок может жаловаться на неработоспособность какой-либо части игрового проекта (например, на упавший игровой сервер), однако, определить достоверность собственного предположения со стороны самого игрока зачастую оказывается невозможным. Сделав отдельные страницы статуса открытыми для игроков, вы существенно поможете им определить как минимум виновную сторону - клиентскую (сервисы активны на странице статуса, но игрок испытывает проблемы с доступом/подключением), либо серверную (сервисы неактивны на странице статуса).
Установка через Docker Compose
Подготовка сервера
Для работы потребуется:
- VPS под управлением Linux с доступом по SSH и правами
sudo(рекомендуется Ubuntu 26.04); - домен или поддомен (например,
status.furrydev.store) с A-записью на IP сервера и свободные порты 80 и 443 для полноценной работы HTTPS; - Docker с плагином Compose
ℹ️ Все команды ниже вводятся в консоли сервера по SSH.
Установка Docker и плагина Compose
⚠️ Команды вводить поочерёдно, блоками
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Убедитесь, что служба Docker активна, введя команду:
sudo systemctl status docker
Проверка статуса службы Docker
Запуск Uptime Kuma в контейнере
Для запуска сервиса необходимо создать отдельную проектную папку и файл docker-compose.yml:
mkdir ~/uptime-kuma && cd ~/uptime-kuma
nano docker-compose.yml
Перед вами откроется консольный текстовый редактор nano. Не стоит пугаться его вида, вам достаточно вставить шаблон, представленный ниже, используя сочетания клавиш Ctrl+Shift+V
Пустой редактор nano для файла docker-compose.yml
services:
uptime-kuma:
container_name: uptime-kuma
image: louislam/uptime-kuma:2
restart: unless-stopped
volumes:
- ./data:/app/data
ports:
- "127.0.0.1:3001:3001"
image: louislam/uptime-kuma:2- последняя на момент написания статьи ветка 2.x uptime-kuma;./data:/app/data- директория хранения мониторов, настроек и базы данных;127.0.0.1:3001:3001- порт доступен только с самого сервера. Снаружи панель откроется через Caddy (подробнее о его настройке вы можете узнать в разделе “Безопасность: HTTPS через Caddy”);restart: unless-stopped- контейнер автоматически поднимется сам после перезагрузки сервера
Файл docker-compose.yml для Uptime Kuma в редакторе nano
Сохраните файл сочетанием Ctrl+S и выйдите из редактора с помощью Ctrl+X. После этого запустите контейнер из-под той же директории:
docker compose up -d
Убедитесь, что контейнер успешно поднялся и запущен (Running).
Контейнер Uptime Kuma запущен
Безопасность: HTTPS через Caddy
По умолчанию Uptime Kuma работает по незашифрованному HTTP. Для использования зашифрованного HTTPS-трафика необходима настройка reverse proxy. Мы рекомендуем делать это под управлением Caddy, который сам получит нужный сертификат Let's Encrypt и продолжит автоматически обновлять его.
Reverse proxy на Caddy
Для HTTPS понадобится домен или поддомен, A-запись которого уже указывает на IP вашего сервера. Установите Caddy блоками, последовательно (по официальной инструкции):
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo chmod o+r /usr/share/keyrings/caddy-stable-archive-keyring.gpg
sudo chmod o+r /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy
После установки откройте конфигурацию Caddy:
sudo nano /etc/caddy/Caddyfile
Замените всё содержимое файла на блок ниже, подставив вместо status.<domain> свой домен:
status.<domain> {
reverse_proxy 127.0.0.1:3001
}
Конфигурация Caddy для Uptime Kuma
Сохраните файл (Ctrl+S), выйдите из редактора (Ctrl+X) и перезагрузите конфигурацию Caddy командой:
sudo systemctl reload caddy
Подождите некоторое время и откройте панель в браузере по адресу https://<domain>.
Первый запуск и настройка Uptime Kuma
Откройте https://<domain>: Uptime Kuma проведёт краткий “мастер по установке”. Все значимые пункты разбираем в этом разделе ниже.
⚠️ Свежий инстанс нельзя надолго оставлять без первого входа: первый зашедший пользователь становится администратором после прохождения “мастера по установке” и установке пароля
Создание аккаунта администратора
Выбор языка и базы данных при первом запуске
Выберите язык и базу данных. Для начала рекомендуется использовать Embedded MariaDB. Подробнее обо всех вариантах:
- Embedded MariaDB (рекомендуется для начального использования) - встроенная база данных внутри контейнера, данные хранятся в
./data; - MariaDB/MySQL (рекомендуется для продвинутого использования) - подключение к внешней базе данных SQL;
- SQLite - single-файл локальной базы данных SQL в формате
.sqlite, хранится в./data.
Создание и настройка базы данных
Дождитесь, пока Uptime Kuma создаст и настроит базу данных.
Форма создания аккаунта администратора
Создайте аккаунт администратора: заполните поля «Логин», «Пароль» и «Повтор пароля».
ℹ️ Uptime Kuma принимает пароль с обязательными требованиями в виде пароля от 6 символов (буквы + цифры)
⚠️ Аккаунт администратора один и не привязан к почте или другим личным данным. Используйте надёжный пароль. При утрате информации об аккаунте администратора вам придётся делать ручной сброс через терминал.
Главная панель Uptime Kuma сразу после создания аккаунта
После создания аккаунта вы попадаете в главную панель администратора - dashboard.
Создание первого монитора
Находясь в dashboard, вы можете создавать мониторы. Для этого нажмите «+ Новый монитор» в левом верхнем углу.
Кнопка «Новый монитор» в левом верхнем углу
В открывшейся панели (по центру) добавим проверку состояния Minecraft-сервера по протоколу GameDig. Заполните поля:
Форма монитора GameDig для Minecraft-сервера
- Тип монитора: GameDig;
- Имя: произвольное (отображается в заголовке сервиса на странице статуса);
- Игра: Minecraft;
- Имя хоста: IP-адрес или домен вашего игрового сервера;
- Порт: порт сервера (по умолчанию 25565);
- Интервал опроса: рекомендуем оставить 60 секунд. Если производится повышенная нагрузка на виртуальную машину, рекомендуется увеличить интервал до 120-180 секунд.
Сохраните монитор и проверьте, что сервер определился как «Доступен».
Монитор игрового сервера со статусом «Доступен»
Готово, первый монитор создан. Uptime Kuma будет проверять сервер с заданным интервалом, а информация на странице обновляется в реальном времени, без перезагрузки.
Страница статуса для игроков
Монитор создан, однако, доступ к нему есть только у администратора. Чтобы состояние сервера видели игроки и все желающие пользователи, необходимо создать отдельную страницу статуса.
Создание страницы статуса
Нажмите «Страницы статуса» в правом верхнем углу dashboard.
Кнопка «Страницы статуса» в правом верхнем углу
В открывшейся панели (справа) нажмите «+ Новая страница статуса».
Создание новой страницы статуса
Введите название страницы и её slug - значение после /status/ в адресной строке браузера (допустимы строчные латинские буквы, цифры и дефис). Оба значения можно выбрать любые.
Форма новой страницы статуса: имя и slug
Нажмите «Далее» - откроется сама страница статуса.
Пустая страница статуса сразу после создания
Пока она пустая, ведь к ней не подключен ни один монитор.
Редактирование страницы статуса
Чтобы подключить созданный монитор, нажмите «Изменить страницу статусов» в левом верхнем углу.
Кнопка «Изменить страницу статусов»
Слева появится панель глобальных настроек страницы: название, описание, текст нижнего колонтитула, интервал обновления и тема. По центру - кнопки «Создать инцидент» и «Добавить группу», а также список «Добавить монитор».
Режим редактирования страницы статуса
ℹ️ Изменения вступают в силу после нажатия «Сохранить» внизу левой панели.
Инциденты
Инцидент - это визуальный маркер текущего состояния ваших серверов, с помощью которого вы информируете игроков и команду проекта. Например, игроки смогут увидеть, что на сервере ведутся технические работы: достаточно создать соответствующий инцидент и опубликовать его.
В форме заполните «Название» и «Содержание» (поддерживается Markdown) и выберите стиль из списка. В качестве примера создадим инцидент «DDoS-атака» с содержанием «Наблюдаются критические сбои в работе серверов с 10:05» и стилем «Внимание».
Форма инцидента и список стилей
Опубликованный инцидент «DDoS-атака» со стилем «Внимание»
Группы и мониторы
Группы нужны для сортировки мониторов по категориям. Например, создадим группу «Серверы» и положим в неё монитор «Игровой сервер». Нажмите «Добавить группу» по центру экрана и измените название группы.
Добавление группы «Серверы»
Чтобы добавить монитор в группу, раскройте список «Добавить монитор» и выберите его.
Выбор монитора для добавления в группу
Итого мы получаем монитор «Игровой сервер» в группе «Серверы». Группы и мониторы можно свободно перетаскивать и сортировать так, как удобно и приятно глазу.
Монитор «Игровой сервер» в группе «Серверы»
Внешний вид страницы
Страницу в первую очередь видят игроки, поэтому следует обратить на неё особое внимание и проявить эстетический интерес:
- Установка аватара: нажмите на иконку слева от названия страницы и загрузите свой файл (рекомендуется использование логотипа в формате .svg)
Загрузка аватарки страницы статуса
- Обновление инцидента после решения проблемы
Обновление инцидента после устранения проблемы
- Скрытие надписи «Работает на Uptime Kuma» в нижнем колонтитуле: необходимо отключить тумблер «Показывать на чем создано» в левой панели настроек страницы статусов.
Отключение надписи «Работает на Uptime Kuma»
В конце сохраните изменения. Ссылка текущей вашей страницы статуса выглядит в формате: https://<domain>/status/<slug>, где <domain> - ваш домен, а <slug> - slug страницы статусов. Итоговую ссылку можно разместить на сайте проекта, в Discord и в Telegram в открытом доступе всем желающим.
Настройка уведомлений
Страница статуса показывает проблемы, но сама о них не сообщает. Чтобы узнавать о падении сразу, подключим уведомления в Telegram и Discord - можно настроить один вариант или оба.
Откройте «Настройки» (меню профиля в правом верхнем углу), перейдите в раздел «Уведомления» и нажмите «Настройка уведомления».
Раздел «Уведомления» в настройках Uptime Kuma
Уведомления в Telegram
Для настройки уведомлений в Telegram необходимо создать бота с помощью @BotFather. Отправьте команду /newbot и следуйте дальнейшим инструкциям создания бота, скопируйте полученный токен.
В списке «Тип уведомлений» выберите Telegram, впишите токен в поле «Токен бота».
Настройка уведомления Telegram: тип и токен бота
Протестируйте подключение путём нажатия кнопки «Тест», затем сохраните форму.
Нижняя часть формы Telegram с кнопками «Тест» и «Сохранить»
ℹ️ Если Telegram недоступен с вашего сервера, в этой же форме есть необязательное поле «URL Сервер» для указания зеркала.
Уведомления в Discord
В случае с Discord понадобится вебхук. Откройте настройки вашего Discord-сервера и перейдите в раздел «Интеграции» → «Вебхуки» → «Новый вебхук». Выберите канал, в который будут приходить уведомления, при желании задайте имя и аватарку и скопируйте URL вебхука.
В списке «Тип уведомлений» выберите Discord и вставьте скопированный URL в поле «Discord вебхук URL».
Настройка уведомления Discord: тип и вебхук
Остальные параметры (имя бота, префикс сообщения, формат) - опционально.
Протестируйте подключение путём нажатия кнопки «Тест», затем сохраните форму.
Нижняя часть формы Discord с кнопками «Тест» и «Сохранить»
Частые вопросы
Почему монитор показывает «Недоступен», хотя игровой сервер работает?
Вероятно, причина в неверной настройке адреса сервиса или недоступности порта. Проверьте используемые вами параметры.
Как мониторить несколько серверов и сервисов?
Создайте отдельный монитор для каждого сервера или сервиса и разложите их по группам на странице статуса (аналогично группе «Серверы» из примера статьи). Для сайта, лаунчера или сервиса скинов подойдёт тип монитора HTTP(s), для остальных (в подавляющем большинстве случаев) - TCP.
Зачем GameDig, если есть проверка TCP-порта?
TCP-проверка подтверждает только то, что порт принимает соединения.
GameDig запрашивает у сервера игровой статус, поэтому он более точен.
Например, если вписать в порт TCP 25565 в локальной сети с выключенным сервером, запущенным ранее через контейнер, Uptime Kuma покажет как available, хотя сервис давно unavailable.
Что Uptime Kuma не умеет?
Сервис отвечает на вопрос «жив или нет», но не способен объяснить причину: TPS, нагрузку на процессор и память сервера Uptime Kuma не может обрабатывать и транслировать. Для метрик игрового сервера и хоста стоит использовать иные решения.
Вывод
Теперь вы получили полноценный мониторинг: Uptime Kuma опрашивает игровой сервер, страница статуса показывает игрокам текущий статус по нему, а ваш собственный бот в Telegram и/или канал сервера в Discord сообщают о падении мгновенно. Далее можно добавлять новые мониторы, кастомизировать страницу через CSS, настраивать новые хуки для уведомлений и так далее.
Нужна помощь с сервером?
Команда TheFurryDev поможет с разработкой, настройкой и запуском
Написать в TelegramКомментарии
Войдите чтобы оставить комментарий
