Удивительно много оборудования умеет передавать данные только по электронной почте. Системы резервного копирования, средства мониторинга сети, системы управления зданиями, принтеры, промышленные контроллеры и старые измерительные приборы отправляют уведомления по SMTP, поскольку на момент их разработки другого способа интеграции не было. Отдельный ящик для каждого устройства превращает эту особенность из неудобства в управляемую схему.
На большинстве объектов все устройства отправляют сообщения на один общий адрес. Такой подход работает до тех пор, пока не понадобится понять, какое из сорока устройств сообщает о проблеме.
Почему один общий адрес не справляется
Направить всё на alerts@ кажется очевидным решением, но со временем оно неизбежно начинает давать сбои.
Темы писем и имена отправителей различаются, поскольку каждый производитель использует собственный формат. Чтобы впоследствии разделять сообщения, приходится создавать правила на основе текста, который выдаёт конкретное устройство. После обновления прошивки формулировки могут измениться без предупреждения, и правила перестанут работать.
Ситуацию усугубляет объём. Одно слишком активное устройство, например монитор при постоянно меняющемся состоянии или система, которая снова и снова запускает неудачное задание, способно отправить сотни сообщений и скрыть среди них всё остальное. При общем адресе нельзя заглушить один источник, не отключив правило, принимающее сообщения от всех устройств.
Кроме того, теряется однозначная связь с источником. При отдельном ящике адрес сам указывает на устройство ещё до того, как кто-либо прочитает текст сообщения.
Маршрутизация без догадок
Главное преимущество отдельного ящика для каждого устройства состоит в том, что маршрутизация опирается на структуру, а не на интерпретацию текста.
Идентификация без разбора содержимого. Письмо на ups-basement@ приходит от ИБП в подвале. Не нужны ни правило, ни сопоставление темы, ни догадки после изменения шаблона производителем.
Независимая обработка. Уведомления от одного устройства можно отключить, ограничить по частоте или игнорировать, не затрагивая остальные, поскольку у него отдельный адрес назначения.
Простое списание оборудования. При выводе устройства из эксплуатации достаточно удалить один ящик. Не придётся менять фильтр и надеяться, что от него не зависело что-то ещё.
Обработка скриптом для каждого источника. Скрипт, который читает ящик одного устройства, заранее знает формат сообщений. Поэтому разбор данных значительно надёжнее, чем в смешанном потоке. Такой подход описан в статье про приём данных через электронную почту.
Вопрос стоимости
Отдельный ящик для каждого устройства имеет смысл лишь там, где оплата не взимается за каждый ящик. Именно поэтому такая схема встречается редко.
При цене $7 за пользователя сорок устройств обойдутся в $3,360 в год только ради приёма машинных уведомлений. Ни один разумный руководитель не одобрит такие расходы. В тарифах с ограничением количества по уровням сорок ящиков для устройств ничего не стоят сверх уже выбранного тарифа: Pro допускает 300 ящиков на домен, Agency 1,000.
Однако они расходуют общий объём хранилища. Письма от устройств накапливаются постоянно, поскольку оборудование никогда не прекращает отправку. Поэтому квота для каждого ящика и правило хранения в данном случае обязательны. Причины подробно разобраны в статье про квоты почтовых ящиков.
Чаще всего лучше использовать псевдонимы
Если говорить прямо, многим объектам нужен не отдельный ящик, а отдельный псевдоним для каждого устройства.
Если сообщения каждого устройства не обрабатываются отдельно и требуется лишь понимать источник, псевдонимы дают идентифицирующий адрес без дополнительного ящика, который придётся администрировать и который будет занимать хранилище. Все письма поступают в одно место, но адрес получателя по-прежнему указывает, откуда они пришли.
Полноценные ящики нужны, если сообщения от каждого устройства обрабатываются независимо, устройства относятся к разным командам, которым не следует видеть чужие уведомления, либо для устройств установлены разные сроки хранения. Псевдонимы подходят, если все сообщения читает один человек и требуется только различать источники.
На Starter для одного ящика доступно 30 псевдонимов, на Pro 50, на Agency 100. Для большинства парков оборудования этого достаточно, и создавать множество полноценных ящиков вообще не потребуется.
Настройка устройств
Практические сложности при использовании отдельных ящиков возникают на стороне оборудования. О них лучше узнать до внедрения.
Производители поддерживают современный стек отправки почты в очень разной степени, а объём работ зависит от возраста парка оборудования. На объекте с устройствами, купленными за последние пять лет, почти всё заработает без труда. Система управления зданием двадцатилетней давности потребует другого подхода. Описанный ниже локальный SMTP-релей является стандартным, а вовсе не экзотическим решением.
Старые устройства часто поддерживают только SMTP без аутентификации через порт 25 вместо аутентифицированной отправки, определённой в RFC 6409, либо используют давно устаревшие способы аутентификации. Некоторые вообще не умеют работать с TLS. Такие устройства не могут напрямую отправлять письма в современный почтовый сервис. Обычно в локальной сети разворачивают SMTP-релей, который принимает от них сообщения без аутентификации и пересылает дальше уже с правильной аутентификацией.
Если устройства поддерживают современную отправку, выдайте каждому собственные учётные данные вместо одной общей пары. Устройство в недостаточно доверенном сегменте сети с общими реквизитами создаёт риск, которого можно избежать отдельными учётными данными. Смена пароля одного устройства тогда никак не затронет остальные.
Проверяйте каждое устройство реальным срабатыванием, а не встроенной кнопкой тестирования. Тестовые сообщения производителей нередко проходят по другому участку программы, поэтому успешно отправляются даже тогда, когда настоящее уведомление не работает.
Как называть ящики, чтобы парк оборудования оставался понятным
Адрес служит единственной меткой, поэтому из него должны быть понятны расположение и тип оборудования без обращения к отдельному списку.
Такие адреса, как ups-basement@ или nas-office2@, останутся понятными и через два года, в отличие от device7@. Если на объекте уже ведётся реестр оборудования, лучше использовать его идентификаторы, а не придумывать параллельную систему, которая уже через год начнёт с ним расходиться.
Что делать с полученными сообщениями
Отдельный ящик для устройства полезен лишь тогда, когда кто-то или что-то обрабатывает его сообщения. Худший сценарий представляет собой набор ящиков, которые никто не открывает.
Для каждого устройства решите, будет ли уведомления читать человек, обрабатывать сценарий или они станут архивом на случай будущей неисправности, когда понадобится история. Все три варианта допустимы. Нельзя лишь оставлять вопрос без ответа, поскольку непрочитанные сообщения от оборудования создают ложное ощущение работающего мониторинга.
Для действительно срочных событий электронная почта никогда не была подходящим каналом. Если из-за неисправности нужно разбудить дежурного специалиста, устройство должно обращаться к системе экстренного оповещения, а ящик должен лишь хранить историю события, а не передавать сам сигнал тревоги.