что такое логи сервера майнкрафт

Делаем лог-систему для Minecraft

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

Minecraft — игра-песочница и на мультиплеер-серверах остро стоит проблема гриферства (от англ. griefing — вредительство), когда игроки рушат чужие постройки. На серверах с этой проблемой справляются по-разному. На публичных используют плагин на ‘приват’, на остальных же все строится на доверии.

Еще один из способов предотвратить гриферство — бан всех гриферов. И для того чтобы вычислить их, приходиться логгировать установку и удаление блоков. Собственно, о процессе создания такой лог-системы и пойдет речь дальше.

Выбор базы данных

Итак, вот у нас массив данных и хорошо бы его куда-то сохранять. Умные люди давно придумали БД. Лично у меня требования к БД были такие:

Последний пункт появился из-за того, что не на всех хостингах есть возможность получить root-доступ или установить какой-либо пакет. К тому же, не хотелось усложнять процедуру установки, а остановиться на «Кинул и забыл».

Базы данных, которые удовлетворяли бы всем критериям я не нашел, поэтому решил сделать свою мини-БД на Java.

что такое логи сервера майнкрафт. картинка что такое логи сервера майнкрафт. что такое логи сервера майнкрафт фото. что такое логи сервера майнкрафт видео. что такое логи сервера майнкрафт смотреть картинку онлайн. смотреть картинку что такое логи сервера майнкрафт.

Оптимизация места на жёстком диске

Основная проблема игры, как считают многие, — все её вычисления происходят в одном потоке. Это настоящая боль держателей серверов. Распараллелить изначально однопоточную архитектуру — надо постараться.

что такое логи сервера майнкрафт. картинка что такое логи сервера майнкрафт. что такое логи сервера майнкрафт фото. что такое логи сервера майнкрафт видео. что такое логи сервера майнкрафт смотреть картинку онлайн. смотреть картинку что такое логи сервера майнкрафт.

Поэтому само логгирование пришлось вынести в отдельный поток. А чтобы система не захлебнулась от Event’ов в очереди, добавить поддержку воркеров. Количество воркеров настраеваемое.

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

что такое логи сервера майнкрафт. картинка что такое логи сервера майнкрафт. что такое логи сервера майнкрафт фото. что такое логи сервера майнкрафт видео. что такое логи сервера майнкрафт смотреть картинку онлайн. смотреть картинку что такое логи сервера майнкрафт.

Оптимизация места на жёстком диске

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

Изначально строчка в логфайле выглядела так:

[2001-07-04T12:08:56.235-0700]Player PLACE to 128,128,128

При беглом взгляде можно заметить, что 2001-07-04T12:08:56.235-0700 можно сократить до Timestamp, а PLACE или REMOVE на символ ‘+’ и ‘-‘ соответственно. Ну и уберем нафиг ‘to’:

Не сложно заметить, что в логе будет часто повторятся nickname и blockid. Соответсвенно, их можно вынести в отдельный файл, а в лог писать только id

[123454678]1 + 1 128,128,128

В итоге я пришел к тому, что в строчке лога остались только числа и один символ. Мы сэкономим много места, если уберем разделители (пробелы) и числа будем записывать как байты, а не как символы. Сообственно, это привело меня к решению использовать байтовые логи.

Сама байтовая строка теперь выглядит так:

NameposXposYposZtypeactionplayeridblockidtimestamp
Field Length (bytes)4 byte4 byte4 byte1 byte (‘0’ for Remove, ‘1’ for Insert)4 byte8 byte8 byte

Итого мы имеем 35 байтов на строку фиксированно (1 байт для разделения строк).
Вначале был соблазн оставить 34 байта, но так как запись ведется в один файл, то в случае с фиксированной длинной, если побьется одна строка, весь файл станет нечитаемым.

Структура строки для blockname to id:

Nameidblockname
Field Length (bytes)8 byte1 byte per symbols

21 байтов на блок
Имя файла: blockmap.bytelog

Структура строки для nickname to id:

Nameidnickname
Field Length (bytes)4 byte1 byte per symbols

10 байтов на игрока
Имя файла: nickmap.bytelog

Оптимизация памяти

Чтобы быстро маппить blockname и nickname в id пришлось держать содержимое обоих файлов в памяти. Java не может в HashMap хранить примитивные типы, поэтому каждый Integer будет стоить нам

50 байт в памяти, что очень много.

Решить эту проблему нам поможет библиотека trove.

