Руководство расставляет приоритет недвусмысленно: свои сообщения об ошибках MTA пишет сюда, а не в системный журнал. Системный остаётся запасным вариантом — на случай, когда писать в свой файл MTA не может вовсе.
Содержимое широкое по замыслу. В одном файле события жизненного цикла — запуск и остановка, — ошибки выполнения, следы соединений и команд, которые включаются директивами журналирования по каждому источнику или приёмнику, и предупреждения резолвера.
Ротация автоматическая, а её параметры — часть конфигурации: сколько прошлых файлов хранить, решается директивами. То есть глубина истории — настройка, а не свойство файла.
Не путать с учётом. Учёт — это данные о письмах, по одной записи на получателя, и он существует ради отчётов. Журнал — про сам MTA, и он существует ради разбора. Директивы у них разные, назначение разное, и подменять один другим не выйдет (log-accounting-separation).
Это осознанное разделение: учёт отвечает на вопросы о письмах, журнал — о самом MTA. Но у него есть цена: отказ, случившийся до того, как письмо попало в учёт, Хабу не виден. Например, разбор конфигурации при перезагрузке настроек — он попадает в журнал, а в учёт не попадает ничего.
Поэтому при разборе непонятного поведения узла журнал приходится смотреть руками, зайдя на машину, — и стоит помнить, что он там есть и что в нём лежит больше, чем в телеметрии.
Что искать в журнале и когда:
| Событие | Когда смотреть |
|---|---|
| запуск и остановка | узел не поднялся или перезапустился сам |
| ошибка разбора конфигурации | перезагрузка настроек не прошла |
| предупреждения резолвера | доставка не идёт к части доменов |
| следы соединений и команд | разбор конкретного приёмника — включать адресно |
Глубина истории — настройка. Число хранимых файлов задаётся директивами журналирования; умолчание разумно для спокойного узла и мало для того, где включены подробные следы.
Разбор начинается отсюда, а не с системного журнала. В системный попадает только то, что MTA не смог записать себе.
# разбор начинается с двух вопросов к журналу tail -n 200 /var/log/pmta/loggrep -i 'error\|warn' /var/log/pmta/log | tail -50
что делают не так и чем это кончается3 ошибки▶
§ 4.1.2
§ 4.1.2
§ 4
3 связи
Журнал и учёт — два файла и два разных вопросаЖурнал про MTA, учёт про письма: разные директивы и разное назначение. § 4.1.2Куда узел пишет, почему не запустилсяОтдельный файл для отказов запуска — на случай, когда в основной журнал писать уже некому. § 4.2.1
Узлу нужен резолвер, который делает всю работу самПовторяющиеся отсылки от одного сервера дают предупреждение в журнале — единственный признак этой неполадки. § 4.2.3ЖурналыФайл, к которому обращается эта выдача. § 5.11Отдать файл узлаФайл, к которому обращается эта выдача. § 5.11Начать новый файл журналаЗакрывает текущий файл и начинает новый. § 6.3.10Попытка доставки с записью сессииФайл, с которым команда и работает. § 6.3.23
ls -lh /var/log/pmta/ tail -n 100 /var/log/pmta/log grep -c -i 'error' /var/log/pmta/log
3 статьи
◇Что узел рассказывает о себе и по каким каналамСемь поверхностей наблюдения: веб-монитор, консоль в четырёх форматах, журнал, учёт, поиск по учёту, метрики и выгрузка во внешнюю аналитику.◇Журнал и учёт — два файла и два разных вопросаMTA ведёт отдельный журнал и отдельный файл учёта; разделение сделано ради формата, производительности и возможности отдать журнал не раскрывая данные.◇Файл, программа или эндпоинт — и файл под каждым из трёхТри способа отдать записи учёта; у эндпоинта под низом всё равно файл, который удаляется только после успешной отправки, а ответ не 2xx вызывает повтор.