Установка и ядро

записей в теме: 64
host-nameGlobalкритичноДирективаПервое имя — главное; какое именно попадёт в приветствие, решает разбор из пяти шагов.postmasterGlobalкритичноДирективаОдна из двух настроек, без которых MTA не работает: сюда сторож шлёт отчёты о падениях и об истечении лицензии, а также пересылается почта на служебные адреса.smtp-source-hostGlobalкритичноДирективаПривязывает исходящие соединения к локальному адресу или диапазону CIDR и задаёт имя в приветствии SMTP.includeGlobalХаб задаёт самДирективаЧитает дополнительный файл — по пути, по маске или по адресу HTTP; содержимое обрабатывается так, будто написано на этом месте.domain-macroGlobalХаб задаёт самДирективаОбъявляет переменную со списком доменов; дальше её имя со знаком доллара подставляется туда, где иначе пришлось бы перечислять домены заново.http-extra-headers<include-config>ДирективаНазывает файл, строки которого узел добавит как заголовки HTTP-запроса при загрузке конфигурации.include<virtual-mta>ДирективаТа же директива, записанная внутри адреса отправки — подключённые строки становятся его настройками.include<domain>ДирективаТа же директива, записанная внутри блока получателя — подключённые строки становятся правилами этого получателя.include<source>ДирективаТа же директива, записанная внутри блока источника — подключённые строки становятся его настройками.include<smtp-pattern-list>ДирективаТа же директива, записанная внутри списка разбора ответов SMTP — подключённые строки становятся его правилами.min-free-space<signals>ДирективаНиже этого порога узел начинает удалять неотправленные файлы выгрузки; умолчание 20 МБ.volume-audit-api-keyGlobalДирективаОбязателен при лицензии, считающей объём: этим ключом узел подтверждает себя, отправляя данные вендору. Выдаётся вместе с такой лицензией.thread-reuseGlobalДирективаОтключение заставляет MTA выбрасывать потоки сразу; это стоит производительности и снимает обход старой ошибки библиотеки. Умолчание зависит от платформы.thread-max-priorityGlobalДирективаЗадаёт быстрый конец диапазона приоритетов, с которыми работают потоки MTA; директива только для Unix и парная к наименьшему.thread-min-priorityGlobalДирективаЗадаёт медленный конец диапазона приоритетов, с которыми работают потоки MTA; директива только для Unix и парная к наибольшему.Настройка через API и файл не сходятсякритичноМеханизмОбъекты, созданные через интерфейс настройки, в файле не правятся: два источника правды о конфигурации не сходятся.Перезагрузка настроек против перезапуска службыкритичноМеханизмКонфигурация читается при старте, дальше правки подхватываются командой перезагрузки — кроме тех директив, которые руководство помечает как требующие перезапуска.Четыре типа значений, на которых написан весь конфигкритичноМеханизмЛогическое, образец домена, регулярное выражение и промежуток времени — определены один раз в § 3.2 и дальше используются всеми директивами.Одноимённые директивыМеханизмИмя директивы определяет настройку только вместе с блоком: 48 из 417 имён описаны больше чем в одном месте, и одно имя в разных блоках — не всегда одна настройка.Как перевести план отправки в железоМеханизмДве постоянные, по которым считается любой узел: около 2 КБ памяти на каждого получателя в очереди и место под спул, пропорциональное суммарному размеру писем.Ограничения облакаМеханизмОблака ограничивают исходящую почту через порт 25, пока не попросишь снять лимит, а их диапазоны адресов почтовики встречают с подозрением.Ключ активации — условие установки, а не шаг после неёМеханизмБез ключа активации от поддержки SparkPost MTA не ставится и не работает, а уровень лицензии задаёт потолок исходящих соединений: на стандартной всё сверх 200 игнорируется.Сторож, который перезапускает MTAМеханизмПрисматривает за MTA и после падения поднимает его сам, отправляя отчёт о падении на адрес ответственного.Диалект регулярных выраженийМеханизмРегулярные выражения конфигурации — совместимые с Perl, на библиотеке PCRE: так пишут выбор адреса отправки, правила ответов, категории отказов, списки адресов и заголовки подписи.Чем опасна виртуальная машинаМеханизмРаботать на виртуальной машине можно, но руководство не рекомендует это без достаточного железа и выверенных настроек гипервизора: под нагрузкой узел может перестать отвечать.Лицензия на парк, а не на серверМеханизмЛицензия не привязана к серверу: её ставят на столько машин, сколько разрешает предел экземпляров, а узлы раз в час отправляют вендору статистику объёма.Указатель директивМеханизмАлфавитный перечень руководства: 475 строк называют 477 мест описания директив — единственная полная опись языка конфигурации.Кто занял портМеханизмДва слушателя на один порт не помещаются: если порт уже занят, узел не поднимется, и причина будет только в журнале.Чужие составляющие MTAМеханизмPowerMTA работает на пяти сторонних библиотеках — PCRE, OpenSSL, ICU, gumbo-parser и prometheus-cpp; их поведение задаёт сборка MTA.Откат версии MTA и настройка через APIМеханизмПри откате PowerMTA на версию без API настройки заведённое через него становится невидимым, но не удаляется; таблица руководства говорит, что уцелеет при откате между версиями с API.Запуск в образеМеханизмЭкспериментальный запуск MTA в контейнере Linux: пакет, лицензия и конфигурация ставятся при сборке образа или подключаются при запуске.Национальные алфавитыМеханизмФайлы конфигурации — в UTF-8, поэтому национальные домены и адреса пишут как есть; письмо с национальным адресом в конверте уйдёт, только если приёмник поддерживает SMTPUTF8.Принять, направить, доставитьМеханизмПуть письма внутри узла: принять, решить куда, доставить — и между этими тремя шагами живут все настройки.Первоначальная настройкакритичноПроцедураРуководство требует задать руками две вещи: адрес ответственного и управление ретрансляцией — источники подающих машин с always-allow-relaying; правила приёма нужны, только если узел принимает входящую почту.Установка на LinuxкритичноПроцедураПоставить пакет вендора штатным менеджером, положить ключ лицензии, сверить конфигурацию с требованиями и запустить MTA один раз — дальше он поднимается сам.Подготовить машину под MTAкритичноПроцедураПять требований и поддерживаемая операционная система должны быть на месте до установки: статический адрес с именем, доступный резолвер, синхронное время, посчитанное железо и ключ лицензии.Резервная копия узла и восстановлениеПроцедураПять каталогов составляют восстановимое состояние узла; восстановление — это остановить MTA, вернуть каталоги и запустить снова.Обновление MTAПроцедураПеред обновлением убедиться, что в файле лицензии лежит ключ, годный для новой версии, и что срок поддержки не истёк, — и только потом обновлять пакет.Переключение на запасной узелПроцедураПорядок передачи работы другой машине: перенаправить подачу, при возможности подключить спул упавшего узла вторым, перезапустить запасной, а при возврате проделать обратное.Запуск и остановка MTAПроцедураMTA работает службой на Windows и демоном на Unix; после запуска рядом с ним должен оказаться сторож, а остановка прекращает доставку, не трогая писем на диске.Удаление MTAПроцедураУдаление пакета штатным менеджером. Состояние узла при этом остаётся на диске.Развёртывание в облакеПроцедураУстановка в облаке добавляет к обычной несколько своих условий: выбор типа машины по прикидке, закреплённый адрес и снятое ограничение на исходящий почтовый порт.Обращение к вендоруПроцедураЧто собрать и куда обратиться, когда своими силами разобраться не вышло.Установка на WindowsПроцедураУстановка мастером, с теми же требованиями к лицензии и конфигурации, что и на Linux.GlobalкритичноБлок конфигурацииСтроки, принадлежащие не очереди, а самому экземпляру: потолки, спул, слушатели, журналирование, лицензия и веб-монитор.<spool>Блок конфигурацииКаталог, в котором MTA держит файлы писем, пока они ждут доставки; каталогов может быть несколько, и у каждого свои приоритет и порог свободного места.<include-config>Блок конфигурацииТо же, что include с адресом, но позволяет задать заголовки запроса — например, авторизацию.disable sourceкритичноКомандаЕсть опция вернуть его автоматически через интервал — без неё адрес останется отключённым навсегда.reloadкритичноКомандаПеречитывает файл конфигурации и включает новые настройки; при ошибке в файле команда не проходит, а узел продолжает работать на прежних.test configкритичноКомандаРазбирает конфигурацию, ничего не применяя.enable sourceКомандаВозвращает адрес досрочно — и это единственный способ, если при отключении не задали таймер.show disabled sourcesКомандаЕдинственное окно в механизм отключения: показывает и ручные отключения, и сделанные правилами почтовика.show licenseКомандаПечатает сведения лицензии: продукт, версию, платформу, владельца, серийный номер, даты выдачи и окончания.show versionКомандаПечатает версию, дату сборки и ревизию.Заменить файл конфигурации по сетиТочка APIЗаписывает на узел один или несколько файлов конфигурации — без проверки содержимого и без перечитывания.Прочитать файл конфигурации по сетиТочка APIОтдаёт содержимое файла конфигурации из /etc/pmta/ — сам файл или строкой внутри JSON.Перечень файлов конфигурацииТочка APIПеречисляет действующие файлы конфигурации узла: главный, подключённые и файл умолчаний.Адреса, которые есть на машинеТочка APIПеречисляет адреса, настроенные на самой машине.Чтение спула при запускеМетрикаДоля выполненного чтения спула при запуске, в процентах.КонфигурацияЭкран монитораПоказывает главный и подключённые файлы конфигурации и позволяет их править; сохранение само перечитывает конфигурацию.ЛицензияЭкран монитораПоказывает лицензию MTA и позволяет её добавить или заменить.Главный файл конфигурации узлакритичноФайл/etc/pmta/config — обычный текстовый файл в UTF-8, читается при старте и по перезагрузке настроек; хранит пароли и ключи подписи открытым текстом.Файл лицензииФайлКлюч лицензии простым файлом — /etc/pmta/license на Linux, license.dat в каталоге установки на Windows; на Windows обязателен ASCII, а не Unicode.Файл умолчанийФайлВторой основной файл конфигурации: умолчания, поверх которых читается главный.