Но каждый символ у нас занимает примерно 2 байта. Мы можем снизить потребления памяти с помощью самописного файла ASCIString, в котором символы хранятся в byte[], а не в char[].

Тестирование

В тестировании байтовой сериализации и десериализации ничего необычного нет, а вот для тестирования компонентов, к которым требовался многопоточный доступ пришлось использовать фреймворк от гугла Thread Weaver. Обычный тест с использованием этого фреймворка выглядит так:

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

Заключение

Пока по количеству скачиваний будет понятно стоит ли развивать дальше этот мод и идею. Из примерных планов на будущее:

Источник

что такое логи сервера майнкрафт. картинка что такое логи сервера майнкрафт. что такое логи сервера майнкрафт фото. что такое логи сервера майнкрафт видео. что такое логи сервера майнкрафт смотреть картинку онлайн. смотреть картинку что такое логи сервера майнкрафт.

Данный плагин упростит уход за вашим сервером. С его помощью, вы сможете узнать, кто и когда поставил, разрушил тот или иной блок, откатить действия игроков и многое другое. Проще говоря, он позволит просматривать логи и возвращать состояние блоков, территории, или всего вашего сервера к нужному вам промежутку времени.

Он не требует настроек, сразу же после установки его можно использовать.

Нажатие ЛКМ по верхней части блока, выведет информацию в чат, о том, кем и когда был разрушен блок, который находился над данным. Установив любой блок, вы узнаете информацию о всех блоках, находившиеся ранее на этих координатах.

П ри нажатии ПКМ на любое устройство (кнопка, рычаг, дверь и т.п.) вы узнаете ник игрока, последний использовавший его. Повторный ввод команды /co inspect заканчивает работу с данным плагином. что такое логи сервера майнкрафт. картинка что такое логи сервера майнкрафт. что такое логи сервера майнкрафт фото. что такое логи сервера майнкрафт видео. что такое логи сервера майнкрафт смотреть картинку онлайн. смотреть картинку что такое логи сервера майнкрафт.

Команда для отката изменения блоков: /co rollback u: t: b: e: r:

— u: ник игрока, относительно действий которого, произойдет откат

— b: блок, при указании ID откат затронет только эти блоки

— e: исключение, при указании ID, блок останется нетронутым

— r: радиус, относительно вашего положения, в котором произойдет откат

что такое логи сервера майнкрафт. картинка что такое логи сервера майнкрафт. что такое логи сервера майнкрафт фото. что такое логи сервера майнкрафт видео. что такое логи сервера майнкрафт смотреть картинку онлайн. смотреть картинку что такое логи сервера майнкрафт.

Другие команды плагина :

/co lookup u: t: b: e: r: — просмотр логов по параметрам

/co purge — очистить информацию о блоках за один или несколько месяцев.

Источник

Как читать логи сервера

что такое логи сервера майнкрафт. картинка что такое логи сервера майнкрафт. что такое логи сервера майнкрафт фото. что такое логи сервера майнкрафт видео. что такое логи сервера майнкрафт смотреть картинку онлайн. смотреть картинку что такое логи сервера майнкрафт.

Что такое логи?

Краткая справка из Википедии:

Файл регистрации, протокол, журнал или лог (англ. log) — файл с записями о событиях в хронологическом порядке. Различают регистрацию внешних событий и протоколирование работы самой программы, источника записей (хотя часто всё записывается в единый файл). Например, в лог-файлы веб-сервера записывается информация, откуда пришёл тот либо иной посетитель, когда и сколько времени он провел на сайте, что там смотрел и скачивал, какой у него браузер и какой IP-адрес у его компьютера.

Для чего нужны логи?

Обычно при нормально работающем сайте лог-файлами мало кто интересуется, но когда начинает расти нагрузка на сервер, запускается рассылка спама, а сайт начинает вести себя довольно странно или изобиловать ошибками, без логов не обойтись.

Как включить запись логов?

Обычно для экономии дискового пространства ведение логов на хостинге выключено.

Приведу включение записи на примере панели управления хостингом Timeweb.

В панели управления переходим во вкладку «Логи», выбираем из выпадающего сайта нужный (если их несколько) и активируем ползунок «Лог доступа (access_log)»

что такое логи сервера майнкрафт. картинка что такое логи сервера майнкрафт. что такое логи сервера майнкрафт фото. что такое логи сервера майнкрафт видео. что такое логи сервера майнкрафт смотреть картинку онлайн. смотреть картинку что такое логи сервера майнкрафт.

