Как читать логи GTA-сервера и находить причины ошибок и сбоев
Логи GTA-сервера помогают определить, почему сервер не запускается, какой ресурс вызывает ошибку, почему пропало соединение с базой данных и что произошло перед внезапным отключением процесса. Вместо случайной переустановки файлов следует найти первое значимое сообщение об ошибке, сопоставить его со временем сбоя и проверить связанные системные журналы.
В этой инструкции рассмотрено чтение журналов серверов CRMP, SA-MP, open.mp, FiveM и других GTA-платформ. Вы узнаете, где искать логи на Linux и Windows, как анализировать ошибки запуска, плагины и ресурсы, проверять MySQL или MariaDB, находить нехватку памяти, ошибки портов, аварийные завершения и повторные перезапуски.
Пути, названия служб, процессов, файлов и баз данных в примерах необходимо заменить на используемые в вашем проекте. Перед удалением или очисткой журналов сохраните копию файлов, относящихся к проблемному периоду.
Контроль сервера и уведомления о сбоях:
Если сервер работает медленно:
Перед исправлением файлов и базы:
Для чего нужны логи GTA-сервера
Поиск причины отказа запуска
Журнал показывает последовательность загрузки конфигурации, игрового режима, плагинов, ресурсов и подключения к базе данных.
Поиск причины падения
Последние сообщения перед завершением процесса помогают определить:
- ошибочный ресурс;
- необработанное исключение;
- отсутствующую функцию;
- проблему плагина;
- нехватку памяти;
- ошибку базы;
- аварийное завершение системы;
- принудительную остановку администратором.
Поиск повторяющихся ошибок
Одно предупреждение может быть безвредным. Тысячи одинаковых сообщений в минуту способны заполнить диск и указывать на постоянную ошибку скрипта.
Анализ действий администратора
Панель управления может сохранять:
- запуски и остановки сервера;
- перезапуски ресурсов;
- изменения конфигурации;
- команды консоли;
- входы администраторов;
- блокировки и исключения игроков.
Сопоставление с жалобами игроков
Точное время проблемы позволяет проверить, что происходило на сервере в момент зависания, отключения или потери данных.
Основные виды журналов
Журнал игрового сервера
Содержит запуск ядра, загрузку игрового режима, подключение игроков, сообщения скриптов и ошибки выполнения.
Журнал службы
Показывает запуск через systemd, код завершения, сигнал остановки, автоматические перезапуски и ошибки рабочего каталога.
Журнал операционной системы
Содержит сообщения ядра, нехватку памяти, ошибки диска, сетевого интерфейса и завершение процессов.
Журнал базы данных
Показывает ошибки запуска MySQL или MariaDB, отказы авторизации, повреждение таблиц и другие события базы.
Slow query log
Сохраняет SQL-запросы, выполнение которых превысило заданный порог.
Журнал веб-панели
Содержит действия администраторов, ошибки HTTP, авторизацию и управление игровым процессом.
Crash dump
Дамп аварии содержит техническое состояние процесса в момент падения и используется для более глубокой диагностики.
Правильный порядок диагностики
- Запишите точное время возникновения проблемы.
- Определите, что именно перестало работать.
- Проверьте состояние игрового процесса.
- Посмотрите последние строки основного журнала.
- Найдите первое сообщение Error или Fatal.
- Проверьте связанные сообщения до и после него.
- Посмотрите журнал службы или Windows Events.
- Проверьте журнал ядра и нехватку памяти.
- Проверьте MySQL или MariaDB.
- Сравните событие с последним обновлением.
- Отключите подозрительный ресурс на тестовой копии.
- Повторите ошибку и сравните журналы.
Сначала определите область проблемы
Сервер не запускается
→ конфигурация, ядро, игровой режим, плагины
Сервер запускается, но ресурс не работает
→ журнал конкретного ресурса и зависимости
Игрок не входит
→ сеть, авторизация, база, игровой скрипт
Сервер внезапно завершился
→ systemd, Event Viewer, OOM, crash dump
Сервер завис, но процесс существует
→ profiler, CPU, диск, SQL и сетевые запросы
Как найти настоящую причину ошибки
Последняя строка журнала не всегда является причиной. Она может быть лишь последствием более ранней ошибки.
Пример цепочки
ERROR: Connection to database failed
WARNING: Account system was not initialized
ERROR: Player data is unavailable
Server shutting down
Причина находится в первой строке — сервер не подключился к базе. Остальные сообщения появились вследствие этой ошибки.
Ищите первое значимое сообщение
ERROR;FATAL;EXCEPTION;FAILED;CRASH;SEGFAULT;ACCESS DENIED;OUT OF MEMORY;ADDRESS ALREADY IN USE.
Читайте контекст
Просматривайте не одну строку, а хотя бы 20–50 строк до и после найденного сообщения.
Предупреждение не всегда критично
Сообщение Warning требует внимания, но сервер может продолжать работу. Fatal или необработанное исключение чаще приводит к остановке компонента.
Сопоставление журналов по времени
Все системы должны использовать правильно настроенное время. Иначе сообщения игрового сервера, базы и операционной системы невозможно точно сопоставить.
Проверка времени Linux
timedatectl
Включение синхронизации
sudo timedatectl set-ntp true
Проверка Windows
Get-Date
w32tm /query /status
Пример сопоставления
22:15:03 — игрок выполнил команду
22:15:03 — начался SQL-запрос
22:15:08 — запрос завершился ошибкой
22:15:08 — игровой цикл завис
22:15:12 — внешний мониторинг сообщил Offline
22:15:20 — systemd перезапустил процесс
Учитывайте часовой пояс
MySQL, systemd, панель и игровой сервер могут записывать время в UTC или в часовом поясе системы.
Просмотр файлов журнала на Linux
Последние строки
tail -n 100 \
/opt/gta-server/server_log.txt
Наблюдение в реальном времени
tail -f \
/opt/gta-server/server_log.txt
Просмотр начала файла
head -n 100 \
/opt/gta-server/server_log.txt
Чтение через less
less \
/opt/gta-server/server_log.txt
Переход в конец файла
less +G \
/opt/gta-server/server_log.txt
Поиск внутри less
/error
Для перехода к следующему совпадению нажмите n.
Поиск файлов логов
find /opt/gta-server \
-type f \
\( -iname "*.log" \
-o -iname "*crash*" \
-o -iname "*error*" \)
Проверка даты изменения
stat \
/opt/gta-server/server_log.txt
Просмотр журнала GTA-сервера через systemd
Состояние службы
sudo systemctl status \
gta-server.service
Последние 200 записей
sudo journalctl \
-u gta-server.service \
-n 200 \
--no-pager
Наблюдение в реальном времени
sudo journalctl \
-u gta-server.service \
-f
Сообщения за текущую загрузку
sudo journalctl \
-u gta-server.service \
-b
Сообщения после указанного времени
sudo journalctl \
-u gta-server.service \
--since "2026-07-31 20:00:00"
Промежуток времени
sudo journalctl \
-u gta-server.service \
--since "2026-07-31 20:00:00" \
--until "2026-07-31 20:30:00"
Только ошибки
sudo journalctl \
-u gta-server.service \
-p err \
--no-pager
Показать полные строки
sudo journalctl \
-u gta-server.service \
-o cat \
--no-pager
Что искать в systemd
code=exited;status=1/FAILURE;status=203/EXEC;status=200/CHDIR;signal=SEGV;start request repeated too quickly;permission denied;no such file or directory.
Код 203/EXEC
Обычно означает, что systemd не смог выполнить файл. Проверьте путь, права запуска, владельца и совместимость исполняемого файла.
Код 200/CHDIR
Обычно указывает на ошибочный или недоступный WorkingDirectory.
Логи предыдущей загрузки Linux
Если VPS перезагрузился, журнал текущей загрузки может не содержать причину предыдущего отключения.
Список загрузок
sudo journalctl \
--list-boots
Журнал предыдущей загрузки
sudo journalctl \
-b -1 \
--no-pager
Предыдущая загрузка конкретной службы
sudo journalctl \
-u gta-server.service \
-b -1 \
--no-pager
Сообщения ядра предыдущей загрузки
sudo journalctl \
-k \
-b -1 \
--no-pager
Признаки аварийного отключения
- нет сообщения о корректной остановке;
- журнал внезапно обрывается;
- перед концом есть OOM или ошибка диска;
- после загрузки система сообщает о восстановлении файловой системы;
- провайдер зафиксировал перезагрузку узла.
Постоянное хранение journald
На некоторых системах журнал хранится только до перезагрузки. Для постоянного хранения проверьте конфигурацию journald и доступное место на диске.
Просмотр логов GTA-сервера на Windows
Основной файл сервера
Сначала найдите файлы:
server_log.txt
crashinfo.txt
*.log
*.dmp
Последние строки PowerShell
Get-Content `
"C:\GTA-Server\server_log.txt" `
-Tail 100
Наблюдение в реальном времени
Get-Content `
"C:\GTA-Server\server_log.txt" `
-Wait `
-Tail 30
Поиск ошибок
Select-String `
-Path "C:\GTA-Server\*.log" `
-Pattern "error|fatal|exception|failed|crash" `
-CaseSensitive:$false
Просмотр событий Windows
Откройте:
Просмотр событий
→ Журналы Windows
→ Приложение
→ Система
Ошибки приложения PowerShell
Get-WinEvent `
-FilterHashtable @{
LogName = "Application"
Level = 2
StartTime = (Get-Date).AddHours(-2)
} |
Select-Object `
TimeCreated,
ProviderName,
Id,
Message
Системные ошибки
Get-WinEvent `
-FilterHashtable @{
LogName = "System"
Level = 2
StartTime = (Get-Date).AddHours(-2)
} |
Select-Object `
TimeCreated,
ProviderName,
Id,
Message
Что искать
- Application Error;
- Windows Error Reporting;
- неисправный модуль DLL;
- код исключения;
- сбой диска;
- принудительное завершение процесса;
- перезапуск системы;
- ошибку службы.
Логи SA-MP, CRMP и open.mp
Основной журнал
server_log.txt
В нём обычно отображаются:
- версия серверного ядра;
- чтение конфигурации;
- загрузка плагинов;
- загрузка игрового режима;
- запуск filterscript;
- подключение к базе;
- подключения и отключения игроков;
- сообщения
printиprintf; - runtime errors;
- штатное завершение.
Журнал аварии
crashinfo.txt
Если сервер внезапно завершился, этот файл может содержать дополнительные сведения об аварии.
Просмотр конца основного лога
tail -n 150 \
server_log.txt
Поиск runtime errors
grep -inE \
'runtime error|error|warning|failed|crash' \
server_log.txt
Временные метки
Включённые метки времени помогают сопоставить ошибку с systemd, базой данных и мониторингом.
Не очищайте журнал сразу после падения
Сначала скопируйте server_log.txt, crashinfo.txt, конфигурацию и сведения о версии сборки.
Ошибки запуска SA-MP и open.mp
Игровой режим не найден
I couldn't load any gamemode scripts.
Please verify your server.cfg
Проверьте
- существует ли файл AMX;
- правильно ли написано имя;
- совпадает ли регистр букв на Linux;
- не появился ли лишний уровень папок;
- доступен ли файл пользователю сервера;
- успешно ли скомпилирован скрипт.
Пример server.cfg
gamemode0 roleplay 1
Файл должен существовать
gamemodes/roleplay.amx
Ошибка конфигурации
Проверьте неизвестные параметры, неправильные значения, повреждённые кавычки и случайно объединённые строки.
Пустой или повреждённый AMX
ls -lh \
gamemodes/roleplay.amx
Повторная компиляция
Скомпилируйте исходник подходящей версией компилятора и изучите все предупреждения и ошибки компиляции.
Ошибки загрузки плагинов
Типичные сообщения
Plugin failed to load
Failed to load plugin
Cannot open shared object file
The specified module could not be found
Wrong ELF class
Invalid ELF header
На Linux проверьте расширение
plugins/mysql.so
plugins/streamer.so
plugins/sscanf.so
На Windows
plugins\mysql.dll
plugins\streamer.dll
plugins\sscanf.dll
Проверка зависимостей Linux
ldd \
plugins/mysql.so
Отсутствующая библиотека
libexample.so => not found
Проверьте архитектуру
file \
plugins/mysql.so
Частые причины
- Windows DLL используется на Linux;
- Linux SO используется на Windows;
- несовпадение x86 и x64;
- отсутствует системная библиотека;
- плагин несовместим с ядром;
- неверно написано имя файла;
- файл заблокирован антивирусом;
- плагин повреждён.
Runtime errors и отладка игрового режима
Runtime error 19
Run time error 19:
"File or function is not found"
Часто означает отсутствие функции, которую должен предоставить плагин, либо несовместимую версию плагина.
Runtime error 4
Run time error 4:
"Array index out of bounds"
Скрипт обратился к элементу за пределами массива.
Runtime error 3
Run time error 3:
"Stack/heap collision"
Возможны слишком большие локальные массивы, глубокая рекурсия или недостаточный объём памяти AMX.
Runtime error 6
Run time error 6:
"Invalid instruction"
Возможны повреждение AMX, несовместимость ядра или ошибка выполнения.
Для подробного стека
- используйте подходящий crash detect;
- компилируйте тестовую сборку с отладочной информацией;
- сохраняйте точную версию PWN и AMX;
- не публикуйте отладочную сборку без необходимости.
Исправляйте первую строку стека
Она обычно указывает на функцию, в которой началась ошибка. Последующие вызовы показывают путь выполнения.
Ошибки игрового порта
Типичное сообщение Linux
Address already in use
Проверьте занятый порт
sudo ss -lntup |
grep -E ':7777|:30120'
Найдите процесс
sudo lsof \
-i :7777
Возможные причины
- уже запущена другая копия сервера;
- после падения панель запустила второй процесс;
- порт занят другим приложением;
- два профиля используют одинаковый порт;
- сервер привязан к отсутствующему IP;
- ошибочно указан протокол.
Connection refused
Обычно означает, что на указанном TCP-порту никто не принимает соединение либо firewall явно отклоняет запрос.
Timeout
Чаще означает отсутствие ответа из-за firewall, маршрутизации, неверного IP или недоступного сервера.
Просмотр журнала GTA-сервера через systemd
Состояние службы
sudo systemctl status \
gta-server.service
Последние 200 записей
sudo journalctl \
-u gta-server.service \
-n 200 \
--no-pager
Наблюдение в реальном времени
sudo journalctl \
-u gta-server.service \
-f
Сообщения за текущую загрузку
sudo journalctl \
-u gta-server.service \
-b
Сообщения после указанного времени
sudo journalctl \
-u gta-server.service \
--since "2026-07-31 20:00:00"
Промежуток времени
sudo journalctl \
-u gta-server.service \
--since "2026-07-31 20:00:00" \
--until "2026-07-31 20:30:00"
Только ошибки
sudo journalctl \
-u gta-server.service \
-p err \
--no-pager
Показать полные строки
sudo journalctl \
-u gta-server.service \
-o cat \
--no-pager
Что искать в systemd
code=exited;status=1/FAILURE;status=203/EXEC;status=200/CHDIR;signal=SEGV;start request repeated too quickly;permission denied;no such file or directory.
Код 203/EXEC
Обычно означает, что systemd не смог выполнить файл. Проверьте путь, права запуска, владельца и совместимость исполняемого файла.
Код 200/CHDIR
Обычно указывает на ошибочный или недоступный WorkingDirectory.
Логи предыдущей загрузки Linux
Если VPS перезагрузился, журнал текущей загрузки может не содержать причину предыдущего отключения.
Список загрузок
sudo journalctl \
--list-boots
Журнал предыдущей загрузки
sudo journalctl \
-b -1 \
--no-pager
Предыдущая загрузка конкретной службы
sudo journalctl \
-u gta-server.service \
-b -1 \
--no-pager
Сообщения ядра предыдущей загрузки
sudo journalctl \
-k \
-b -1 \
--no-pager
Признаки аварийного отключения
- нет сообщения о корректной остановке;
- журнал внезапно обрывается;
- перед концом есть OOM или ошибка диска;
- после загрузки система сообщает о восстановлении файловой системы;
- провайдер зафиксировал перезагрузку узла.
Постоянное хранение journald
На некоторых системах журнал хранится только до перезагрузки. Для постоянного хранения проверьте конфигурацию journald и доступное место на диске.
Просмотр логов GTA-сервера на Windows
Основной файл сервера
Сначала найдите файлы:
server_log.txt
crashinfo.txt
*.log
*.dmp
Последние строки PowerShell
Get-Content `
"C:\GTA-Server\server_log.txt" `
-Tail 100
Наблюдение в реальном времени
Get-Content `
"C:\GTA-Server\server_log.txt" `
-Wait `
-Tail 30
Поиск ошибок
Select-String `
-Path "C:\GTA-Server\*.log" `
-Pattern "error|fatal|exception|failed|crash" `
-CaseSensitive:$false
Просмотр событий Windows
Откройте:
Просмотр событий
→ Журналы Windows
→ Приложение
→ Система
Ошибки приложения PowerShell
Get-WinEvent `
-FilterHashtable @{
LogName = "Application"
Level = 2
StartTime = (Get-Date).AddHours(-2)
} |
Select-Object `
TimeCreated,
ProviderName,
Id,
Message
Системные ошибки
Get-WinEvent `
-FilterHashtable @{
LogName = "System"
Level = 2
StartTime = (Get-Date).AddHours(-2)
} |
Select-Object `
TimeCreated,
ProviderName,
Id,
Message
Что искать
- Application Error;
- Windows Error Reporting;
- неисправный модуль DLL;
- код исключения;
- сбой диска;
- принудительное завершение процесса;
- перезапуск системы;
- ошибку службы.
Логи SA-MP, CRMP и open.mp
Основной журнал
server_log.txt
В нём обычно отображаются:
- версия серверного ядра;
- чтение конфигурации;
- загрузка плагинов;
- загрузка игрового режима;
- запуск filterscript;
- подключение к базе;
- подключения и отключения игроков;
- сообщения
printиprintf; - runtime errors;
- штатное завершение.
Журнал аварии
crashinfo.txt
Если сервер внезапно завершился, этот файл может содержать дополнительные сведения об аварии.
Просмотр конца основного лога
tail -n 150 \
server_log.txt
Поиск runtime errors
grep -inE \
'runtime error|error|warning|failed|crash' \
server_log.txt
Временные метки
Включённые метки времени помогают сопоставить ошибку с systemd, базой данных и мониторингом.
Не очищайте журнал сразу после падения
Сначала скопируйте server_log.txt, crashinfo.txt, конфигурацию и сведения о версии сборки.
Ошибки запуска SA-MP и open.mp
Игровой режим не найден
I couldn't load any gamemode scripts.
Please verify your server.cfg
Проверьте
- существует ли файл AMX;
- правильно ли написано имя;
- совпадает ли регистр букв на Linux;
- не появился ли лишний уровень папок;
- доступен ли файл пользователю сервера;
- успешно ли скомпилирован скрипт.
Пример server.cfg
gamemode0 roleplay 1
Файл должен существовать
gamemodes/roleplay.amx
Ошибка конфигурации
Проверьте неизвестные параметры, неправильные значения, повреждённые кавычки и случайно объединённые строки.
Пустой или повреждённый AMX
ls -lh \
gamemodes/roleplay.amx
Повторная компиляция
Скомпилируйте исходник подходящей версией компилятора и изучите все предупреждения и ошибки компиляции.
Ошибки загрузки плагинов
Типичные сообщения
Plugin failed to load
Failed to load plugin
Cannot open shared object file
The specified module could not be found
Wrong ELF class
Invalid ELF header
На Linux проверьте расширение
plugins/mysql.so
plugins/streamer.so
plugins/sscanf.so
На Windows
plugins\mysql.dll
plugins\streamer.dll
plugins\sscanf.dll
Проверка зависимостей Linux
ldd \
plugins/mysql.so
Отсутствующая библиотека
libexample.so => not found
Проверьте архитектуру
file \
plugins/mysql.so
Частые причины
- Windows DLL используется на Linux;
- Linux SO используется на Windows;
- несовпадение x86 и x64;
- отсутствует системная библиотека;
- плагин несовместим с ядром;
- неверно написано имя файла;
- файл заблокирован антивирусом;
- плагин повреждён.
Runtime errors и отладка игрового режима
Runtime error 19
Run time error 19:
"File or function is not found"
Часто означает отсутствие функции, которую должен предоставить плагин, либо несовместимую версию плагина.
Runtime error 4
Run time error 4:
"Array index out of bounds"
Скрипт обратился к элементу за пределами массива.
Runtime error 3
Run time error 3:
"Stack/heap collision"
Возможны слишком большие локальные массивы, глубокая рекурсия или недостаточный объём памяти AMX.
Runtime error 6
Run time error 6:
"Invalid instruction"
Возможны повреждение AMX, несовместимость ядра или ошибка выполнения.
Для подробного стека
- используйте подходящий crash detect;
- компилируйте тестовую сборку с отладочной информацией;
- сохраняйте точную версию PWN и AMX;
- не публикуйте отладочную сборку без необходимости.
Исправляйте первую строку стека
Она обычно указывает на функцию, в которой началась ошибка. Последующие вызовы показывают путь выполнения.
Ошибки игрового порта
Типичное сообщение Linux
Address already in use
Проверьте занятый порт
sudo ss -lntup |
grep -E ':7777|:30120'
Найдите процесс
sudo lsof \
-i :7777
Возможные причины
- уже запущена другая копия сервера;
- после падения панель запустила второй процесс;
- порт занят другим приложением;
- два профиля используют одинаковый порт;
- сервер привязан к отсутствующему IP;
- ошибочно указан протокол.
Connection refused
Обычно означает, что на указанном TCP-порту никто не принимает соединение либо firewall явно отклоняет запрос.
Timeout
Чаще означает отсутствие ответа из-за firewall, маршрутизации, неверного IP или недоступного сервера.
Почему GTA-сервер внезапно отключился
Возможные причины
- необработанная ошибка ресурса;
- segmentation fault;
- OOM Killer;
- ручная команда остановки;
- перезапуск через панель;
- плановое задание;
- перезагрузка VPS;
- авария базы данных;
- ошибка диска;
- обновление хостинга;
- истечение лимита контейнера;
- антивирус или защитная система.
Проверьте время завершения
sudo journalctl \
-u gta-server.service \
--since "2026-07-31 20:00:00" \
--until "2026-07-31 20:30:00" \
--no-pager
Проверьте перезагрузки
last -x |
head -n 30
Проверьте текущий uptime
uptime
Проверьте действия панели
Сравните игровую консоль с журналом txAdmin или другой панели. Перезапуск мог быть выполнен администратором либо расписанием.
Отсутствие ошибки в игровом логе
Если файл просто обрывается, причина может находиться вне игрового процесса: OOM, авария VPS, kill-сигнал или сбой диска.
Циклические перезапуски сервера
Пример systemd
Start request repeated too quickly
Failed with result 'exit-code'
Проверьте число перезапусков
systemctl show \
gta-server.service \
--property=NRestarts
Проверьте параметры службы
systemctl cat \
gta-server.service
Причины цикла
- неверный ExecStart;
- неверный WorkingDirectory;
- процесс завершается сразу после запуска;
- порт уже занят;
- нет конфигурации;
- не загрузился игровой режим;
- недоступна база;
- панель и systemd одновременно управляют процессом.
Остановите цикл на время диагностики
sudo systemctl stop \
gta-server.service
Запустите вручную
cd /opt/gta-server
sudo -u gta ./omp-server
Ручной запуск позволяет увидеть ошибку непосредственно в консоли.
Не устанавливайте RestartSec=0
Бесконечный мгновенный цикл создаёт нагрузку и быстро увеличивает журнал.
Ошибки диска и файловой системы
No space left on device
No space left on device
Проверьте место
df -h
Проверьте inode
df -i
Крупные каталоги
sudo du \
-xh \
--max-depth=1 \
/var |
sort -h
Крупные файлы GTA-сервера
find /opt/gta-server \
-type f \
-size +100M \
-printf '%s %p\n' |
sort -nr |
head -n 30
Причины заполнения
- серверный журнал;
- slow query log;
- general query log;
- резервные копии;
- crash dumps;
- кэш ресурсов;
- старые сборки;
- журнал панели.
Ошибки файловой системы
sudo journalctl \
-k \
-p err \
--no-pager
Не удаляйте неизвестные файлы базы
Ручное удаление файлов из каталога MySQL может повредить таблицы. Сначала определите назначение файла и создайте резервную копию.
Ошибки прав доступа
Типичные сообщения
Permission denied
Access is denied
Operation not permitted
Read-only file system
Проверьте владельца Linux
ls -la \
/opt/gta-server
Назначьте владельца
sudo chown -R \
gta:gta \
/opt/gta-server
Разрешите запуск
sudo chmod +x \
/opt/gta-server/omp-server
Проверка от имени службы
sudo -u gta \
test -r \
/opt/gta-server/server.cfg
sudo -u gta \
test -w \
/opt/gta-server/logs
Не выдавайте 777 всей папке
Разрешение записи всем пользователям создаёт угрозу безопасности и скрывает неправильную настройку владельца.
Read-only file system
Файловая система могла быть перемонтирована только для чтения после ошибки диска. Проверьте журнал ядра и состояние хранилища.
Сетевые ошибки в журналах
Connection refused
На целевом TCP-порту нет работающей службы либо соединение отклоняется.
Connection timed out
Ответ не пришёл за установленное время. Возможны firewall, неверный маршрут, недоступный сервер или потеря пакетов.
Temporary failure in name resolution
Сервер не смог разрешить доменное имя. Проверьте DNS и сеть.
Name or service not known
Домен записан неправильно либо DNS не возвращает адрес.
Проверка DNS
getent hosts \
database.example.com
dig +short \
database.example.com
Проверка TCP
nc -vz \
database.example.com \
3306
Проверка FiveM endpoint
curl \
--fail \
--max-time 10 \
http://play.example.com:30120/info.json
Could not contact the server browser
Если сообщение FiveM повторяется постоянно, проверьте firewall, маршрутизацию и доступ к инфраструктуре Cfx.
Один сетевой сбой может быть временным
Повторяющиеся сообщения с одинаковым интервалом обычно указывают на постоянную проблему конфигурации.
Поиск сообщений в больших журналах
Поиск без учёта регистра
grep -in \
"error" \
server_log.txt
Несколько слов
grep -inE \
'error|fatal|exception|failed|warning|crash' \
server_log.txt
Контекст вокруг совпадения
grep -inE \
-B 20 \
-A 30 \
'error|fatal|exception' \
server_log.txt
Поиск во всех файлах
grep -RinE \
'error|fatal|exception|failed' \
/opt/gta-server/logs
Только свежие файлы
find /opt/gta-server \
-type f \
-mtime -1 \
-print
Сжатые журналы
zgrep -inE \
'error|fatal|exception' \
/var/log/gta-server/*.gz
PowerShell
Get-ChildItem `
"C:\GTA-Server\logs" `
-Recurse `
-File |
Select-String `
-Pattern "error|fatal|exception|failed" `
-CaseSensitive:$false
Сохраняйте найденный контекст
grep -inE \
-B 30 \
-A 50 \
'fatal|exception|segmentation' \
server_log.txt \
> incident-fragment.txt
Какие данные собрать для диагностики
Основная информация
- точное время проблемы;
- часовой пояс;
- версия GTA-платформы;
- версия операционной системы;
- способ запуска;
- последнее внесённое изменение;
- способ воспроизведения;
- число игроков во время сбоя.
Файлы
- основной серверный лог;
- crashinfo;
- журнал systemd или Windows Events;
- журнал базы;
- crash dump при наличии;
- конфигурация без секретов;
- список ресурсов и плагинов;
- результат profiler при зависании.
Экспорт systemd
sudo journalctl \
-u gta-server.service \
--since "2026-07-31 20:00:00" \
--until "2026-07-31 20:30:00" \
--no-pager \
> gta-service-incident.log
Экспорт ядра
sudo journalctl \
-k \
--since "2026-07-31 20:00:00" \
--until "2026-07-31 20:30:00" \
--no-pager \
> kernel-incident.log
Сведения о системе
uname -a
cat /etc/os-release
free -h
df -h
Не изменяйте исходный журнал
Работайте с копией, чтобы сохранить оригинальное время, порядок строк и содержимое.
Ротация и хранение журналов
Без ротации один файл может занять весь диск.
Пример logrotate
/opt/gta-server/logs/*.log
/opt/gta-server/server_log.txt {
daily
rotate 14
compress
delaycompress
missingok
notifempty
copytruncate
}
Проверьте конфигурацию
sudo logrotate \
-d \
/etc/logrotate.d/gta-server
Срок хранения зависит от проекта
- оперативные логи — 7–30 дней;
- логи безопасности — дольше;
- crash dump — до окончания расследования;
- аудит администраторов — по внутренним правилам;
- slow query log — до анализа и исправления.
Не архивируйте журналы вместе с каждой резервной копией сервера
Это увеличивает размер архивов. Логи лучше хранить и ротировать отдельно.
Контролируйте размер
du -sh \
/opt/gta-server/logs
journalctl \
--disk-usage
Защита закрытых данных в журналах
Перед отправкой удалите
- пароли MySQL;
- лицензионные ключи;
- RCON-пароль;
- Discord webhook;
- Telegram-токен;
- API-ключи;
- SSH-ключи;
- cookie и session token;
- персональные данные игроков.
Не заменяйте весь контекст
Скрывайте только секретное значение:
database_host = 127.0.0.1
database_user = gta_app
database_password = [СКРЫТО]
Ограничьте права файла
sudo chmod 640 \
/opt/gta-server/logs/*.log
Назначьте владельца
sudo chown \
gta:gta \
/opt/gta-server/logs/*.log
General query log
Может содержать текст SQL-запросов и переданные значения. Используйте его только для краткой диагностики и храните в защищённом месте.
Распространённые ошибки при диагностике
Чтение только последней строки
Настоящая причина часто находится выше.
Удаление журнала перед обращением в поддержку
Вместе с файлом теряется последовательность событий.
Перезапуск до сбора данных
Новые сообщения могут затереть важный контекст, а временная проблема исчезнет без объяснения.
Поиск только в игровом логе
OOM, перезагрузка VPS и ошибки диска находятся в системном журнале.
Поиск только в systemd
systemd может показать лишь код завершения, а подробная ошибка останется в журнале игрового ресурса.
Включение подробного логирования навсегда
General log, debug и verbose-режимы увеличивают нагрузку и расход диска.
Публикация секретов
Перед отправкой обязательно проверьте файл вручную.
Одновременное отключение всех ресурсов
Отключайте компоненты по одному на тестовом сервере, иначе невозможно определить виновника.
Исправление следствия вместо причины
Увеличение лимита соединений не исправит утечку, а ежедневный рестарт не исправит падение ресурса.
Контрольный список чтения логов
Перед анализом
- записано точное время сбоя;
- известен часовой пояс;
- сохранена копия журналов;
- записана версия сервера;
- известно последнее изменение;
- не выполнялась очистка файлов.
Игровой сервер
- прочитан конец server_log;
- проверен crashinfo;
- найдена первая значимая ошибка;
- проверены плагины и ресурсы;
- проверен игровой порт;
- изучен stack trace;
- проверены повторяющиеся сообщения.
Операционная система
- проверен systemd или Event Viewer;
- проверен код завершения;
- проверен предыдущий boot;
- проверен OOM Killer;
- проверены ошибки диска;
- проверено свободное место;
- проверены права файлов.
База данных
- проверена служба MySQL или MariaDB;
- прочитан error log;
- проверены права пользователя;
- проверено существование таблиц;
- проверено число соединений;
- проверен slow query log;
- найдены запросы перед зависанием.
После анализа
- причина воспроизведена на тестовой копии;
- изменён только один компонент;
- ошибка больше не появляется;
- проверена работа после перезапуска;
- настроен мониторинг;
- настроена ротация журналов;
- решение задокументировано.
Частые вопросы о логах GTA-сервера
С какой строки начинать анализ?
С последних сообщений перед сбоем, затем двигаться вверх до первой значимой ошибки.
Почему сервер завершился без ошибки в server_log?
Процесс мог быть завершён системой, OOM Killer, панелью, администратором или аварией VPS.
Где смотреть причину падения open.mp или SA-MP?
Сначала в конце server_log.txt, затем в crashinfo.txt и системном журнале.
Что означает Runtime error 19?
Скрипт не нашёл требуемую функцию. Часто не загрузился нужный плагин или используется несовместимая версия.
Почему плагин работает на Windows, но не на Linux?
Для Windows используется DLL, для Linux — SO. Также должны совпадать архитектура и системные зависимости.
Где смотреть логи FiveM?
В консоли FXServer, txAdmin, файлах профиля txData, журнале службы и логах отдельных ресурсов.
Что означает hitch warning?
Серверный поток слишком долго выполнял работу. Используйте profiler и проверьте SQL, циклы и блокирующие операции.
Почему MySQL пишет Access denied?
Не совпадают пользователь, пароль, Host или выданные права.
Почему база пишет Too many connections?
Достигнут лимит соединений. Проверьте утечки, пул подключений и медленные запросы.
Можно ли постоянно держать general query log включённым?
Обычно нет. Он создаёт большой объём записей и может сохранить чувствительные данные.
Что означает status=203/EXEC?
systemd не смог выполнить файл. Проверьте путь, права запуска и формат исполняемого файла.
Что означает status=200/CHDIR?
Служба не смогла перейти в указанный рабочий каталог.
Как понять, что процесс убил OOM Killer?
В журнале ядра будет сообщение Out of memory или Killed process.
Почему лог занимает весь диск?
Возможно, постоянно повторяется одна ошибка либо не настроена ротация.
Можно ли удалить старые логи?
Да, после завершения анализа и при наличии правил хранения. Важные инциденты сначала архивируйте.
Что отправить разработчику ресурса?
Полный stack trace, версию ресурса, платформу, способ воспроизведения и очищенный от секретов фрагмент журнала.
Нужно ли отправлять весь server.cfg?
Только при необходимости и после удаления паролей, ключей и закрытых адресов.
Почему после рестарта ошибка исчезла?
Могло очиститься временное состояние, соединение или память. Это не доказывает, что причина устранена.
Итог
Диагностика GTA-сервера строится на сопоставлении игрового журнала, системных событий и логов базы данных. Сначала найдите точное время сбоя и первую значимую ошибку, а затем проверьте сообщения до и после неё.
Для SA-MP и open.mp изучите server_log.txt, crashinfo.txt, загрузку игрового режима и плагинов. Для FiveM проверяйте консоль FXServer, txAdmin, ошибки ресурсов и hitch warnings.
Если игровой лог внезапно обрывается, обязательно проверьте systemd, Windows Event Viewer, OOM Killer, свободное место и ошибки диска. При проблемах базы изучите error log, права пользователя, число соединений и slow query log.
Не удаляйте исходные журналы до завершения расследования, скрывайте секретные данные перед отправкой и настройте ротацию, внешний мониторинг и уведомления о повторных сбоях.
Комментарии к инструкции
Обсудите решение, задайте вопрос или дополните инструкцию