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

Внезапно все мои письма начали отклоняться. Мне нужны полные детали журнала. Просмотр в Discourse обрезан многоточием. Как я могу увидеть всю запись? Это срочно необходимо для решения проблемы.

Reporting-MTA: dsn; a27-22.smtp-out.us-west-2.amazonses.com

Action: failed
Final-Recipient: rfc822; keith.jones@du.edu
Diagnostic-Code: smtp; 554 Blocked - see https://ipcheck.proofpoint.com/?ip=54.240.27.22
Sta…

Вам нужно просмотреть логи вашего почтового сервера. Похоже, что Discourse отправляет письма, но почтовый сервер не хочет их доставлять.

Я совсем запутался. Я использую Amazon SES для отправки почты. Зайдя в контейнер через bash, я не знаю, где найти логи почты Discourse. В /var/log я не вижу ничего подходящего. Извините за полную некомпетентность. Я хотя бы мог видеть логи по адресу /logs в интерфейсе Discourse, но почему я не могу найти их на диске? Они хранятся в базе данных?

Привет, @Andro

В Discourse Rails Action Mailer отправляет письма после того, как они запланированы как задача Sidekiq.

Обычно некоторые ошибки исключений задач записываются в продакшн-лог Rails, например:

linux# docker exec -it your-app bash
your-app:/# cd /shared/log/rails


your-app:/shared/log/rails# grep -i SMTP *

production.log-20201215:Job exception: 454 4.7.0 Cannot authenticate due to temporary system problem. Try again later. m7sm3825233oou.11 - gsmtp

production.log-20201215:Job exception: 454 4.7.0 Cannot authenticate due to temporary system problem. Try again later. 63sm3561399otx.2 - gsmtp

production.log-20201215:Job exception: 454 4.7.0 Cannot authenticate due to temporary system problem. Try again later. z63sm4258403otb.20 - gsmtp

production.log-20201215:Job exception: 454 4.7.0 Cannot authenticate due to temporary system problem. Try again later. q18sm3815880ood.35 - gsmtp

production.log-20201215:Job exception: 454 4.7.0 Cannot authenticate due to temporary system problem. Try again later. h2sm4265076otn.15 - gsmtp

production.log-20201215:Job exception: 454 4.7.0 Cannot authenticate due to temporary system problem. Try again later. y84sm4346372oig.36 - gsmtp

production.log-20201215:Job exception: 454 4.7.0 Cannot authenticate due to temporary system problem. Try again later. 8sm4343514oii.45 - gsmtp

production.log-20201215:Job exception: 454 4.7.0 Cannot authenticate due to temporary system problem. Try again later. t18sm722516otc.64 - gsmtp

production.log-20201215:Job exception: 454 4.7.0 Cannot authenticate due to temporary system problem. Try again later. j22sm1840062otp.45 - gsmtp

Таким образом, вы, возможно, сможете найти некоторые подсказки в вашем продакшн-логе Rails, как показано выше.

Удачи, надеюсь, это поможет.

PS: Ещё одна небольшая вещь для проверки, которая может быть не полезна в вашем случае, — это выполнить из консоли Rails:

EmailLog.where(bounced:true).count

или ещё проще:

EmailLog.bounced.count

Также, я забыл упомянуть, что вы можете настроить Rails для записи большего количества информации о почтовом агенте, если вам нужно больше логов:

Существует множество настроек в config.action_mailer:

config.action_mailer.logger принимает логгер, соответствующий интерфейсу Log4r или стандартному классу Ruby Logger, который затем используется для записи информации от Action Mailer. Установите значение nil, чтобы отключить логирование.

В Discourse «из коробки» это установлено в nil, то есть логирование отключено:

[5] pry(main)> Rails.application.config.action_mailer.logger
=> nil

См., например, раздел 3.10 Настройка Action Mailer

Проблема в том, что мы используем Amazon Simple Email Service (SES), и я не могу найти способ просмотреть логи там. Мне кажется, что логи просто недоступны в рамках этого сервиса.

Привет, @neounix, большое спасибо. Я могу увидеть полные детали письма в файлах production.log с датами. Я вижу полный ответ от Amazon SES. Это именно то, что мне нужно. Очень полезно. Огромная благодарность.

Дорогой @Andro,

Пожалуйста. Рад, что смог помочь вам докопаться до сути вашей проблемы.

С праздниками! Вперёд и с победой!