
velostat - Статус серверов Velocity в JSON
Лёгкий плагин velostat для прокси Velocity собирает данные о бэкенд-серверах и отдаёт их в JSON. Идеальное решение для дашбордов и мониторинга.
Если вы держите сетку серверов под прокси Velocity, вам жизненно необходим мониторинг. Плагин velostat закрывает эту боль - он поднимает легковесный HTTP API и отдаёт реал-тайм статус всех бэкенд-серверов в удобном формате JSON. Никаких костылей, чистый утилитный плагин для администраторов.
Что умеет velostat
Плагин работает как минималистичный экспортёр. Он пингует ваши суб-сервера и собирает такие данные, как имя, адрес, статус (онлайн или оффлайн), MOTD, количество игроков онлайн и версию игры. Совместимость заявлена с Minecraft Java от версии 1.7.2 вплоть до 1.21.x, так как плагин ставится поверх прокси-сервера и не зависит от ядер бэкендов.
Все экспортируемые поля можно гибко настроить. Хотите скрыть адреса серверов для публичной статус-страницы? Без проблем, отключается в конфиге.
Установка
- Скачайте плагин и положите
velostat-x.x.jarв папку/pluginsна вашем прокси Velocity. - Перезапустите прокси. Готово.
Совет: если вы только планируете открывать свой сервер Minecraft и ищете хостинг, обратите внимание на BungeeHost (https://Bungee.Host). Там Velocity и подобные плагины разворачиваются в пару кликов, а инфраструктура уже заточена под прокси.
Настройка config.yml
Основные параметры находятся в plugins/velostat/config.yml. Тут можно указать порт для HTTP сервера, интервал пингования и то, какие именно поля попадут в JSON.
| Параметр | Описание | По умолчанию |
|---|---|---|
api.port | Порт для внутреннего HTTP-сервера. | 8080 |
ping.interval_seconds | Интервал в секундах, с которым плагин пингует суб-серверы. | 10 |
export.server.name | Включать ли имя сервера (из Velocity) в JSON. | true |
export.server.address | Включать ли адрес сервера в JSON. | true |
export.server.status | Включать ли статус онлайн/оффлайн в JSON. | true |
export.server.motd | Включать ли MOTD сервера в JSON. | true |
export.server.players | Включать ли количество игроков (онлайн/макс) в JSON. | true |
export.server.version | Включать ли название версии игры и протокола в JSON. | true |
export.server.updated_at | Включать ли время последнего обновления в JSON. | true |
Как получить данные
Обращение по адресу http://<IP_СЕРВЕРА>:<ПОРТ>/status вернёт данные с заголовком Content-Type: application/.
Пример полного вывода
{ "lobby": { "name": "lobby", "address": "127.0.0.1:25565", "online": true, "motd": "Welcome to the Lobby!", "players": { "online": 12, "max": 100 }, "version": { "name": "Paper 1.21.1", "protocol": 767 }, "updated_at": 1704681000000 }, "survival": { "name": "survival", "address": "127.0.0.1:25566", "online": false, "motd": null, "players": { "online": 0, "max": 0 }, "version": null, "updated_at": 1704681000000 } }
Пример частичного вывода (если отключить часть полей)
{ "lobby": { "name": "lobby", "online": true, "motd": "Welcome to the Lobby!", "players": { "online": 12, "max": 100 }, "updated_at": 1704681000000 }, "survival": { "name": "survival", "online": false, "motd": null, "players": { "online": 0, "max": 0 }, "updated_at": 1704681000000 } }
Структура полей
Корневой объект
| Поле | Тип | Описание |
|---|---|---|
servers | array | Список серверов, прописанных в velocity.toml |
Объект сервера
| Поле | Тип | Описание |
|---|---|---|
name | string | Имя сервера из секции [servers] в velocity.toml |
address | string | Адрес сервера (хост:порт) |
online | boolean | Ответил ли сервер на пинг |
motd | string | MOTD сервера (может содержать цветовые коды) |
players | object | Информация об игроках (только если включено и сервер онлайн) |
version | object | Информация о версии Minecraft |
updated_at | number | Время последнего обновления (UNIX время) |
Объект игроков
| Поле | Тип | Описание |
|---|---|---|
online | number | Текущее количество игроков онлайн |
max | number | Максимальная вместимость |
Объект версии
| Поле | Тип | Описание |
|---|---|---|
name | string | Имя версии, которое отдаёт сервер |
protocol | number | Версия протокола Minecraft |
Важные нюансы
- Поля могут быть пропущены в зависимости от настроек в
config.yml. - Если сервер оффлайн, в JSON гарантированно будут только
name,addressиonline. Остальные поля могут бытьnull. Поэтому при парсинге JSON для своего дашборда всегда делайте проверки на null. - Этот API создан именно для внутренних дашбордов, статус-страниц или систем мониторинга (типа Grafana или самописных панелей).
Если плагин после обновления или изменения конфига начинает работать криво, просто удалите файл config.yml - он пересоздастся с дефолтными значениями. Это часто решает 99% проблем.
Сервер для плагина velostat - Статус серверов Velocity в JSON - как у профи
Плагин velostat - Статус серверов Velocity в JSON создан для серверов: на своём сервере вы настраиваете его под себя и решаете, кому играть. Создать сервер с плагином velostat - Статус серверов Velocity в JSON для друзей можно за пару минут - BungeeHost всё уже подготовил.