Примерно через час, когда накопится достаточное количество записей, переходим в директорию сайта и скачиваем файл.

что такое логи сервера майнкрафт. картинка что такое логи сервера майнкрафт. что такое логи сервера майнкрафт фото. что такое логи сервера майнкрафт видео. что такое логи сервера майнкрафт смотреть картинку онлайн. смотреть картинку что такое логи сервера майнкрафт.

Открываем в любом текстовом редакторе (на примере второй столбец, с адресом сайта закрашен).

что такое логи сервера майнкрафт. картинка что такое логи сервера майнкрафт. что такое логи сервера майнкрафт фото. что такое логи сервера майнкрафт видео. что такое логи сервера майнкрафт смотреть картинку онлайн. смотреть картинку что такое логи сервера майнкрафт.

Разберем для примера строку № 49

Даже при беглом взгляде видно, что с адреса 85.93.93.102 идет множество запросов. Обращение было как раз по чрезмерной нагрузке на сайт. Как только адрес бота Linguee Bot был запрещен, нагрузка практически сразу вернулась в норму.

что такое логи сервера майнкрафт. картинка что такое логи сервера майнкрафт. что такое логи сервера майнкрафт фото. что такое логи сервера майнкрафт видео. что такое логи сервера майнкрафт смотреть картинку онлайн. смотреть картинку что такое логи сервера майнкрафт.

И все за несколько минут, благодаря логам; без них на выяснение причины понадобилось бы гораздо больше времени. Также были замечены обращения по адресам, содержавшим вставки типа xd0\xbe\xd1\x82\xd0\xb7\ …

Тот, кто занимается «лечением» сайтов, знает, что подобные запросы могут создавать запредельные нагрузки на сервер.

Иногда самые простые методы – самые действенные, а защита на уровне сервера самая надежная.

Источник

Где посмотреть и как читать логи с ошибками сервера

что такое логи сервера майнкрафт. картинка что такое логи сервера майнкрафт. что такое логи сервера майнкрафт фото. что такое логи сервера майнкрафт видео. что такое логи сервера майнкрафт смотреть картинку онлайн. смотреть картинку что такое логи сервера майнкрафт.

Блоги, форумы, посадочные страницы и другие интернет-ресурсы представляют собой совокупность графического, текстового, аудио- и видео-контента, размещенного на веб-страницах в виде кода. Чтобы обеспечить к ним доступ пользователей через интернет, файлы размещают на серверах. Это аппаратное обеспечение (персональный компьютер или рабочая станция), на жестком диске которого и хранится код. Ключевые функции выполняются без участия человека, что актуально для всех типов оборудования, включая виртуальный выделенный сервер. Но это не означает, что контроль не осуществляется. Большинство событий, которые происходят при участии оборудования, пользователей и софта, включая ошибки, логи сервера фиксируют и сохраняют. Из этой статьи вы узнаете, что они собой представляют, зачем нужны, и как их читать.

что такое логи сервера майнкрафт. картинка что такое логи сервера майнкрафт. что такое логи сервера майнкрафт фото. что такое логи сервера майнкрафт видео. что такое логи сервера майнкрафт смотреть картинку онлайн. смотреть картинку что такое логи сервера майнкрафт.

Что такое логи

Это текстовые файлы, которые хранятся на жестком диске сервера. Создаются и заполняются в автоматическом режиме, в хронологическом порядке. В них записываются:

Посмотреть логи сервера может каждый, у кого есть к ним доступ, но непосвященному обывателю этот набор символов может показаться бессмысленным. Интерпретировать записи и получить пользу после прочтения проще профессионалу.

Классификация логов

Для каждой разновидности софта предусмотрены соответствующие файлы. Все логи сервера могут храниться на одном диске или даже на отдельном сервере. Существует довольно много разновидностей логов, вот наиболее распространенные:

Записи в системные журналы выполняет установленный софт.

что такое логи сервера майнкрафт. картинка что такое логи сервера майнкрафт. что такое логи сервера майнкрафт фото. что такое логи сервера майнкрафт видео. что такое логи сервера майнкрафт смотреть картинку онлайн. смотреть картинку что такое логи сервера майнкрафт.

Зачем нужны логи

Анализ логов сервера — неотъемлемая часть работы системного администратора или веб-разработчика. Обрабатывая их, специалисты получают массу полезных сведений. Используются в следующих целях:

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *