Мониторинг веб-приложений в Azure

Служба приложений Azure
Azure Log Analytics
Azure Monitor

В этом сценарии рассматриваются службы мониторинга, которые можно использовать, и описывается модель потока данных, используемая с несколькими источниками данных. Что касается мониторинга, то с развертыванием Azure могут работать многие средства и службы. В этом сценарии выбираются готовые службы, так как их легко использовать. Остальные параметры мониторинга рассматриваются далее.

Архитектура

Скачайте файл Visio для этой архитектуры.

Поток данных

В этом сценарии для размещения приложения и уровня данных используется управляемая среда Azure. Данные передаются в сценарии следующим образом:

  1. пользователь взаимодействует с приложением;
  2. с помощью браузера и службы приложений выполняется отправка телеметрии;
  3. служба Application Insights собирает и анализирует данные о работоспособности приложения, его производительности и использовании;
  4. разработчики и администраторы могут просматривать данные о работоспособности, производительности и использовании.
  5. при помощи Базы данных SQL Azure выполняется отправка телеметрии;
  6. Azure Monitor собирает и анализирует метрики инфраструктуры и квоты;
  7. служба Log Analytics собирает и анализирует журналы и метрики;
  8. разработчики и администраторы могут просматривать данные о работоспособности, производительности и использовании.

Компоненты

  • Служба приложений Azure — это служба PaaS (платформа как услуга), используемая для создания и размещения приложений в управляемых виртуальных машинах. Вы сами управляете базовой вычислительной инфраструктурой, в которой работают приложения. Служба приложений выполняет мониторинг квот по использованию ресурсов и приложений метрики, журналов сведений о диагностике и оповещений, основанных на метриках. Более того, Application Insights можно использовать для создания тестов доступности, с помощью которых можно проверять приложения из разных регионов.
  • Application Insights — это расширяемая служба управления производительностью приложений (APM) для разработчиков, поддерживаемая на нескольких платформах. Она используется для отслеживания приложений, обнаружения таких отклонений в работе приложений, как низкая производительность и ошибки, а также для отправки телеметрии на портал Azure. Также Application Insights можно использовать для ведения журнала, распределенной трассировки и метрик пользовательского приложения.
  • Azure Monitor предоставляет метрики и журналы инфраструктуры базового уровня для большинства служб в Azure. Пользователь может взаимодействовать с метриками несколькими способами, включая создание диаграмм метрик на портале Azure, доступ к метрикам через REST API или запрос метрик с помощью PowerShell или интерфейса командной строки. Также Azure Monitor предлагает использовать данные непосредственно в Log Analytics и других службах, в которых пользователь может запрашивать и комбинировать их с данными из других источников локально или в облаке.
  • Log Analytics используется для сопоставления данных об использовании и производительности, собранных Application Insights, с данными о конфигурации и производительности ресурсов Azure, которые поддерживают работу приложения. Чтобы передать журналы аудита SQL Server в Log Analytics в этом сценарии используется агент Azure Log Analytics. В колонке Log Analytics на портале Azure можно записывать запросы и просматривать данные.

Подробности сценария

Платформа как услуга (PaaS) в Azure используется для управления вычислительными ресурсами. От нее зависят способы мониторинга развертываний. Azure включает в себя несколько служб мониторинга, каждая из которых выполняет определенную роль. Вместе эти службы предоставляют комплексное решение для сбора, анализа и использования телеметрии из соответствующих приложений и ресурсов Azure.

В этом сценарии рассматриваются службы мониторинга, которые можно использовать, и описывается модель потока данных, используемая с несколькими источниками данных. Что касается мониторинга, то с развертыванием Azure могут работать многие средства и службы. В этом сценарии выбираются готовые службы, так как их легко использовать. Остальные параметры мониторинга рассматриваются далее.

Потенциальные варианты использования

Другие варианты использования:

  • инструментирование веб-приложения для мониторинга телеметрии;
  • сбор телеметрии интерфейса и сервера для приложения, развернутого в Azure;
  • мониторинг метрик и квот, связанных со службами в Azure.

