Состояние узла целиком одним документом

критично

/status
Единственная точка, описанная в руководстве целиком

Запрос отдаёт всё состояние узла разом, структурой. Формат на выбор — XML или JSON, и структуры совпадают поле в поле, так что читающая сторона берёт любой.

Это единственная точка, для которой руководство приводит полный вывод — и в обоих форматах. Для остальных документация скупее.

Охват шире, чем у страницы, которую он повторяет. Кроме трафика и очередей ответ несёт название продукта, версию, дату сборки и ревизию; серийный номер лицензии; сведения о машине; состояние резолвера и спула; признак того, работает ли узел.

Отсюда и его роль: одним запросом получается снимок, которого хватает и для наблюдения, и для опознания узла — что за версия, какая лицензия, сколько занято.

Главная ловушка — принять снимок за историю. Ответ описывает момент: сколько соединений открыто сейчас, сколько получателей в очереди сейчас. Два последовательных запроса дают две точки, а не отрезок между ними: всё, что случилось между замерами и успело закончиться, не попадёт ни в один из них. Для событий есть учёт, для состояния — этот запрос, и подменять одно другим не выйдет.
Что делает Хаб. Это основной источник его телеметрии. Опрос узла берёт пять точек сразу, и эта — первая: из неё приходят трафик, очередь, соединения, спул и сведения о машине.

⚠️ Чего в ответе нет — того нет и у нас. Уровень лицензии приходит серийным номером, а не тарифом, поэтому потолок соединений Хабу неизвестен (licensing). События между замерами теряются: короткий заход очереди в щадящий режим опрос пропустит (backoff-mode).

Учёт Хаб получает отдельно — потоком через веб-крючок, а не этим запросом. Разделение верное: состояние спрашивают, события принимают.

Рекомендуемые значения

Что спрашивать этим запросом, а что нет:

Вопрос Отвечает ли
что сейчас с узлом да — это его назначение
какая версия и лицензия да, включая серийный номер
сколько писем ушло за час нет — это учёт
когда очередь была в щадящем режиме нет — это история очереди

Формат выбирают по читающей стороне. Структуры совпадают, так что разницы, кроме удобства разбора, нет.

Частота опроса — компромисс. Чаще значит меньше пропущенных событий и больше нагрузки; реже — наоборот. События, которые нельзя пропускать, надёжнее брать из учёта, а не учащением опроса.

Разграничение «состояние против событий» наше. Из руководства здесь состав ответа, два формата с совпадающими структурами и то, что охват шире страницы состояния.
Пример в конфигурации
# снимок узла одним запросом
curl -s 'http://127.0.0.1:8080/status?format=json'curl -s 'http://127.0.0.1:8080/status?format=xml'
Выделенная строка отдаёт то же самое, что и вторая, — структуры совпадают поле в поле. Выбор формата ни на что, кроме удобства разбора, не влияет.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

Типичные ошибки и проблемы

что делают не так и чем это кончается3 ошибки▶

Строят историю из последовательных снимков

§ 5.3

Чем чреватоОтвет описывает момент. Всё, что случилось между двумя замерами и успело закончиться, не попадёт ни в один из них — и восстановленная история будет тем беднее, чем реже опрос.
Как заметитьВ построенной истории событий меньше, чем их было, а границы кратны периоду опроса.
Как правильноБрать события из учёта, а этот запрос — для состояния. Учащение опроса проблему не решает, только смягчает.

Ждут от серийного номера уровня лицензии

§ 5.3

Чем чреватоВ ответе серийный номер, а не тариф. Потолок соединений, который лицензия ставит молча, из этого ответа не выводится — и системa, считающая лимиты, о нём не узнает.
Как заметитьРасчётный темп не достигается, в телеметрии всё в норме.
Как правильноСпрашивать уровень лицензии командой на узле. В ответе запроса его нет.

Открывают точку наружу ради удобства

§ 5.3

Чем чреватоОтвет несёт версию, лицензию, сведения о машине и состояние очередей — почти полное описание узла. Доступный из интернета, он избавляет постороннего от разведки.
Как заметитьПорт веб-монитора отвечает не только с самой машины.
Как правильноДержать доступ по правам и с ограниченных адресов. Наружу выносить только то, что действительно нужно снаружи.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Наследование
Наследования у точки API нет: это адрес запроса. Наследуются настройки доступа к веб-монитору — порт и права, — они задаются на уровне узла директивами http-mgmt-port и http-access.
Как проверить на узле
Проверить, что точка доступна и что в ответе ожидаемое:
curl -s 'http://127.0.0.1:8080/status?format=json' | head -40
pmta show status
Вторая команда печатает то же самое в консоли — по ней удобно сверить, что запрос отдаёт полную картину, а не урезанную правами доступа.
В Хабе
Цена ошибки
безопасно: неверное значение ничего не ломает
Сценарии
Планирование мощности · Собрать телеметрию
Важность
критично