<acct-file>критичноХаб задаёт сам
Учёт — это единственный канал, по которому узел рассказывает, что с письмами произошло. Строка выбирает, о чём именно. Видов восемь, и каждый можно назвать буквой или словом:
| Буква | Слово | О чём запись |
|---|---|---|
| d | delivery | письмо доставлено |
| b | bounce | локальный отказ, сгенерированный самим узлом |
| t | transient | временная ошибка по одному получателю |
| tq | transient-queue | временная ошибка на всю очередь |
| r | receipt | письмо принято узлом на отправку |
| f | feedback-loop | жалоба, разобранная обработчиком |
| rb | remote-bounce | отказ, пришедший письмом от приёмника |
| rs | remote-status | отчёт о состоянии от приёмника |
Умолчание — d,b, и строка пишется один раз на блок.
Не выбранный вид — это событие, которого для аналитики не случилось. Восстановить его потом нечем: узел его просто не записал. Поэтому набор видов — это, по сути, описание того, что парк вообще способен измерить.
Отказы бывают двух пород, и это главная тонкость набора. b — это отказы, которые узел сгенерировал сам, синхронно, прямо в разговоре с приёмником. Асинхронные отказы, пришедшие письмом позже, сюда не попадают — для них есть rb, и работает он только при настроенном обработчике отказов.
t и tq вендор советует держать в отдельном файле. Попыток доставки у одного письма бывает много, и эти записи распухают быстрее прочих, засоряя основной файл.
В блоке телеметрии выбраны пять видов: d, b, rb, t, feedback-loop. Асинхронные отказы (rb) и жалобы взяты намеренно: без них доля жёстких отказов и спам-жалоб на панели парка была бы неполной. Не берутся tq, r и rs.
В файловом блоке (/var/log/pmta/acct.csv) — d, b, rb: доставки и оба вида отказов. Его читает модуль «Статистика учёта». Временные отказы и жалобы туда намеренно не пишутся: попытки раздувают файл, у жалоб другой набор колонок, а то и другое и так уходит вебхуком.
Набор выбирают по вопросам, на которые надо будет ответить:
| Виды | Что становится видно |
|---|---|
| d,b (умолчание) | доставка и синхронные отказы |
| +rb | настоящая доля жёстких отказов |
| +f | жалобы на спам |
| +t,tq | почему письма задерживаются — в отдельный файл |
| +r | что вообще подавали на узел |
rb и f работают только при настроенных обработчиках — без блока разбора отказов и жалоб записей этих видов не появится.
# телеметрия парка: доставки, оба вида отказов и жалобы <acct-file /var/log/pmta/mtahub-webhook.json> records d, b, rb, t, feedback-loop record-fields d * </acct-file> # временные ошибки — отдельным файлом, как советует вендор <acct-file /var/log/pmta/transient.csv> records t, tq </acct-file>
что делают не так и чем это кончается3 ошибки▶
§ 3.3.11.11
§ 3.3.11.11
наш опыт
4 связи
cut -d, -f1 /var/log/pmta/acct-*.csv | sort | uniq -c
3 статьи
◇Два обработчика входящих отчётов и что с ними делатьОтказы письмом и жалобы разбираются двумя одинаково устроенными блоками; у каждого свой список адресов и своя пара решений о судьбе письма.◇Что узел рассказывает о себе и по каким каналамСемь поверхностей наблюдения: веб-монитор, консоль в четырёх форматах, журнал, учёт, поиск по учёту, метрики и выгрузка во внешнюю аналитику.◇Пять способов очереди отдать письмоОчередь не обязана ходить по SMTP: она умеет писать в файл, запускать программу, стучаться по HTTP или выбрасывать.