Мониторинг сайта через Azure Logic Apps и отправка оповещений по Gmail

О чём статья
- Быстрая настройка Logic App для периодического HTTP-пинга сайта.
- Условная обработка кодов состояния HTTP и отправка уведомлений через Gmail.
- Как тестировать, сохранять и эксплуатировать рабочий процесс.
Основные варианты поиска в статье
- Azure Logic Apps мониторинг сайта
- Logic Apps Gmail оповещение
- HTTP probe Azure Logic App
- Шаблон мониторинга веб-сайта
Введение
Azure Logic Apps — это сервис автоматизации рабочих процессов в облаке, который позволяет соединять триггеры и действия (подобно IFTTT или Zapier) для достижения заданного результата. В работе ниже мы настроим простую систему мониторинга: каждые 15 минут Logic App выполнит HTTP GET к корню сайта. Если веб-сервер вернёт ошибочный HTTP-статус (4xx или 5xx), Logic App отправит письмо на Gmail с телом ответа в виде HTML-вложения.
Важно: Logic Apps платные — плата снимается за выполнение. В исходном примере упомянута цена и месячная оценка затрат; проверяйте тарифы в своей подписке.
Кому подходит этот подход
- DevOps-инженерам и владельцам небольших сайтов, которым нужно простое аварийное оповещение.
- Командам, которые хотят быструю интеграцию с существующим Gmail-аккаунтом без настройки собственного SMTP.
Не подходит когда
- Вам нужны детализированные метрики уровня производительности (лучше APM-инструменты).
- Требуется сложная корреляция инцидентов и продвинутый инцидент-менеджмент (лучше использовать SIEM/ITSM-интеграции).
Требования к начальной подготовке
- Учётная запись Azure с правами на создание ресурсов (подписка, группа ресурсов).
- Личный Google (Gmail) аккаунт для отправки уведомлений.
- URL вашего сайта, который будет проверяться (корень домена или конкретная страница).
Совет: для тестов можно использовать staging-поддомен или публичную тестовую страницу.
Создание Azure Logic App
- Войдите в Azure Portal.
- Нажмите “New” в левой панели.
- Выберите категорию “Web + Mobile”, затем “Logic App”.
- Введите имя Logic App. Имя станет частью поддомена и может содержать только буквы, цифры и дефисы.
- Укажите Subscription, Resource Group и Location.
- Нажмите “Create”.
После создания откройте Logic App Designer.

- В Designer найдите шаблон “Blank Logic App” и выберите его.
- При запросе выбора триггера нажмите “See More Options” для показа всех сервисов.
- В списке сервисов найдите “HTTP” и выберите его.

- Выберите триггер “When an HTTP request is received” или “HTTP trigger” (вариант в верхней части списка).
Конфигурация HTTP-проба
- Method: GET
- URL: введите конечную точку, например https://www.vash-domen.ru или конкретную страницу.
- Frequency: Minutes
- Interval: 15
Эта настройка создаст регулярный HTTP GET, выполняемый каждые 15 минут.
Добавление условия на код состояния
- Нажмите “New Step” и выберите “Add a Condition”.
- В первое поле вставьте параметр “Status Code” из “Insert Parameters From Previous Steps”.
- Во втором поле выберите условие “GreaterThan Or Equal To”.
- В третьем поле введите “400”.

Логика: любое значение 400 и выше (4xx, 5xx) будет считаться ошибочным. Если условие истинно — последует ветка “If Yes”.
Добавление действия отправки письма через Gmail
В ветке “If Yes” добавьте действие через кнопку “Add An Action”. Найдите в списке “Gmail - Send Email” и выберите его. При первом использовании придётся подключить Gmail — выполните вход и предоставьте необходимые разрешения.

