Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите Как лучше хранить логи чата сервера?

Ken12345

Активный участник
Пользователь
Баллы
61
Мне нужно, чтобы по команде можно было легко найти логи сообщений с фильтрами, введенными как аргументы команды. Будет ли разумно разделить сообщения чата на группы по категориям (общ, лс и т.д.) и хранить в соответствующих таблицах MySQL в формате id | nick | text |.. (в прокси можно отслеживать ивентом каждое сообщения чата и записывать его в бд)? Думаю, сделать запрос в MySQL с условиями "where" будет быстрее, чем считывать каждый файл логов с каждого подсервера.
 
Будет ли разумно разделить сообщения чата на группы по категориям (общ, лс и т.д.)
Да, лучше разделить, потому что структура записей может быть разная.

Думаю, сделать запрос в MySQL с условиями "where" будет быстрее, чем считывать каждый файл логов с каждого подсервера.
Так и есть. Причем дело тут не только в подсерверах, но ещё и в том, что можно задать условие по индексированному полю. А в обычных логах всё одним сплошным текстом, поэтому для проверки условия придется буквально перебирать и анализировать каждую запись
 
Так и есть. Причем дело тут не только в подсерверах, но ещё и в том, что можно задать условие по индексированному полю. А в обычных логах всё одним сплошным текстом, поэтому для проверки условия придется буквально перебирать и анализировать каждую запись
Но сколько такая база будет весить? Одна запись будет (при макс. длине варчара) +-300 байт, если рассчитать с большим запасом, допустим 1к игроков пишут 1 сообщение 24/7 3 месяца, то это уже +-40гб. И это вес только базы чата, без статистики и прочей инфы.

Как вариант еще проделать все также, только заносить не в бд, а в соответствующий txt по категориям, который будет заменяться каждый день на новый, а прошлый архивироваться. Но я бы хотел сделать некие "истории" по некоторым категориям логов, историю транзакций внутриигровой валюты, например. И не думаю что серверу будет хорошо, если несколько игроков запустит поиск истории по всем этим zip-архивам.
 
Последнее редактирование:
Но сколько такая база будет весить? Одна запись будет (при макс. длине варчара) +-300 байт, если рассчитать с большим запасом, допустим 1к игроков пишут 1 сообщение 24/7 3 месяца, то это уже +-40гб. И это вес только базы чата, без статистики и прочей инфы.
Не очень понял, как расчеты велись. При таком объеме каждый из тысячи игроков должен писать ~1500 сообщений в сутки, что на практике кажется абсолютно нереальным значением.

Как вариант еще проделать все также, только заносить не в бд, а в соответствующий txt по категориям, который будет заменяться каждый день на новый, а прошлый архивироваться. Но я бы хотел сделать некие "истории" по некоторым категориям логов, историю транзакций внутриигровой валюты, например. И не думаю что серверу будет хорошо, если несколько игроков запустит поиск истории по всем этим zip-архивам.
Если нужно мощное решение, то лучше сразу использовать logstash для агрегации логов и ClickHouse для их хранения в наиболее оптимальном виде. CH сжимает даже лучше zip как правило.
Ну, и если прям совсем запариться охота, то рекомендую почитать ещё про Grafana и Kibana
 

Поделиться этой страницей

Назад
Верх