Incoming Email Monitor
Incoming Email Monitor создаёт и снимает алерты по письмам на уникальный адрес, привязанный к монитору. Удобно для legacy-систем, сторонних alerting-инструментов и любых сервисов, которые шлют уведомления по email.
Как это работает
- При создании монитора Status200 выдаёт уникальный email для него.
- Входящие письма на этот адрес проверяются по заданным критериям.
- По результатам можно создавать новые алерты или закрывать существующие.
Так email-based alerting подключается к incident workflow в Status200.
Создание монитора
- Monitors в dashboard Status200.
- Create Monitor.
- Тип: Incoming Email.
- Параметры:
- Name — понятное имя;
- Description — назначение.
- Alert Creation Criteria — когда создавать алерт.
- Alert Resolution Criteria — когда снимать алерт.
- Create.
После создания на странице монитора отображается уникальный адрес.
Формат адреса
monitor-{secret-key}@{inbound-domain}Пример: monitor-abc123def456@inbound.yourdomain.com
Скопируйте адрес и настройте внешние системы на отправку писем на него.
Поля для критериев
| Поле | Описание |
|---|---|
| Email Subject | Тема письма |
| Email From | Адрес отправителя |
| Email Body | Текст тела (plain text) |
| Email To | Адрес получателя |
| Email Received | Временные условия по моменту получения |
Типы фильтров
Строковые (Subject, From, Body, To)
| Фильтр | Описание | Пример |
|---|---|---|
| Contains | Содержит подстроку | Subject contains "CRITICAL" |
| Not Contains | Не содержит | Subject not contains "TEST" |
| Equals | Точное совпадение | From equals "alerts@service.com" |
| Not Equals | Не равно | Subject not equals "OK" |
| Starts With | Начинается с | Subject starts with "[ALERT]" |
| Ends With | Заканчивается на | Subject ends with "- Production" |
| Is Empty | Пусто | Body is empty |
| Is Not Empty | Не пусто | Subject is not empty |
По времени (Email Received)
| Фильтр | Описание | Пример |
|---|---|---|
| Received In Minutes | Письмо пришло за последние X минут | Email received in 30 minutes |
| Not Received In Minutes | За X минут писем не было | Email not received in 60 minutes |
Примеры настроек
Пример 1: алерт по критическим письмам
Alert Creation Criteria:
- Email Subject Contains "CRITICAL"
- ИЛИ Email Subject Contains "ALERT"
- ИЛИ Email Subject Contains "ERROR"
Alert Resolution Criteria:
- Email Subject Contains "RESOLVED"
- ИЛИ Email Subject Contains "OK"
- ИЛИ Email Subject Contains "RECOVERED"
Пример 2: конкретный отправитель
Alert Creation Criteria:
- Email From Equals "monitoring@legacy-system.com"
- И Email Subject Contains "Failed"
Alert Resolution Criteria:
- Email From Equals "monitoring@legacy-system.com"
- И Email Subject Contains "Success"
Пример 3: heartbeat (нет письма = алерт)
Alert Creation Criteria:
- Email Received Not Received In Minutes — значение
60
Алерт, если за 60 минут не пришло ни одного письма — удобно для job’ов и batch-процессов с отчётными письмами.
Alert Resolution Criteria:
- Email Received Received In Minutes — значение
5
Снимает алерт при получении письма.
Сценарии использования
Legacy-системы
Старые системы часто шлют только email. Incoming Email Monitor позволяет:
- превращать письма в инциденты Status200;
- автоматически закрывать при recovery-письмах;
- централизовать алерты из нескольких legacy-источников.
Сторонние сервисы
Интеграция с облачными и security-уведомлениями:
- AWS, GCP, Azure;
- сканеры безопасности;
- завершение бэкапов;
- предупреждения об истечении SSL.
Плановые и batch-задачи
- алерт, если письмо о завершении не пришло вовремя;
- сбои job’ов по error-письмам;
- контроль data pipeline по completion emails.
Агрегация из разных мониторингов
- Nagios, Zabbix и др. → email → единый incident flow в Status200;
- один источник правды по алертам.
Переменные шаблонов
В шаблонах инцидентов доступны поля из письма:
| Переменная | Описание |
|---|---|
{{emailSubject}} | Тема |
{{emailFrom}} | Отправитель |
{{emailTo}} | Получатель |
{{emailBody}} | Текст тела |
{{emailReceivedAt}} | Время получения |
Сводка по монитору
- Last Email Received At — время последнего письма;
- From — отправитель последнего письма;
- Subject — тема;
- Email Headers — полные заголовки (раскрываются);
- Email Body — тело (раскрывается).
Self-hosted
Нужен провайдер входящей почты. Сейчас поддерживается:
- SendGrid Inbound Parse — см. SendGrid Inbound Email Integration.
На что обратить внимание
- Безопасность адреса: в адресе есть secret key — как пароль, не публикуйте.
- Размер письма: очень большие вложения могут обрезаться или отклоняться провайдером.
- Задержка: обработка асинхронная, между отправкой и алертом возможны секунды.
- Регистр: строковые сравнения без учёта регистра.
- Plain text: критерии по телу используют plain text; HTML снимается.
Устранение неполадок
Письма не доходят
- Проверьте адрес на опечатки.
- Спам-фильтры.
- Настройки inbound-провайдера.
- Логи Status200.
Алерты не создаются
- Совпадение критериев с содержимым письма.
- Монитор не отключён.
- Логи оценки на странице монитора.
- Сначала тест с точным совпадением строк.
Алерты не снимаются
- Критерии resolution соответствуют recovery-письму.
- Есть активный алерт для закрытия.
- Recovery уходит на тот же адрес монитора.