Skip to content
Перейти к содержимому
Вернуться в блог
Держи свой сервер Minecraft в порядке: Prometheus Exporter

Держи свой сервер Minecraft в порядке: Prometheus Exporter

Alexandru Maftei
Alexandru Maftei
@ice
Обновлено
12 просмотров
TL;DR:Плагин minecraft-prometheus-exporter для Bukkit передает метрики производительности вашего сервера Minecraft в Prometheus для мониторинга, оповещений и исторического анализа. Поддерживает Paper, Spigot и другие форки, установка занимает несколько минут.

"Плагин Bukkit, экспортирующий статистику сервера Minecraft в Prometheus"

sladkoff/minecraft-prometheus-exporter, github.com
⭐ 530 stars💻 Java📜 MIT

Если вы управляете сервером Minecraft и не знаете, здоров ли он, пока игроки не начнут жаловаться, вы летите наугад. Prometheus Exporter - легковесный плагин Bukkit, который меняет это, обеспечивая реальное время видимость того, что происходит под капотом, передавая метрики производительности вашего сервера в Prometheus.

Что делает этот проект

minecraft-prometheus-exporter - плагин на Java для Bukkit (совместим с Paper, Spigot и другими форками), превращающий ваш сервер Minecraft в источник данных для Prometheus, индустриального стандарта системы мониторинга временных рядов. После установки он открывает подробные метрики производительности сервера, активности игроков и системного здоровья по простому HTTP-конечному пункту. Затем эти метрики поддаются Prometheus и визуализируются в Grafana или в вашем используемом стеке мониторинга.

Представьте, что ваш сервер Minecraft получил монитор здоровья на запястье.


Почему вам это нужно

Большинство операторов серверов управляют ими, как в 2010 году. Они подключаются через SSH раз в неделю, смотрят на логи, возможно, проверяют количество игроков, и считают это достаточным. Но если вы управляете серьезным сообщественным сервером, особенно если на нем могут появляться игроки, подобные adderall_abuser и ironmouse, вам нужны реальные данные о том, почему падает TPS, утечка памяти или DDoS.

Этот плагин решает три реальные проблемы:

  • Видимость производительности: Метрики TPS, использования памяти, времени загрузки чанков и количества сущностей без ручной проверки.
  • Оповещения: В сочетании с правилами оповещений Prometheus вы получите уведомление до краха, а не после.
  • Исторический анализ: Видите закономерности за дни или недели („каждый вторник в 20:00 сервер лагает“) вместо догадок.

Если вы управляете несколькими серверами, это становится еще более ценным. Популярные сообщественные серверы, принимающие игроков с скинами, например, testuser и joakim2tusen, не могут позволить себе простоев, а панели Prometheus позволяют наблюдать за整个 флотом сразу.


Как установить

Процесс замечательно прост, что редко бывает для инструментов мониторинга. Скачайте последний файл JAR из релизов GitHub (текущий v3.1.2) и положите его в папку plugins.

bash
# Загрузите последний релиз
wget https://github.com/sladkoff/minecraft-prometheus-exporter/releases/download/v3.1.2/minecraft-prometheus-exporter-3.1.2.jar

# Переместите в папку plugins
mv minecraft-prometheus-exporter-3.1.2.jar /path/to/plugins/

# Запустите или перезапустите сервер
# (плагин автоматически сгенерирует config.yml при первом запуске)

После запуска сервера откройте `localhost:9940/metrics` в браузере, и вы увидите сырые метрики Prometheus. Если это работает, установка завершена.

По умолчанию используется порт 9940, но его можно изменить в автоматически созданном `config.yml`, если необходимо. Плагин также поддерживает переменные окружения и свойства JVM для конфигурации, что удобно, если вы контейнеризируете все или работаете в управляемой хостинговой среде.


Ключевые функции и как они работают

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

TPS и метрики производительности. Та метрика, которую каждый оператор сервера проверяет первым: текущие тиксы в секунду. Экспортер дает это в реальном времени, плюс исторические данные, чтобы можно было выявлять тенденции. Сервер, стабильно достигающий 19.5 TPS вместо 20, может не показаться плохим, пока не станет ясно, что что-то медленно ухудшается.

Отслеживание игроков и сущностей. Количество онлайн-игроков, количество загруженных сущностей, скорость генерации чанков. Полезно для понимания пиков нагрузки. Внезапно у вас 60 игроков вместо 15, и TPS падает с 20 до 5? Метрики показывают точно, когда и было ли это из-за количества игроков, сущностей, которые они породили, или что-то еще.

Пользовательские проверки здоровья. Здесь все становится гибким. Вы можете написать пользовательские проверки здоровья в ваших плагинах, а экспортер агрегирует их. Хотите получать оповещения, если конкретный плагин не работает? Добавьте проверку здоровья. Хотите отслеживать базу данных вашего плагина экономики? То же самое. Конечная точка здоровья по `localhost:9940/health` открывает эти агрегированные проверки.

Метрики памяти и JVM. Использование куча, частота сборки мусора, количество потоков. Если вы управляете модифицированным сервером или сервером с множеством плагинов (например, сообщественным сервером, принимающим игроков с скинами, как housecz_zero), вам нужно знать, когда память начинает тесниться.

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


Советы, ловушки и распространенные ошибки

Плагин стабилен, но вот, что сбивает с толку людей:

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

Конечная точка метрик по умолчанию не защищена паролем. Если порт сервера 9940 открыт для интернета, любой может видеть ваши метрики. Возможно, это нормально (эти данные не чувствительны), но если вы параноидальны, поместите это за брандмауэр или обратный прокси с аутентификацией.

Некоторые пользователи сообщают, что асинхронные метрики иногда зависают, если цикл жизни плагина не чист. Последняя версия (3.1.2) исправила эту проблему, поэтому убедитесь, что вы обновлены. Если вы используете более старый релиз и замечаете периодические таймауты на конечной точке метрик, сначала обновитесь, прежде чем продолжить отладку.

Еще одно: если вы используете загрузчик модов, такой как Fabric, вместо форка Bukkit, этот плагин не будет работать. И это строго для серверов, совместимых с Bukkit (Paper, Spigot, Bukkit, и экспериментальная поддержка Folia). Плагин требует API Bukkit.


Альтернативы

Если Prometheus кажется вам излишним для вашего случая, есть более легкие варианты. Некоторые провайдеры хостинга (как Aternos) включают встроенные панели, показывающие базовые метрики без необходимости установки чего-либо. Если вы хотите что-то проще, чем Prometheus, можно посмотреть на Grafana Cloud, которая удаляет необходимость самохостинга Prometheus. Но честно говоря, если вы уже используете Prometheus для другой инфраструктуры, плагин Exporter интегрируется гладко в ваш существующий стек.

Для прокси-серверов BungeeCord есть отдельный плагин (Bungeecord Prometheus Exporter), обрабатывающий метрики прокси, что хорошо дополняет этот плагин, если вы управляете сетью.

🔗 GitHub: [sladkoff/minecraft-prometheus-exporter](https://github.com/sladkoff/minecraft-prometheus-exporter) - MIT, ★530
Об авторе
Alexandru Maftei
Alexandru MafteiВедущий автор

Lead writer at minecraft.how. Long-time Minecraft player running a small SMP server, testing every build, mod, and seed before writing about it.

Поделитесь с друзьями!

Комментарии

Пока нет комментариев. Станьте первым, кто поделится своим мнением!

We use cookies to improve your experience. By continuing to use this site, you agree to our use of cookies. Read our Privacy Policy