Устранение ошибок

Описание некоторых возможных ошибок и способов их устранения.

С чего начать

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

Задания в панели. АдминистрированиеGDaemon задания, откройте последнее задание — там результат выполнения команды и вывод ошибки.

Журнал демона на выделенном сервере:

  • Linux — /var/log/gameap-daemon/output.log
  • Windows — C:\gameap\daemon\logs\output.log

Если демон работает под systemd, тот же вывод доступен командой:

journalctl -u gameap-daemon -n 200 --no-pager

Чтобы получить больше подробностей, поставьте в конфигурации демона log_level: debug и перезапустите его.

Ошибки запуска сервера

Статус сервера отображается неверно

Иногда сервер запускается, но в панели отображается как офлайн. См. Ошибки отображения статуса сервера.

Не указана команда запуска игрового сервера

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

Перейдите на страницу администрирования игровым сервером: АдминистрированиеСерверы → выберите игровой сервер. Либо с главной страницы: Список серверов → выберите сервер → УправлениеАдминистрирование.

Найдите поле Команда запуска игрового сервера и впишите команду. Для Counter-Strike 1.6 она будет примерно такой:

./hlds_run -game cstrike +ip {ip} +port {port} +map {default_map} +maxplayers {maxplayers} +sys_ticrate {fps}

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

Окно с информацией висит и не меняется долгое время

Обычно запуск занимает меньше 10 секунд. Если полоса состояния застыла или статус не меняется несколько минут, проверьте, работает ли демон и подключён ли он к панели:

systemctl status gameap-daemon

Если демон не запущен:

systemctl start gameap-daemon

Если запущен, посмотрите в журнале, установлено ли соединение с панелью. Сообщения gRPC connection failed и Reconnecting to panel... означают, что демон до панели не достучался — см. Демон не подключается к панели.

Server start task is already exists / Задача уже существует

Ошибка возникает, когда задача на запуск уже создана и ещё не выполнена.

Перейдите на страницу GDaemon задания, найдите задачу со статусом ожидания (waiting), откройте её кнопкой Просмотр и нажмите Отменить. После этого запустите сервер ещё раз.

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

Ошибки отображения статуса сервера

Несоответствие времени

Проблема связана с расхождением времени на сервере с панелью и на выделенном сервере.

Настройте синхронизацию часов на обоих серверах:

timedatectl set-ntp true
timedatectl status

Если systemd не используется, включите службу синхронизации времени — например chronyd или ntpd.

Отдельно проверьте часовой пояс: он на точность часов не влияет, но из-за него время в интерфейсе может отображаться со сдвигом.

timedatectl set-timezone Europe/Moscow

В Debian и Ubuntu часовой пояс можно выбрать и в диалоге: dpkg-reconfigure tzdata.

Демон подключён, но статус не обновляется

Демон сообщает о состоянии серверов раз в metrics.collection_interval (по умолчанию 5 секунд) и присылает heartbeat раз в 30 секунд. Если данные не обновляются дольше, посмотрите в журнале демона, не разрывается ли соединение.

Ошибки установки серверов

Чтобы установить причину, посмотрите результат выполнения команды установки: АдминистрированиеGDaemon задания → найдите задание на установку и откройте.

Частые причины:

Нет источника

Панель не знает, откуда устанавливать игровой сервер. Способов несколько:

  • через SteamCMD — в настройках игры должен быть указан Steam APP ID;
  • из удалённого репозитория — должна быть указана ссылка на ZIP или TAR архив (RAR не поддерживается);
  • из локального репозитория — путь к каталогу с файлами или к ZIP или TAR архиву. Файлы должны находиться на выделенном сервере, где работает демон.

Источник задаётся на странице АдминистрированиеИгры → выберите игру → Редактировать.

Неправильно сформирован архив установки

Архив должен содержать файлы игрового сервера в корне. Самая частая ошибка — файлы лежат во вложенном каталоге.

Неправильно сформированный архив для GTA: San Andreas Multiplayer:

Неправильный архив установки: файлы игрового сервера лежат во вложенном каталоге

Правильно:

Правильный архив установки: файлы игрового сервера лежат в корне архива

Неправильно указан источник установки

Для локального репозитория проверьте, существует ли каталог на выделенном сервере, где работает демон.

