1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем Ken12345, 1 июл 2023.

  1. Автор темы
    Ken12345

    Ken12345 Активный участник Пользователь

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

    Dymeth Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Да, лучше разделить, потому что структура записей может быть разная.

    Так и есть. Причем дело тут не только в подсерверах, но ещё и в том, что можно задать условие по индексированному полю. А в обычных логах всё одним сплошным текстом, поэтому для проверки условия придется буквально перебирать и анализировать каждую запись
     
  3. Автор темы
    Ken12345

    Ken12345 Активный участник Пользователь

    Баллы:
    61
    Но сколько такая база будет весить? Одна запись будет (при макс. длине варчара) +-300 байт, если рассчитать с большим запасом, допустим 1к игроков пишут 1 сообщение 24/7 3 месяца, то это уже +-40гб. И это вес только базы чата, без статистики и прочей инфы.

    Как вариант еще проделать все также, только заносить не в бд, а в соответствующий txt по категориям, который будет заменяться каждый день на новый, а прошлый архивироваться. Но я бы хотел сделать некие "истории" по некоторым категориям логов, историю транзакций внутриигровой валюты, например. И не думаю что серверу будет хорошо, если несколько игроков запустит поиск истории по всем этим zip-архивам.
     
    Последнее редактирование: 2 июл 2023
  4. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Не очень понял, как расчеты велись. При таком объеме каждый из тысячи игроков должен писать ~1500 сообщений в сутки, что на практике кажется абсолютно нереальным значением.

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

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