Руководство начинает с того, что отказ доставки — это норма, а не происшествие: неверные адреса, сетевые сбои и неправильно настроенные приёмники ожидаемы, и повторы существуют ровно для них.
Разбираться стоит, когда почта копится к одному конкретному приёмнику. Это и есть признак, отличающий проблему от обычного шума.
Первый круг — маршрут и достижимость. Одна команда разрешает имя приёмника и подключается к его почтовым хостам. Какая половина отказала, та и называет причину: не разрешилось имя — вопрос к DNS, не подключилось — к сети или к приёмнику.
Второй круг — заставить узел попробовать. Команда вызывает немедленную попытку доставки с записью сессии в журнал: там будут настоящие ответы приёмника, а не наши догадки о них.
Третий круг — наблюдение. Если неполадка перемежающаяся, для приёмника заводится блок с включённым журналированием соединений и команд, и убирается сразу, как ответ получен. Это самый дорогой шаг: журнал растёт быстро.
То есть первый и второй круг у нас доступны только руками, зайдя на узел. Телеметрия показывает что происходит — очередь растёт, отказы такие-то, — но не почему: настоящих ответов приёмника в ней нет, есть их разобранная категория.
Это осознанная граница: журналирование на всех узлах парка стоило бы дорого. Но когда разбор нужен, ходить на узел приходится вручную.
Три круга и цена каждого:
| Круг | Что делает | Цена |
|---|---|---|
| маршрут и достижимость | одна команда, читает DNS и подключается | ничего |
| попытка с записью | одно письмо, сессия в журнале | одна доставка |
| журналирование по приёмнику | пишет каждый шаг разговора | растёт быстро, убирать сразу |
Начинать с первого и не прыгать через круги. Половина случаев объясняется уже на нём: имя не разрешается или хост не отвечает. Дальше идти незачем.
Третий круг ставить с намерением снять. Хорошая привычка — заводить его вместе с напоминанием, а не «до выяснения».
# три круга по порядку pmta resolve gmail.com --connect pmta trace gmail.com --to-log# третий круг — блок с журналированием, и убрать сразу после
что делают не так и чем это кончается3 ошибки▶
§ 4.2.2
§ 4.2.2
§ 4.2.2
6 связей
Разрешить имя и подключитьсяПервый круг: разрешает имя приёмника и подключается к его почтовым хостам. § 4.2.2Попытка доставки с записью сессииВторой круг: немедленная попытка доставки с записью сессии. § 4.2.2log-connections<source>Третий круг: запись соединений, включается адресно и убирается сразу. § 4.2.2log-commands<source>Третий круг: запись команд разговора — самый дорогой шаг разбора. § 4.2.2
Что узел рассказывает о себе и по каким каналамРазбор одного приёмника и есть выбор между этими поверхностями по порядку. § 4.1.1Отдать файл узлаРазбор, в котором эта выдача — один из шагов. inferenceЗапрос имени не завершился — и вывод не делаетсяОтказ, который первый же круг разбора и называет: имя приёмника не разрешилось. § 5.8
pmta resolve gmail.com --connect pmta trace gmail.com --to-log && tail -n 100 /var/log/pmta/log pmta show queues gmail.com
3 статьи
◇Что узел рассказывает о себе и по каким каналамСемь поверхностей наблюдения: веб-монитор, консоль в четырёх форматах, журнал, учёт, поиск по учёту, метрики и выгрузка во внешнюю аналитику.◇Сторож, который перезапускает MTAПрисматривает за MTA и после падения поднимает его сам, отправляя отчёт о падении на адрес ответственного.◇Как складывается политика для приёмникаНастройки собираются от самого общего образца к самому точному; порядок блоков в файле не значит ничего.