Рекомендации

Эти рекомендации реализуют основные принципы платформы Azure Well-Architected Framework, которая является набором руководящих принципов, которые можно использовать для улучшения качества рабочей нагрузки. Дополнительные сведения см. в статье Microsoft Azure Well-Architected Framework.

Эффективность работы

Оперативное превосходство охватывает процессы операций, которые развертывают приложение и продолжают работать в рабочей среде. Дополнительные сведения см. в разделе "Общие сведения о принципах эффективности работы".

Наблюдение

Application Insights рекомендуется добавить в код при разработке с помощью пакетов SDK для Application Insights с последующей настройкой для каждого приложения. Пакеты SDK с открытым исходным кодом доступны для большинства исполняющих сред. Чтобы расширить и контролировать собранные данные, включите пакеты SDK для тестирования и рабочего развертывания в процесс разработки. Основное требование для приложений — наличие прямой или непрямой связи с конечной точкой приема Applications Insights, размещенной с помощью адреса, ориентированного на Интернет. После этого можно добавить телеметрию или обогатить существующую коллекцию телеметрии.

Еще один быстрый способ приступить к работе — мониторинг сред выполнения. Управление собранными данными телеметрии должно выполнятся с помощью файлов конфигурации. Например, можно включить методы среды выполнения, в которые включены такие инструменты как монитор состояний Application Insights, предназначенный для развертывания пакетов SDK в нужную папку, и добавить нужные конфигурации для начала мониторинга.

Как и Application Insights, Log Analytics предоставляет средства для анализа данных из разных источников, создания сложных запросов и отправки упреждающих оповещений на основе указанных условий. Просматривать телеметрию можно также на портале Azure. Log Analytics используется для повышения эффективности таких существующих служб мониторинга, как Azure Monitor, а также для мониторинга локальных сред.

В Application Insights и Log Analytics используется язык запросов Azure Log Analytics. Также для анализа телеметрии, собранной Application Insights и Log Analytics, с помощью единого запроса можно использовать запросы между ресурсами.

Azure Monitor, Application Insights и Log Analytics используются для отправки оповещений. Например, к оповещениям метрики Azure Monitor уровня платформы можно отнести загрузку ЦП, а к оповещениям метрик Application Insights уровня приложения — время отклика сервера. Azure Monitor уведомляет о новых событиях в журнале действий Azure, в то время как служба Log Analytics может уведомлять о метриках или данных о событиях для служб, настроенных для ее использования. Функция "Унифицированные оповещения" в Azure Monitor представляет собой новый, единый интерфейс оповещений в Azure, для которого используется разная классификация.

Альтернативные варианты

С помощью популярных функций в этой статье описываются доступные параметры мониторинга. При этом у пользователя остается богатый выбор, включая возможность создания собственных механизмов ведения журнала. Добавлять службы мониторинга рекомендуется при создании уровней в решении. Ниже приведены некоторые расширения и альтернативные варианты.

Дополнительные сведения см. в разделе "Мониторинг для DevOps" в Azure Well-Architected Framework.

Доступность и масштабируемость

По большей части в данном сценарии основное внимание уделяется решениям PaaS для мониторинга, так как их удобно использовать для обеспечения доступности и масштабируемости, а также они поддерживаются соглашениями об уровне обслуживания (SLA). Например, использование служб приложений предусматривает SLA для гарантированной доступности.

У Application Insights есть ограничения на количество обрабатываемых запросов в секунду. Если превысить лимит, то возникнет регулирование количества запросов сообщений. Чтобы этого избежать, необходимо выполнить фильтрацию или выборку, что позволит уменьшить интенсивность передачи данных.

Тем не менее, за рекомендации по высокой доступности, предназначенные для запущенного приложения, ответственность несет разработчик. Дополнительные сведения о масштабировании см . в рекомендации по масштабируемости в базовой эталонной архитектуре веб-приложений. После развертывания приложения можно использовать Application Insights и настроить тесты для мониторинга доступности.

Безопасность

