Диагностика проблем
Отчёт об ошибках
Большинство проблем в Apiary можно решить с помощью методов, указанных ниже в этой главе. Но если вам нужна дополнительная помощь по данным вопросам, или вы столкнулись с проблемой, не описанной в этой главе, обратитесь к нашей команде технической поддержки для получения дополнительной информации и регистрации проблемы.
Для того чтобы решить проблему как можно быстрее, следуйте рекомендациям:
- Опишите условия, возникновения ошибки (что и как вы делаете);
- Укажите что вы ожидали в результате ваших действий;
- Укажите что вы получаете в результате ваших действий;
- Сохраните снимки экрана с ошибкой, если это возможно;
- Скачайте логи сервера (см. ниже);
- Укажите версию Apiary. Вы можете скопировать эту информацию в окне About.
- Отправьте всю вышеперечисленную информацию команде технической поддержки на почтовый ящик support@hexway.ru.
Журнал
В Apiary основные логи сохраняется в системный journal
и могут быть просмотрены при помощи journalctl
.
Вы можете найти логи по этому пути: /run/log/journal/<machine-id>/*.journal[~]
.
Вы можете настроить время глубину хранения логов при помощи настроек journald
.
Подробности по настройке можете найти, например, в справочнике вашей операционной системы:
Чтобы увидеть логи Apiary, откройте консоль машины, на которой он установлен
и выполните команду:
Вы можете использовать опцию --since
и/или --until
для того что бы указать глубину логов для просмотра.
Вы можете найти информацию по использованию этой команды и её опций, например, в справочнике вашей операционной системы:
При необходимости, сохраните логи в файл. Например, так:
В результате будет сохранён файл с именем system_logs_<дата>_<время>.tar.gz
который вы можете отправить на
адрес support@hexway.ru.
Так же вы можете наблюдать за логами в реальном времени при помощи опции -f
/--follow
.
Например, такая команда покажет 5 последних строк лога и будет отображать их в реальном времени:
Настройка отладочного логирования
Вы можете настроить сохранение логов для получения подробной информации
о состоянии Apiary или ее сервисов.
Существует 5 уровней логирования: DEBUG
, INFO
, WARNING
, ERROR
, и CRITICAL
.
По умолчанию, после первой установки для всех сервисов устанавливается уровень INFO
.
Вы можете настроить различные уровни логирования для каждого сервиса по отдельности, или задать глобальные настройки для всех сервисов сразу:
logging.level
- глобальная настройка для всех сервисов;f.engine.logging.level
- настройка для сервисаf.engine
;f.background.logging.level
- настройка для сервисаf.background
(например, работа парсеров);f.convey.logging.level
- настройка для сервисаf.convey
.
Чтобы установить уровень логирования, нужно изменить конфигурацию.
Вы можете задать уровень логирования для каждого сервиса Apiary.
Укажите одно из значений (DEBUG
, INFO
, WARNING
, ERROR
, или CRITICAL
):
[main]
f.engine.logging.level = DEBUG
f.background.logging.level = ERROR
f.convey.logging.level = WARNING
Вы можете задать уровень логирования для всех сервисов Apiary и для отдельных:
Не забудьте сделать reconfig
как указано в параграфе
Реконфигурация что бы изменения вступили в силу.
Статус systemd сервиса
Для диагностики состояния Apiary в первую очередь, убедитесь, что он запущен:
Пример нормального вывода:
● hw-fh.service - hexway fh prod
Loaded: loaded (/etc/systemd/system/hw-fh.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2025-03-28 17:49:36 UTC; 2 weeks 4 days ago
...
Пример вывода для остановленного Apiary:
○ hw-fh.service - hexway fh prod
Loaded: loaded (/etc/systemd/system/hw-fh.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Wed 2025-04-16 12:17:17 UTC; 28s ago
...
Важно обратить внимание, как на состояние активности сервиса (active
/inactive
),
так и на состояния включён/выключен (enabled
/disabled
).
Если вы получили сообщение, например, такое:
Или обнаружили, что, по какой-то причине systemd
сервис в настоящее время отключен, вы можете его вновь
включить и активировать:
systemctl link /opt/hw-fh/systemd/hw-fh.service
systemctl enable hw-fh.service
systemctl daemon-reload
systemctl start hw-fh.service
Просмотр состояния контейнеров docker
Что бы увидеть список docker
контейнеров выполните команду:
Пример нормального вывода:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8ebe0b7dc988 registry.hexway.io/hexway/apiary-deck:0.65.6 "/docker-entrypoint.…" 9 minutes ago Up 9 minutes 80/tcp, 443/tcp, 0.0.0.0:80->8080/tcp, [::]:80->8080/tcp hw-fh-f_deck-1
efbd973bcca0 registry.hexway.io/hexway/apiary-engine:0.65.2 "/init-service /bin/…" 9 minutes ago Up 9 minutes 5001/tcp hw-fh-f_background-1
2a8de6cc53d5 registry.hexway.io/hexway/convey:0.65.2 "/init-service /bin/…" 9 minutes ago Up 9 minutes 5030/tcp hw-fh-f_convey-1
6a0a90353a4f registry.hexway.io/hexway/report-engine:0.65.1 "node src/server/run…" 9 minutes ago Up 9 minutes 5090/tcp hw-fh-r_engine-1
574ed2ea5a26 registry.hexway.io/hexway/depot-deck:0.65.0 "/docker-entrypoint.…" 9 minutes ago Up 9 minutes 80/tcp, 5040-5041/tcp hw-fh-d_proxy-1
346739b7e3e0 registry.hexway.io/hexway/depot-service:0.65.2 "/init-service ./run…" 9 minutes ago Up 9 minutes 5040/tcp hw-fh-d_engine-1
0b2acddc4f0a registry.hexway.io/hexway/apiary-engine:0.65.2 "/init-service /bin/…" 9 minutes ago Up 9 minutes 5001/tcp hw-fh-f_engine-1
f52e00a63909 rabbitmq:3.11.23-management "docker-entrypoint.s…" 9 minutes ago Up 9 minutes 4369/tcp, 5671-5672/tcp, 15671-15672/tcp, 15691-15692/tcp, 25672/tcp hw-fh-d_queue-1
af9061df9864 postgres:16.3-alpine "docker-entrypoint.s…" 9 minutes ago Up 9 minutes 5432/tcp hw-fh-d_postgres-1
66d88ba73d65 postgres:16.3-alpine "docker-entrypoint.s…" 9 minutes ago Up 9 minutes 5432/tcp hw-fh-f_postgres-1
0ab6e96b9db8 registry.hexway.io/hexway/rmq-proxy:0.65.0 "/proxy-entrypoint" 9 minutes ago Up 9 minutes 80/tcp, 5671/tcp, 0.0.0.0:5672->5672/tcp, [::]:5672->5672/tcp hw-fh-d_queueproxy-1
b77e1a9b9049 redis:7.2.5-alpine "docker-entrypoint.s…" 9 minutes ago Up 9 minutes 6379/tcp hw-fh-f_redis-1
В колонках CREATED
и STATUS
вы можете увидеть, время создания и время работы контейнеров.
Обычно, время создания и время работы для каждого контейнера должно быть, примерно, одинаковым.
Если вы видите, что время в CREATED
и STATUS
различается или в STATUS
статус отличный от up
это признак того, что с этим контейнером что-то не так.
Вы можете получить логи отдельного контейнера при помощи, например такой команды:
В качестве container_name
укажите имя контейнера из колонки NAMES
или идентификатор контейнера из колонки CONTAINER ID
.
Так же вы можете использовать здесь опции --last
/ -n
, --follow
/ -f
.
Для получения дополнительной информации по опциям выполните:
В некоторых случаях достаточно изучить логи только одного контейнера для диагностики проблем.