Перейти к основному содержимому

Устранение неполадок

Статья помогает найти причину, если сервер ТехноДок не запускается, не отправляет письма или не применяет HSTS. Неполадки интеграции с КАСКАД описаны в разделе «Устранение неполадок» статьи «КАСКАД».

Журналы сервера​

Сервер записывает журналы в каталог logs каталога установки, например /opt/SMS-Automation/TechnoDoc/logs. Каждый день сервер начинает новый файл, дата стоит в его имени:

  • startup-error-ГГГГММДД.log — ошибка, из-за которой сервер не запустился. Файл появляется только при такой ошибке;
  • log-ГГГГММДД.log — журнал работающего сервера.

Если сервер запущен скриптом run из терминала, те же записи выводятся в терминал. Журналы работающего сервера можно выгрузить кнопкой «Экспортировать логи» на вкладке «Сервер» формы «Администрирование».

Сервер не запускается​

Откройте последний файл startup-error-*.log и найдите запись Не удалось запустить сервер. Текст ошибки под ней называет причину.

Порт занят​

Признак. В записи об ошибке есть строка Failed to bind to address http://0.0.0.0:8003: address already in use.

Причина. Порт 8003 занимает другая программа. Часто это второй экземпляр ТехноДок: сервер уже работает службой, а его запускают ещё раз скриптом run.

Проверка. Найдите программу, которая занимает порт.

Linux:

sudo ss -ltnp 'sport = :8003'

Столбец Process показывает имя программы и идентификатор её процесса.

Windows:

netstat -ano | findstr :8003

Последний столбец строки с состоянием LISTENING — идентификатор процесса. Имя программы покажет команда tasklist /FI "PID eq <идентификатор>".

Решение. Остановите программу, которая занимает порт, или задайте ТехноДок другой порт:

  1. Откройте файл data/application.conf.
  2. Раскомментируйте в секции [Kestrel:Endpoints:Http] ключ Url и укажите свободный порт, например Url = http://0.0.0.0:8010.
  3. Перезапустите сервер.

Порт HTTPS задаётся ключом Url секции [Kestrel:Endpoints:Https], как описано в статье «Безопасное соединение».

Нет прав на исполнение​

Признак. В Linux скрипт run.sh завершается ошибкой Permission denied, а файл startup-error-*.log не появляется.

Причина. Архив распаковали в Windows и скопировали файлы на Linux, и права на исполнение не сохранились.

Решение. Верните права командой:

sudo chmod +x /opt/SMS-Automation/TechnoDoc/bin/Sms.TechnoDoc \
/opt/SMS-Automation/TechnoDoc/bin/chromium/linux/chrome-headless-shell \
/opt/SMS-Automation/TechnoDoc/scripts/*.sh \
/opt/SMS-Automation/TechnoDoc/scripts/service/*.sh

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

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

Письма нет в журнале​

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

Проверка. Откройте вкладку «Журнал событий» и выберите категорию «Почта». Запись с текстом Отправка писем по почте отключена означает, что отправка выключена. Запись с текстом не удалось отправить. Причина: … называет ошибку SMTP-сервера.

Решение. Включите «Разрешить отправку писем по почте» на вкладке «Почтовый клиент» или устраните ошибку, как описано в разделе «Письмо не удалось отправить».

Письмо долго ожидает отправки​

Причина. Не выполняется периодическая задача «Отправка почты», которая повторяет отправку.

Проверка. На вкладке «Сервер» найдите задачу «Отправка почты» и проверьте её состояние и время последнего запуска.

Решение. Если задача в состоянии «Отключена», включите её: задайте в файле data/application.conf в секции [Mail:Jobs:SendMailsJob] ключ IsEnabled = True и перезапустите сервер. Если вкладка сообщает, что планировщик задач отключён, задайте тот же ключ в секции [JobScheduler]. Чтобы отправить ожидающие письма сразу, нажмите кнопку в столбце «Выполнить» задачи «Отправка почты».

Письмо не удалось отправить​

Причина. SMTP-сервер недоступен или отклоняет подключение ТехноДок.

Проверка. Откройте вкладку «Журнал событий» и выберите категорию «Почта». Текст после слова Причина называет ошибку.

Решение. Проверьте настройки на вкладке «Почтовый клиент»:

  • При ошибке подключения нажмите «Проверить соединение»: кнопка проверяет, что сервер ТехноДок достигает SMTP-сервера по адресу и порту. Если соединения нет, проверьте адрес, порт и брандмауэр между серверами.
  • При ошибке входа проверьте «Логин отправителя» и «Пароль отправителя».
  • При ошибке шифрования проверьте «Использовать SSL». Для порта 465 настройка должна быть включена. Для портов 587 и 25 её выключают: ТехноДок сам переходит на шифрование STARTTLS, если SMTP-сервер его поддерживает. Если у SMTP-сервера самоподписанный сертификат, выключите «Проверять корректность сертификата сервера».

Письма в состоянии «Не удалось отправить» ТехноДок больше не отправляет. Отправьте отчёт повторно после исправления настроек.

HSTS не действует​

При запуске сервер проверяет настройки HSTS и записывает предупреждения в файл log-*.log. Откройте файл за день последнего запуска сервера.

Адрес HTTPS не задан​

Признак. В журнале есть запись HSTS не включен, т.к. порт HTTPS не задан.

Причина. Ключ EnableHsts включён, но в секции [Kestrel:Endpoints:Https] не задан ключ Url. Сервер не отправляет заголовок Strict-Transport-Security.

Решение. Включите HTTPS, как описано в разделе «Включение HTTPS» статьи «Безопасное соединение».

Перенаправление выключено​

Признак. В журнале есть запись HSTS включен, но перенаправление запросов отключено. Клиенты впервые подключившиеся по HTTP не будут перенаправлены на HTTPS.

Причина. Точка подключения по HTTP открыта, а ключ EnableRedirection выключен. Браузер, который ещё не получал заголовок, выполняет первый запрос по HTTP и остаётся на небезопасном соединении.

Решение. Включите перенаправление, как описано в разделе «Включение перенаправления на HTTPS», или закройте точку подключения по HTTP: закомментируйте ключ Url в секции [Kestrel:Endpoints:Http].

Заголовок не отправляется​

Признак. Предупреждений в журнале нет, но в ответах сервера нет заголовка Strict-Transport-Security.

Причина. Сервер отправляет заголовок не на каждый запрос. Заголовок не отправляется:

  • в ответ на запросы по HTTP: политика передаётся только по безопасному соединению;
  • если в адресе запроса указан порт, например 8004;
  • для узлов localhost, 127.0.0.1 и [::1].

Решение. Задайте для HTTPS порт 443, как описано в разделе «Включение HSTS», и проверяйте заголовок запросом по HTTPS на имя или адрес сервера без порта.