Skip to content

Диагностика проблем

Отчёт об ошибках

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

Чтобы решить проблему как можно быстрее:

  1. Опишите условия возникновения ошибки (что и как вы делаете).
  2. Укажите, что вы ожидали в результате ваших действий.
  3. Укажите, что вы получаете в результате ваших действий.
  4. Сохраните снимки экрана с ошибкой, если это возможно.
  5. Скачайте логи сервера (см. ниже).
  6. Укажите версию Hive. Вы можете скопировать эту информацию в окне О нас.
  7. Отправьте всю перечисленную информацию команде технической поддержки на почту support@hexway.ru.

Журнал

В Hive основные логи сохраняется в системный journal. Их можно посмотреть при помощи journalctl. Вы можете найти логи по этому пути: /run/log/journal/<machine-id>/*.journal[~].

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

  1. Выполните команду:

    man journald.conf
    

  2. Чтобы увидеть логи Hive, откройте консоль машины, где он установлен, и выполните команду:

    journalctl -u hw-bw
    

  3. Используйте опцию --since и/или --until для того, чтобы указать глубину логов для просмотра. Подробнее о работе этой команды смотрите в справочнике вашей ОС. Выполните команду:

    man journalctl
    

  4. При необходимости сохраните логи в файл. Выполните следующую команду:

    journalctl -u hw-bw --since=-1d > system_logs_$(date +%Y%m%d_%H%M%S).tar.gz
    

В результате будет сохранён файл с именем system_logs_<дата>_<время>.tar.gz, который можно отправить на адрес support@hexway.ru.

Также вы можете наблюдать за логами в реальном времени при помощи опции -f/--follow. Следующая команда покажет 5 последних строк лога и будет отображать их в реальном времени:

journalctl -u hw-bw --follow --lines=5

Вы в любой момент можете прервать операцию, нажав Ctrl + C.

Настройка отладочного логирования

Вы можете настроить сохранение логов, чтобы получить подробности о состоянии Hive или ее сервисов. Существует 5 уровней логирования: DEBUG, INFO, WARNING, ERROR, и CRITICAL. После первой установки для всех сервисов по умолчанию устанавливается уровень INFO.

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

  • logging.level — глобальная настройка для всех сервисов;
  • b.engine.logging.level — настройка для сервиса b.engine;
  • b.background.logging.level — настройка для сервиса b.background (например, работа парсеров);
  • b.convey.logging.level — настройка для сервиса b.convey.

Чтобы установить уровень логирования, нужно выполнить реконфигурацию.

Вы можете задать уровень логирования для каждого сервиса Hive. Укажите одно из значений (DEBUG, INFO, WARNING, ERROR, или CRITICAL):

[main]
b.engine.logging.level = DEBUG
b.background.logging.level = ERROR
b.convey.logging.level = WARNING

Вы можете задать уровень логирования для всех сервисов Hive и для некоторых из них по отдельности:

[main]
logging.level = INFO
b.engine.logging.level = DEBUG

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

Статус сервиса systemd

Для диагностики состояния Hive убедитесь, что он запущен:

systemctl status hw-bw

Пример нормального вывода:

● hw-bw.service - hexway bw prod
     Loaded: loaded (/etc/systemd/system/hw-bw.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2025-03-28 17:49:36 UTC; 2 weeks 4 days ago
...

Пример вывода для остановленного Hive:

○ hw-bw.service - hexway bw prod
     Loaded: loaded (/etc/systemd/system/hw-bw.service; enabled; vendor preset: enabled)
     Active: inactive (dead) since Wed 2025-04-16 12:17:17 UTC; 28s ago
...

Обратите внимание на состояние активности сервиса (active/inactive) и на состояние "включён/выключен" (enabled/disabled).

Если вы получили подобное сообщение:

Unit hw-bw.service could not be found.

Или обнаружили, что по какой-то причине systemd сервис в настоящее время отключен, вы можете его вновь включить и активировать:

systemctl link /opt/hw-bw/systemd/hw-bw.service
systemctl enable hw-bw.service
systemctl daemon-reload
systemctl start hw-bw.service

Просмотр состояния контейнеров docker

Чтобы увидеть список контейнеров docker, выполните команду:

docker ps

Пример нормального вывода:

CONTAINER ID   IMAGE                                                COMMAND                  CREATED              STATUS              PORTS                                                      NAMES
2a436d496203   registry.hexway.io/hexway/hive-deck:0.65.7           "/docker-entrypoint.…"   About a minute ago   Up About a minute   80/tcp, 443/tcp, 0.0.0.0:80->8080/tcp, [::]:80->8080/tcp   hw-bw-b_deck-1
7d69dd4e822d   registry.hexway.io/hexway/convey:0.65.3              "/init-service /bin/…"   About a minute ago   Up About a minute   5030/tcp                                                   hw-bw-b_convey-1
09635b1739c1   registry.hexway.io/hexway/report-engine:0.65.1       "node src/server/run…"   About a minute ago   Up About a minute   5090/tcp                                                   hw-bw-r_engine-1
f71f6592bf3e   registry.hexway.io/hexway/hive-engine:0.65.6         "/init-service /bin/…"   About a minute ago   Up About a minute   5000/tcp                                                   hw-bw-b_background-1
ee6ecfabd9cd   registry.hexway.io/hexway/hive-engine:0.65.6         "/init-service /bin/…"   About a minute ago   Up About a minute   5000/tcp                                                   hw-bw-b_engine-1
144bc4a0a290   redis:7.2.5-alpine                                   "docker-entrypoint.s…"   About a minute ago   Up About a minute   6379/tcp                                                   hw-bw-b_redis-1
f82ab8aa81f6   postgres:16.3-alpine                                 "docker-entrypoint.s…"   About a minute ago   Up About a minute   5432/tcp                                                   hw-bw-b_postgres-1
e6e34b17d7f9   registry.hexway.io/hexway/neo4j:4.4.42-apoc-36-138   "tini -g -- /startup…"   About a minute ago   Up About a minute   7473-7474/tcp, 7687/tcp                                    hw-bw-b_neo4j-1

В колонках CREATED и STATUS вы можете увидеть время создания и время работы контейнеров. Обычно время создания и время работы для каждого контейнера должно быть примерно одинаковым. Если вы видите, что время в CREATED и STATUS различается, или в STATUS статус отличается от up — это признак того, что с этим контейнером что-то не так.

Вы можете получить логи отдельного контейнера при помощи подобной команды:

docker logs <container_name>

В качестве container_name укажите имя контейнера из колонки NAMES или идентификатор контейнера из колонки CONTAINER ID. Также вы можете использовать здесь опции --last / -n, --follow / -f.

Чтобы получить больше информации по опциям, выполните команду:

docker logs --help

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