Безопасность обеспечивает гарантии от преднамеренного нападения и злоупотребления ценными данными и системами. Дополнительные сведения см. в разделе "Общие сведения о компоненте безопасности".

Информация с ограниченным доступом и требования соответствия влияют на сбор, сохранение и хранение данных. Узнайте больше об обработке телеметрии в Application Insights и Log Analytics.

Следующие вопросы безопасности также могут быть применены.

  • Разработка плана обработки личной информации в случае, когда разработчикам можно собирать собственные данные или обогащать существующую телеметрию.
  • Рассмотрение сохранения данных. Например, Application Insights хранит данные телеметрии на протяжении 90 дней. Для доступа к архивным данным, которые хранятся в течение длительного времени, используется Microsoft Power BI, непрерывный экспорт или REST API. Применимы ставки за использование хранилища.
  • Ограничение доступа к ресурсам Azure. Это позволит управлять доступом к данным и тем, кто может просматривать телеметрию из определенного приложения. Чтобы получить дополнительные сведения о блокировке доступа к мониторингу телеметрии, см. статью Ресурсы, роли и контроль доступа в Application Insights.
  • Рассмотрение необходимости управлять доступом на чтение или запись в коде приложения, чтобы избежать добавления пользователями маркеров версий или тегов, которые ограничивают прием данных из приложения. При использовании Application Insights контроль над отдельными элементами данных после их отправки на ресурс отсутствует, поэтому если у пользователя есть доступ к каким-либо данным, он получает доступ ко всем данным отдельного ресурса.
  • Добавление механизма системы управления для применения управления политикой или затратами в ресурсах Azure (при необходимости). В качестве примера можно использовать Log Analytics для связанного с безопасностью мониторинга, например, политики и управления доступом на основе ролей. Также можно использовать политику Azure для создания, назначения и администрирования определений политики.
  • Чтобы отслеживать потенциальные проблемы безопасности и получать центральное представление о состоянии безопасности ресурсов Azure, рассмотрите возможность использования Microsoft Defender для облака.

Оптимизация затрат

Оптимизация затрат заключается в поиске способов уменьшения ненужных расходов и повышения эффективности работы. Дополнительные сведения см. в разделе Обзор критерия "Оптимизация затрат".

Мониторинг расходов может быстро сложиться. Ознакомьтесь с ценами заранее, понять, что вы отслеживаете, и проверка связанные сборы за каждую службу. Azure Monitor бесплатно предоставляет базовые метрики, в то время как стоимость мониторинга для Application Insights и Log Analytics основывается на количестве принятых данных и числе выполненных тестов.

Для начала рекомендуется оценить затраты с помощью калькулятора цен. Измените различные варианты ценообразования в соответствии с ожидаемым развертыванием.

Данные телеметрии из Application Insights оправляются на портал Azure как во время отладки, так и после публикации приложения. В целях проверки и предотвращения расходов инструментируется ограниченный объем данных телеметрии. Чтобы добавить индикаторы, можно расширить ограничения телеметрии. Дополнительные сведения см. в статье Выборка в Application Insights.

После развертывания можно просмотреть показатели эффективности Live Metrics Stream. Эти данные не хранятся — вы просматриваете метрики в режиме реального времени, но данные телеметрии можно собирать и анализировать позже. Плата за данные Live Stream не взимается.

Плата за использование Log Analytics начисляется за каждый гигабайт данных, полученных службой. Каждый месяц первые 5 ГБ данных, получаемых службой Azure Log Analytics, предоставляются бесплатно. Также эти данные бесплатно сохраняются в течение первого 31 дня в рабочей области Log Analytics.

Соавторы

Эта статья поддерживается корпорацией Майкрософт. Первоначально он был написан следующими участник.

Автор субъекта:

  • Шон Гиббс | Главный инженер программного обеспечения

Чтобы просмотреть недоступные профили LinkedIn, войдите в LinkedIn.

Следующие шаги

Ознакомьтесь с материалами, которые помогут приступить к работе с помощью собственного решения для мониторинга.