Заполните поля действия:
- To: адрес получателя (например, команда@пример.ком).
- Attachments Content: вставьте параметр “Body” из предыдущих шагов (это тело HTTP-ответа).
- Attachments Content: введите текст “enter text/html” (указывает на HTML-вложение).
- Attachments Name: “response.html”.
- Body: добавьте текст сообщения, включая параметр Status Code.
- Subject: укажите тему, включающую код состояния.
Совет: в Subject добавьте идентификатор сайта и код статуса, чтобы быстрее распознавать письма в почтовом ящике.
Сохранение и тестирование рабочего процесса
- Нажмите “Save” в верхней части Designer.
- После сохранения перейдите в Overview, где видно журнал выполнений.
- Подождите выполнение или запустите вручную через “Run” (если открыта такая функция).
Проверка: если веб-сайт отвечает кодом 4xx/5xx, вы получите письмо с вложением response.html, содержащим тело ответа сервера.
Тестирование триггеров и отладки
- Чтобы протестировать с положительным результатом, временно измените условие: замените “Is Greater Than Or Equal To” на “Is Less Than” и установите порог, например, 200 — затем нажмите Run. Ветки выполнений покажут, какие действия сработали.
- После теста обязательно верните условие обратно на “>= 400”.
Важно: при тестировании будьте осторожны с частыми запусками — это увеличит количество выполнений и потенциально приведёт к дополнительным затратам.
Критерии приёмки
- Logic App создана и сохранена.
- Период опроса установлен на 15 минут.
- Условие на статус код верно настроено (>= 400).
- Подключение к Gmail авторизовано и письмо уходит при вызове “If Yes”.
- Письмо содержит вложение response.html с телом ответа сервера.
Рекомендации по безопасности и приватности
- Аккаунт Gmail лучше использовать сервисный или отдельный рабочий почтовый ящик, не личный аккаунт администратора.
- Ограничьте доступ к Logic App в Azure RBAC (только нужные роли для модификации).
- Не храните секреты в открытом виде; используйте Azure Key Vault для секретов и подключений, где это возможно.
Стоимость и оценка затрат
Logic Apps тарифицируется по вызовам. В исходном примере упомянута ставка и примерная месячная стоимость при интервале 15 минут. Чтобы получить точную оценку, проверьте актуальные цены Azure и посчитайте ожидаемое количество выполнений: 4 запуска в час × 24 × 30 ≈ 2880 запусков в месяц.
Дополнительные подходы и расширения
- Интеграция с Microsoft Teams или Slack вместо Gmail — удобно для командных оповещений.
- Сохранение метрик в Azure Monitor или Log Analytics для построения дашбордов и оповещений на основе SLI/SLO.
- Добавление повторных попыток (retry) или таймаутов в HTTP-запросе.
- Парсинг тела ответа и выделение полезной информации (например, поле ошибки из JSON).
- Подключение собственного SMTP для корпоративной почты вместо Gmail.
Роли и чеклист перед продом
Разделённый чеклист для тех, кто отвечает за развёртывание:
- DevOps
- Проверить RBAC и права на ресурс.
- Подключить Logic App к инфраструктурным инструментам (CI/CD).
- SRE
- Добавить Logic App в мониторинг и оповещения.
- Настроить alert-руководства для операторов.
- Разработчик
- Убедиться, что endpoint возвращает диагностируемое тело ответа.
- При необходимости добавить health endpoint с простым 200.
Мини-методология развёртывания
- Создать ресурс в отделенной Resource Group для тестов.
- Настроить Logic App и пройти тестовые прогонные сценарии.
- Перенести конфигурацию в прод с использованием ARM/Bicep/JSON шаблона.
- Интегрировать секреты через Key Vault.
- Документировать процедуру отката и контакты на случай ложных срабатываний.
Тест-кейсы и критерии приёмки
- Тест: сайт отвечает 200. Ожидаемый результат: оповещение не отправляется.
- Тест: сайт отвечает 500. Ожидаемый результат: приходит письмо на указанный адрес с вложением response.html.
- Тест: авторизация Gmail отозвана. Ожидаемый результат: Logic App регистрирует ошибку подключения в журнале.
- Тест: временное изменение условия на “Is Less Than”. Ожидаемый результат: ветка “If Yes” выполняется при 2xx ответе и не выполняется при 4xx.
Возможные ошибки и как их решать
- Ошибка авторизации Gmail: переподключите аккаунт и обновите разрешения.
- Неправильный URL: проверьте, что URL доступен извне и корректно указан (https://…).
- Частые ложные срабатывания: проверьте, возвращает ли сервер промежуточные 3xx редиректы или нестабильные ответы; рассмотрите фильтрацию по телу ответа.
Матрица рисков и меры смягчения
- Ложные срабатывания — добавить фильтрацию по телу ответа, увеличить порог или использовать агрегированное оповещение.
- Утечка чувствительных данных в почте — не отправлять в письмах чувствительную информацию; хранить её в защищённом месте и присылать только ссылку.
- Рост затрат при частых запусках — пересмотреть период опроса или добавить логику экспоненциального уменьшения частоты при стабильности.
Краткая сводка и что дальше
Logic Apps упрощают автоматизацию и могут стать первым шагом к системам мониторинга и оповещений без развёртывания собственного кода. После настройки базовой логики рассмотрите хранение логов в Log Analytics, интеграцию с ITSM (ServiceNow, PagerDuty) и применение инфраструктурного кода для воспроизводимости.
Краткое руководство по удалению ресурса
- В Azure Portal откройте Resource Group, где создан Logic App.
- Удалите Logic App или всю Resource Group, чтобы очистить все связанные ресурсы.
- Проверьте, не остались ли подключённые сервисы (например, подключённый Gmail). Отзовите разрешения в Google Account если нужно.
Краткий глоссарий
- Logic App: облачный сервис Azure для конструирования рабочих процессов.
- Trigger: событие, запускающее рабочий процесс.
- Action: действие, выполняемое после триггера.
- HTTP probe: проверочный HTTP-запрос к конечной точке.
Итог
Logic App — быстрый и гибкий способ настроить мониторинг доступности сайта с уведомлениями через Gmail. Решение хорошо подходит для простого мониторинга и быстрых оповещений, а при необходимости легко расширяется интеграциями и хранением логов.
Важное
- Не забудьте проверить актуальные тарифы Azure перед массовым развертыванием.
- Используйте сервисные аккаунты и Key Vault для секретов.
Спасибо за внимание — если нужно, могу подготовить JSON-шаблон Logic App для автоматического развертывания или пример Bicep/ARM для CI/CD.
Похожие материалы
Троян Herodotus: как он работает и как защититься
Включить новое меню «Пуск» в Windows 11
Панель полей сводной таблицы в Excel — руководство
Включить новое меню «Пуск» в Windows 11
Дубликаты Диспетчера задач в Windows 11 — как исправить