Централизованный мониторинг в Grafana для серверов L2

Nirmata

Путник
Участник
Сообщения
8
Розыгрыши
0
Репутация
0
Реакции
6
Баллы
85
Всем привет!

Если вы поддерживаете сервер Lineage 2, то, скорее всего, сталкивались с одной и той же проблемой:

  • заходить по SSH на сервер
  • вручную искать нужный лог через grep или tail -n 50000
  • иногда передавать доступ к серверу тем, кому он вообще не нужен
  • каждый раз это занимает кучу времени
  • разработчикам тоже приходится "лазить" в логи руками, чтобы найти баги или ошибки — особенно когда воспроизвести сложно
  • метрики и логи разбросаны по разным инструментам или их вообще нет, и вы не видите в реальном времени онлайн, активность, трейды, дроп и т.д.

Это неудобно, медленно и небезопасно.




Что я предлагаю​

Устанавливаю и настраиваю систему логирования на базе Grafana + Loki + Promtail, которая решает эту проблему.

Что вы получите:​

  • поиск по логам прямо в браузере: по charId, itemId, имени игрока, действию
  • больше не нужно давать SSH-доступ техподдержке, ГМу или QA — только веб-доступ к логам
  • разделённые логи по категориям: урон, предметы, трейды, скиллы, донат и т.д.
  • Grafana-дашборд с фильтрами, метками и кастомным выводом
  • возможность настроить алерты (например, при ошибках или подозрительной активности)



Что входит в базовую установку:​

  • установка Promtail на геймсервер
  • подключение к Grafana Cloud (в зависимости от вашей нагрузки: бесплатный базовый аккаунт, либо от 19$/мес)
  • настройка сбора логов
  • создание базового лог-дашборда

Время установки — 1-2 дня

Стоимость: $500 (единовременный платеж)




Дополнительно:​

  • расширенная настройка логики ядра (log4j2 + json-логи)
  • добавление метрик в Grafana: онлайн, PvP, трейды, экономика, автофарм и т.д.
  • настройка алертов, Telegram-уведомлений
  • техническая поддержка и сопровождение



Пишите в ЛС или в Telegram: @n1rmataqq
С радостью покажу демо или пришлю скриншоты.
 
Подход правильный и крутой, но для большинства кейсов, для начала нужно рефакторить логирование на стороне сервера в целом, ибо в большинстве кейсов либо не логируется, либо пишется криво (itemadd, а откуда хер поймешь, с бокса, с дропа, с трейда или еще откуда), либо логируется мусор (использование сосок, зачисление каждой адены с каждого моба и т.д.) Либо не логируется вообще, что так же частая проблема.

Я уже молчу про мусор в логах.

Сами используем ELK stack для этих целей.

PS: Было бы круто увидеть ваши решения дашбордов, метрик и графиков
 

полностью согласен - в большинстве случаев сначала нужно наводить порядок в самой системе логов.

если не трудно, для обмена опытом, можете рассказать подробнее:
почему выбрали именно ELK? между чем выбирали?
какой у вас примерно объём логов в сутки? у вас on-prem или в облаке?
 
grafana используем для мониторинга состояния машины, утечки памяти, нагрузка цпу, место на диске, состояние сети и т.д.
Что касаему elk, просто было предложение либо через графану либо через кибану логи делать, решили кибану ставить ну в связке полной elk вот и все.
У нас отдельный сервер логов, где крутится вся эта богодельня с 2тб дисками под логи на сколько я помню, на 200кк записей примерно 30гб места жрет. это примерно 2 недели логов, соответственно около 2гб и 15кк записей в день. Это уже более менее оптимизированое пространство. Используя старндартную систему логирования какой-то овероподобной сборки, это будет около 30-50гб логов в день без информативности абсолютной, а просто 99% логов будет мусор, и сответствующее количество записей
 
Мне интересно что вы считаете мусором и наоборот, ценными логами? Если возможно, привидите примеры.

Нa своем проекте я использую как докер с обычными логами, так и интеграцию с любыми OTEL-поддерживаюшими сервисами (тут много чего, но я использую OpenObserve). Мне интересно знать как другие люди используют такие системы которые вы делаете, я не против перенять некоторый опыт. Например вы говорили про алерты, чем они могут быть полезны в констексте серверов линейки? Или же те же самые поиски информации? Что обычно полезно искать?
 
основной мусор в логах - формируют предметы, в примере с java серверами - это использование сосок и зачисление адены, которое меньше определенного количества. к примеру дроп с моба 100 аден - нет смысла логировать, есть смысл логировать изменение адены в других местах (удаление, передача, покупка предметов и т.д.) так же я выше писал, что в большинстве сборок, изменение количества предметов (добавление или удаление определенного количества) ограничивается логом AddItem, DeleteItem, что без источника операции - не несет никакой смысловой нагрузки, просмотр транзакций невозможна как цельной единицы, т.к. условных txid понятия в целом не существует в логах.

Действительно, поиск информации в логах игроков л2. Зачем это еще нужно)
 
