<acct-file>Хаб задаёт сам
Обычно записи учёта лежат файлом, и забирать их надо с узла. Эта строка переворачивает направление: узел сам отправляет пачки записей на указанный адрес запросом POST.
Файл при этом остаётся, и это главное, что надо понять. Путь в теге <acct-file> никуда не девается — он становится промежуточным хранилищем. Записи копятся в файле, файл уходит на адрес и удаляется только после успешной отправки.
Успех — это ответ 2xx и ничего больше. Любой другой ответ вызывает повтор через небольшую задержку. Значит, недоступный приёмник даёт накопление, а не потерю — до тех пор, пока не кончится место на диске.
Расширение в пути решает формат. .json — записи в NDJSON и заголовок application/x-ndjson; любое другое расширение — CSV и text/csv. Переопределить тип можно только файлом заголовков (http-webhook-extra-headers).
Если у Хаба локальный адрес, блок не пишется вовсе — узлу некуда достучаться. Тогда телеметрия идёт опросом через управляющий интерфейс, и это видно в журнале применения конфигурации.
Приёмник отвечает быстро и намеренно. TelemetryController проверяет токен, кладёт тело в кэш и ставит задачу — разбор идёт в фоне. Иначе наша аналитика тормозила бы чужой почтовый сервер: MTA ждёт 2xx.
Адрес нужен полный, и лучше по имени, а не по адресу:
| Что | Замечание |
|---|---|
| схема | https — иначе токен пойдёт открытым текстом |
| порт | не указан — 443 для https, 80 для http |
| имя узла | полное; неполное MTA дополнит для DNS, но в заголовке Host оставит как есть |
| адрес IPv6 | в квадратных скобках |
Расширение файла в теге блока — часть настройки: .json даёт NDJSON, всё остальное — CSV.
# так это выглядит у нас: расширение .json обязательно <acct-file /var/log/pmta/mtahub-webhook.json> records d, b, rb, t, feedback-loop record-fields d * http-webhook-url https://hub.example.com/api/telemetry/pmta/7 http-webhook-extra-headers /etc/pmta/mtahub-headers.txt http-webhook-max-interval 1m max-size 1M </acct-file>
что делают не так и чем это кончается3 ошибки▶
§ 12.1.1
§ 12.1.1
наш опыт
5 связей
Файл, программа или эндпоинт — и файл под каждым из трёхТретий способ отдать записи учёта; правила промежуточных файлов, повторов и заголовка описаны там. § 12.1.1Договор о телеметрииПревращает поток учёта из файла на диске в отправку по сети; сам файл при этом никуда не девается. § 3.3.11.17
http-webhook-extra-headers<acct-file>Заголовки добавляются к тому самому запросу, которым уходит пачка. § 3.3.11.18http-webhook-certificate<acct-file>Сертификат предъявляется при обращении к тому адресу. § 3.3.11.19http-webhook-ca-file<acct-file>По этим центрам проверяется сертификат того адреса. § 3.3.11.20http-webhook-transfer-encoding<acct-file>Сжимает содержимое того самого запроса, которым уходит пачка. § 3.3.11.22http-webhook-log-verbose<acct-file>Подробнее пишет в журнал про отправку пачек на тот адрес. § 3.3.11.23http-webhook-connect-timeout<acct-file>Ограничивает ожидание при установлении соединения с тем адресом. § 3.3.11.24
ls -la /var/log/pmta/mtahub-webhook*
3 статьи
◇Что узел рассказывает о себе и по каким каналамСемь поверхностей наблюдения: веб-монитор, консоль в четырёх форматах, журнал, учёт, поиск по учёту, метрики и выгрузка во внешнюю аналитику.◇Два обработчика входящих отчётов и что с ними делатьОтказы письмом и жалобы разбираются двумя одинаково устроенными блоками; у каждого свой список адресов и своя пара решений о судьбе письма.◇Пять способов очереди отдать письмоОчередь не обязана ходить по SMTP: она умеет писать в файл, запускать программу, стучаться по HTTP или выбрасывать.