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

Делаем лог-систему для 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. Обычный тест с использованием этого фреймворка выглядит так:

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

Заключение

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

Источник

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

Что такое логи сервера майнкрафт. Смотреть фото Что такое логи сервера майнкрафт. Смотреть картинку Что такое логи сервера майнкрафт. Картинка про Что такое логи сервера майнкрафт. Фото Что такое логи сервера майнкрафт

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

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

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

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

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

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

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

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

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

Что такое логи сервера майнкрафт. Смотреть фото Что такое логи сервера майнкрафт. Смотреть картинку Что такое логи сервера майнкрафт. Картинка про Что такое логи сервера майнкрафт. Фото Что такое логи сервера майнкрафт

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

Что такое логи сервера майнкрафт. Смотреть фото Что такое логи сервера майнкрафт. Смотреть картинку Что такое логи сервера майнкрафт. Картинка про Что такое логи сервера майнкрафт. Фото Что такое логи сервера майнкрафт

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

Что такое логи сервера майнкрафт. Смотреть фото Что такое логи сервера майнкрафт. Смотреть картинку Что такое логи сервера майнкрафт. Картинка про Что такое логи сервера майнкрафт. Фото Что такое логи сервера майнкрафт

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

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

Что такое логи сервера майнкрафт. Смотреть фото Что такое логи сервера майнкрафт. Смотреть картинку Что такое логи сервера майнкрафт. Картинка про Что такое логи сервера майнкрафт. Фото Что такое логи сервера майнкрафт

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

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

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

Источник

Что такое логи сервера майнкрафт. Смотреть фото Что такое логи сервера майнкрафт. Смотреть картинку Что такое логи сервера майнкрафт. Картинка про Что такое логи сервера майнкрафт. Фото Что такое логи сервера майнкрафт

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

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

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

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

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

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

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

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

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

Что такое логи сервера майнкрафт. Смотреть фото Что такое логи сервера майнкрафт. Смотреть картинку Что такое логи сервера майнкрафт. Картинка про Что такое логи сервера майнкрафт. Фото Что такое логи сервера майнкрафт

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

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

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

Источник

Логи сервера

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

Для контроля и анализа всего этого и ведутся логи.

Что такое logs server или логи сервера? Это текстовые файлы, в которых протоколируется информация о всех событиях на сервере. Log server переводится как «журнал сервера». Запись информации проводится автоматически.

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

Виды логов

Существует несколько типов логов сервера:

Каждое ПО часто ведет свои собственные логи. Так, на сервере хостинга отдельно протоколируются события:

Где можно найти логи сервера

Посмотреть логи сервера можно:

Что касается панели хостинга, то здесь логи часто размещают прямо в веб-интерфейсе панели, в разделах с аналогичным названием: «лог FTP-сервера», «лог ошибок сайта». Точное расположение разделов можно посмотреть в справке или уточнить у техподдержки.

На виртуальном или выделенном сервере журналы сервера ищем на жёстком диске. В зависимости от типа сервера, операционной системы, настроек программного обеспечения точное местоположение может быть разным — уточните у техподдержки, где искать тот или иной лог. Но есть универсальные моменты, которые помогут вам найти логи самостоятельно:

Зачем нужно смотреть логи?

Часто о логах никто не вспоминает, пока не появляются проблемы: сайт тормозит, сайт взломали. Правильнее смотреть логи сервера регулярно. Тем более, многие хостеры хранят некоторые виды логов непродолжительное время: 2 недели, месяц, 3 месяца.

Просматривая логи, можно увидеть:

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

Как читать логи

Логи в панели управления хостингом представлены в удобном виде в виде таблиц. Например, лог FTP-сервера на хостинге содержит колонки:

Логи сервера на жестком диске представляют собой текстовые файлы, в которых в хронологическом порядке записывается информация. Открыть их можно любым текстовым редактором, предпочтительно специализированным, например, Notepad+++. Данные представлены в виде строк с разделителями и на первый взгляд часто выглядят как непонятное смешение символов.

Для удобного чтения можно скачать логи и просмотреть их через специальные программы: Analog, Weblog Expert и другие.

Логи сервера Windows более структурированы и понятны для изучения. В них есть несколько уровней событий: ошибка, предупреждение, информация, подробные сведения. Отдельно выделяются критические события.

Как проверить логи, если у вас VPS-сервер

Пользователям, арендующим VPS-сервер, для доступа к логам можно:

Как проверить логи на хостинге

Расскажем, как найти логи сервера в разных типах панели управления хостингом. Будем искать файлы логов, а не их представление в веб-интерфейсе панели.

В ISPmanager

В Менеджере файлов зайдите в папку logs, найдите и скачайте нужный файл. Просматривайте логи на своем ПК или ноуте.

В CPanel

Аналогично описанному выше, только внутренний файл-менеджер называется «Диспетчер файлов».

В Plesk

Здесь, чтобы зайти в папку logs и загрузить на свой ПК логи, вам нужно войти на вкладку «Файлы».

Источник

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

Что такое логи сервера майнкрафт. Смотреть фото Что такое логи сервера майнкрафт. Смотреть картинку Что такое логи сервера майнкрафт. Картинка про Что такое логи сервера майнкрафт. Фото Что такое логи сервера майнкрафт

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

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

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

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

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

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

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

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

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

Что такое логи сервера майнкрафт. Смотреть фото Что такое логи сервера майнкрафт. Смотреть картинку Что такое логи сервера майнкрафт. Картинка про Что такое логи сервера майнкрафт. Фото Что такое логи сервера майнкрафт

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

Что такое логи сервера майнкрафт. Смотреть фото Что такое логи сервера майнкрафт. Смотреть картинку Что такое логи сервера майнкрафт. Картинка про Что такое логи сервера майнкрафт. Фото Что такое логи сервера майнкрафт

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

Что такое логи сервера майнкрафт. Смотреть фото Что такое логи сервера майнкрафт. Смотреть картинку Что такое логи сервера майнкрафт. Картинка про Что такое логи сервера майнкрафт. Фото Что такое логи сервера майнкрафт

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

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

Что такое логи сервера майнкрафт. Смотреть фото Что такое логи сервера майнкрафт. Смотреть картинку Что такое логи сервера майнкрафт. Картинка про Что такое логи сервера майнкрафт. Фото Что такое логи сервера майнкрафт

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

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

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

Источник

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

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