Я не про то что нужнo или нет. А про именно те ситуации когда нужно искать то или другое в логах сервера. Я понимаю что можно найти информацию o том какие предметы персонаж получил или же передал. Но для меня важно найти как улучшить сам процесс поиска. Например то что вы описали о ненужных сообщениях, это добавляет информацию которая по сути не может использоваться для понимания что конкретно произошло. А что тогда важнее? Добавка подробного описания? И только для операций по предметам? Как насчет других функций сервера?
 
Основа всего - предметы, от предметов танцует экономика, монетизация, дошики ловятся по паттернам, саппорт весь на этом построен, не добросовестные продажные клы и стримеры ловятся на заюзе кодов, строится статистика по донатам, строится статистика по кланам и клам в т.ч. реферальная систем и т.д. - спектр применения безграничен, если предметы не логируются детально, смысла в такой системе логирования нет, пользуйтесь дальше стандартной системой логов в файлы)

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

Пока грустный какой-то обмен опытом, вижу только "дайте мне рабочий кейс под реализацию основываясь на ваших собаках которые вы съели"
 
Почему бы на это не посмотреть с точки зрения потребителя? Вы оказываете платные услуги. Но вы не хотите показать примеры того как вашa услуга поможет решить определенные проблемы для пользователя. Или же не можете почему-то рассказать и показать как вы готовы решать определенную проблему (например про те же алерты) o которой пользователь даже и не знает. Так где же опыт?
 
Внимательно прочитайте тему и кто ТС)
 
Внимательно прочитайте тему и кто ТС)
И мне что, теперь вам сказать про то что вы можете перечитать что я уже написал? У вас только перечень вещей. Нет ни примеров, ни рассказа о примерах проблем которыe вы уже решили. Только циферки и технологии.
 
Не очень понимаю откуда берется такая оценка работы. Я сделал аналогичное за те же два дня, не имея опыта вообще, еще и все логи отрефакторил в проекте. Плюсом еще и все дефолтные exporter'ы поставил для бд/хоста и свой добавил в gameserver, так как не хватило обычного jvm. И даже больше - это все не в облако, а на разные хосты - с потраченным временем на их базовую настройку, установку
 
Последнее редактирование:
проблемы, которые решаются централизованным хранилищем логов, я описал в теме. про алерты не так много сказано, но если кратко - вся суть исходит из названия. благодаря алертам, вы максимально быстро получаете уведомление, если на сервере что-то пошло не так: критические ошибки, кто-то получил подозрительное кол-во итемов за раз, кто-то не смог купить что-то в донат магазине. алерты ограничены только вашей фантазией.

вся эта система сводится к простому "Customer experience", т.е ваш саппорт выходит на совершенно новый уровень, как по скорости, так и по качеству
 
Я не против мемов. Но у меня ведь конкретные вопросы. Если вам не охота вести диалог, то вы можете просто так и сказать. Зачем этот цирк? Если не хотите продавать ваши услуги то можно без вопросов. Я так думаю что тут и продaвать то нечего, исходя из описанного опыта.
 
Хотя я может и ошибаюсь, и это не относится к этому разделу, но вроде как обсуждать цены запрещено, можешь дешевле - создай конкуренцию, тем-более большинство админов все еще чекают логи в notepad++ руками)))
 
проблема on-prem хоста в том, что на нормальной нагрузке, накидав конфиг Loki через ГПТ, вы очень быстро поймете, что при условных 10кк логов в сутки, вы не можете обработать поисковый запрос в графане за несколько суток.
не спорю, в знающих руках можно настроить on-prem решение дешевле
 
Я коненчо не эксперт в командах крупных проектов - но есть подозрение, что крупые проекты давно себе настроили все. Им как минимум нужно инциденты расследовать. А у остальных 90% проектов нет столько логов(при адекватном логировании), так что им надо все простое и дешевое, так что может стоит подумать над такой версией услуги(докер образ со всем вместе + конфиг для формата логов). А там дальше уже лично купят доп услуги по дешбордам, метрикам и алертам) а так удачи, может кто обратит внимание и перестанет хранить логи в postgres
 
Про алерты поподробнее. Мне интереснa эта темa. Но я покa не знаю как таки aлерты применить на игровом сервере. Например какие алерты вы видели были использованны ранее вашими пользователями. Да и к слову, я не против ваших сервисов. Немного перепутал вас с другими очень говорливыми соседями.
 
самый базовый вариант: отслеживать состояние железа (cpu, ram, диск). при переходе определенного порога, вы тут же получаете нотификацию в удобный канал связи (тг, дискорд, имейл и тп). т.е вы можете понять, что с железом что-то не так, до того, как сервер упадет от OOM или закончившегося места на диске.

еще вариант: вы получаете нотификацию, что в ядре посыпались ошибки, условно 20 ошибок за последние 10 минут - вы начинаете расследовать инцидент до того, как игроки завалили вас сообщениями "Админ все сломалось".

также целая россыпь "игровых" алертов: большие разовые передачи адены, много неудачных логинов подряд с одного IP (попытка брута?) и тп. тут уже ваша фантазия
 
Данный сайт использует cookie. Вы должны принять их для продолжения использования. Узнать больше…