Для удалённого — проверьте, что по ссылке действительно начинается скачивание файла. Ссылки на Яндекс Диск, Google Drive и подобные хранилища не поддерживаются: по ним отдаётся страница, а не файл.

Failed to install via steamcmd

Иногда SteamCMD прерывается посреди загрузки. Панель умеет работать с альтернативным загрузчиком depot downloader — замените скрипт SteamCMD:

cd /srv/gameap/steamcmd
mv steamcmd.sh steamcmd.sh.orig
curl -O https://raw.githubusercontent.com/gameap/steamcmd-depotdownloader/main/steamcmd.sh
chmod 755 steamcmd.sh && chown gameap:gameap steamcmd.sh

Требуется вход в аккаунт Steam

Часть игр нельзя скачать анонимно — нужен аккаунт с приобретённой копией. Укажите его в разделе steam_config конфигурации демона, см. GameAP Daemon.

На этом аккаунте должна быть отключена двухфакторная аутентификация, иначе демон не сможет войти.

Ошибки GameAP Daemon

Демон не подключается к панели

В GameAP 4 соединение устанавливает демон: он сам подключается к панели по gRPC на порт 31718. Панель к демону не подключается, и входящие порты на выделенном сервере для этого не нужны.

Признак в журнале демона — повторяющиеся gRPC connection failed и Reconnecting to panel....

Что проверить:

  1. Доступность порта с выделенного сервера:

    nc -zv panel.example.com 31718
    

    Если соединение не устанавливается, порт закрыт файрволом или панель слушает другой адрес.

  2. Адрес панели в конфигурации демона — параметр grpc.address. Он должен указывать на адрес, доступный с выделенного сервера.

  3. Ошибка проверки сертификата. Если в журнале сообщение о несовпадении имени в сертификате, значит демон подключается по адресу, которого нет в сертификате панели. Задайте на панели GRPC_EXTERNAL_HOST и перевыпустите сертификат — см. GRPC API.

  4. registration failed. Соединение установлено, но панель отклонила регистрацию: неверный ds_id или api_key в конфигурации демона. Проще всего зарегистрировать демона заново.

Не работает консоль или файловый менеджер

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

Проверьте соединение по разделу выше, при необходимости перезапустите демона:

systemctl restart gameap-daemon

Файл не загружается через файловый менеджер

По умолчанию запрещена загрузка архивов и произвольных двоичных файлов — тип определяется по содержимому файла, а не по расширению. Разрешить их можно переменными FILES_UPLOAD_ALLOW_ARCHIVES и FILES_UPLOAD_ALLOW_BINARY, см. Безопасность.

Предельный размер файла при обычной загрузке — 100 МБ.

После перезагрузки сервера демон не запускается

Включите автозапуск:

systemctl enable gameap-daemon

Task complete with an error

Общая ошибка при установке, запуске, перезапуске или остановке игрового сервера. Причин может быть много.

Откройте АдминистрированиеGDaemon задания, найдите последнее задание и посмотрите подробности. Затем проверьте журнал демона.

No source to install game

Для игры не задан ни один источник установки. См. Нет источника.

Ошибки входа в панель

После обновления не пускает администратора

В GameAP 4 двухфакторная аутентификация для администраторов обязательна: через 30 дней после первого напоминания вход перестаёт выдавать полноценную сессию. Это не блокировка учётной записи — нужно подключить 2FA и войти заново.

Порядок действий, в том числе при утере устройства с кодами, — Безопасность.

Слишком много попыток входа

После 20 неудачных попыток с одного адреса или 5 попыток на один логин вход блокируется на 15 минут, ответ — 429. Ограничение снимается само по истечении времени.

Пароль не принимается при смене

Минимальная длина пароля — 12 символов, и он проверяется по списку скомпрометированных паролей. См. Безопасность.

Поиск причин

Если вашей проблемы здесь нет, ищите подробности в журналах.

Журнал демона/var/log/gameap-daemon/output.log в Linux, C:\gameap\daemon\logs\output.log в Windows. Для подробного вывода поставьте log_level: debug в конфигурации демона и перезапустите его.

Журнал панели — вывод процесса gameap. Под systemd:

journalctl -u gameap -n 200 --no-pager

Уровень подробности задаётся переменной LOGGER_LEVEL, см. Справочник config.env.

Задания — в панели АдминистрированиеGDaemon задания: там результат выполнения каждой команды запуска, установки и перезапуска.