Поделиться через


Настройка диагностика для Azure Облачные службы (расширенная поддержка) и виртуальных машин

Примечание.

Эта статья относится к Azure Облачные службы (расширенная поддержка). Облачные службы (классическая версия) прекращена с 31 августа 2024 года. Дополнительные сведения см. в статье о модели развертывания облачных служб (классической) с 31 августа 2024 г. Для новой разработки рекомендуется использовать более новый тип службы, предназначенный для конкретной цели, например службу приложение Azure, Функции Azure или приложения контейнеров Azure. Последний список доступных служб см . в каталоге продуктов Azure.

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

В этой статье показано, как включить и настроить Диагностика Azure с помощью Visual Studio. Узнайте, как настроить диагностику в Azure Виртуальные машины, как выбрать типы диагностика данных для сбора и как просмотреть данные после сбора.

Для настройки системы диагностики Azure можно использовать один из следующих вариантов:

  • Измените параметры диагностики в диалоговом окне конфигурации диагностики в Visual Studio. Параметры сохраняются в файле с именем диагностика.wadcfgx. Вы также можете напрямую изменить файл конфигурации. Если вы измените файл вручную, изменения конфигурации вступят в силу после следующего развертывания облачной службы в Azure или следующего запуска службы в эмуляторе.

  • Используйте Cloud Explorer или Server Explorer в Visual Studio 2019 или более ранней версии, чтобы изменить параметры диагностика для облачной службы или виртуальной машины, работающей.

Чтобы настроить Диагностика Azure, измените параметры диагностика в диалоговом окне "Конфигурация диагностики" в Visual Studio. Параметры сохраняются в файле с именем диагностика.wadcfgx. Вы также можете напрямую изменить файл конфигурации. Если вы измените файл вручную, изменения конфигурации вступят в силу после следующего развертывания облачной службы в Azure или следующего запуска службы в эмуляторе.

Предупреждение

В Visual Studio 2022 устаревший эмулятор служба хранилища Azure был заменен эмулятором Azurite при отладке проектов облачной службы. Этот эмулятор Azurite не работает с подключаемым модулем Диагностика Azure, который обеспечивает поддержку Диагностика Azure при выполнении и тестировании локально. Если требуется подключаемый модуль для локальных сценариев выполнения и тестирования, можно обновить строка подключения в конфигурации локальной службы (.cscfg) на учетную запись служба хранилища Azure (см. раздел "Управление строка подключения для учетных записей хранения") или скачать предыдущий служба хранилища Azure эмуляторе. В выпуске Visual Studio 17.10 локальный подключаемый модуль Диагностика Azure устарел и отключен по умолчанию с параметром включения в этом выпуске. Подключаемый модуль был удален в Visual Studio 17.11. Этот подключаемый модуль использовался только с локальным эмулятором вычислений Azure и отключением не влияет на развернутые Облачные службы, использующие расширение Диагностика Azure в Azure. Чтобы включить подключаемый модуль диагностика в Visual Studio 17.10, добавьте следующий параметр свойства в любой PropertyGroup файл проекта: <EnableEmulatorDiagnosticsPlugin>True</EnableEmulatorDiagnosticsPlugin>

Определение учетной записи хранения диагностических данных в Visual Studio

  • Если в .cscfg файле указана диагностика строка подключения, Visual Studio использует его для настройки расширения диагностика во время публикации и при создании XML-файлов общедоступной конфигурации во время упаковки.
  • Если диагностика строка подключения не указан в файле, Visual Studio возвращается к использованию учетной записи хранения, указанной в .cscfg .wadcfgx файле, для настройки расширения диагностика для публикации и создания общедоступных XML-файлов конфигурации во время упаковки.
  • Диагностика строка подключения в .cscfg файле имеет приоритет над учетной записью хранения в .wadcfgx файле. Если в файле указан .cscfg диагностика строка подключения, Visual Studio использует этот строка подключения и игнорирует учетную запись хранения..wadcfgx

Что делает флажок "Обновить хранилище средств разработки строка подключения..."

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

Включение диагностика в Azure Виртуальные машины

В Visual Studio можно собирать диагностика данные для Azure Виртуальные машины.

Включение диагностика в Azure Виртуальные машины

  1. В обозревателе сервера выберите узел Azure и подключитесь к подписке Azure (если это еще не сделано).

  2. Разверните узел Виртуальные машины . Вы можете создать виртуальную машину или выбрать имеющийся узел.

  3. В контекстном меню нужной виртуальной машины выберите Настроить. Откроется диалоговое окно конфигурации виртуальной машины.

    Настройка виртуальной машины Azure

  4. Если он еще не установлен, добавьте расширение диагностики агента Log Analytics. Это расширение позволяет собирать диагностические данные для виртуальной машины Azure. В разделе "Установленные расширения" в раскрывающемся списке "Выбор доступного расширения" выберите "Диагностика агента мониторинга Майкрософт".

    Установка расширения виртуальной машины Azure

    Примечание.

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

  5. Чтобы добавить расширение и просмотреть информацию в диалоговом окне конфигурации диагностики, выберите Добавить.

  6. Чтобы указать учетную запись хранения, выберите Настройка и нажмите кнопку ОК.

    Каждая вкладка (кроме вкладок Общие и Каталоги журналов) соответствует определенному источнику диагностических данных, которые можно собирать.

    Включение Диагностика Azure и конфигурации

    По умолчанию открывается вкладка Общие, где вы можете выбрать следующие режимы сбора диагностических данных: Только ошибки, Все сведения и Пользовательский план. Параметр по умолчанию , только ошибки, принимает наименьший объем хранилища, так как он не передает предупреждения или трассировки сообщений. В режиме Все сведения передается больше всего информации; это самый затратный по объему хранения вариант.

  7. В нашем примере мы выберем режим Пользовательский план , в котором вы можете настроить параметры сбора данных.

  8. В поле Квота диска в МБ вы указываете, сколько хотите выделить места для диагностических данных в своей учетной записи хранения. Значение по умолчанию можно изменять.

  9. На каждой вкладке диагностика данных, которые вы хотите собрать, установите флажок "Включить передачу <типа> журнала".

    Например, если вы хотите собирать журналы приложений, установите флажок "Включить передачу журналов приложений" на вкладке "Журналы приложений". Кроме того, укажите другие сведения, необходимые для каждого типа данных диагностика. Сведения о параметрах на каждой вкладке см. в разделе Настройка источников диагностических данных далее в этой статье.

  10. После включения сбора всех нужных данных диагностика нажмите кнопку "ОК".

  11. Сохраните обновленный проект.

    Сообщение в окне Журнал действий Microsoft Azure оповещает о выполненном обновлении виртуальной машины.

Настройка источников диагностических данных

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

Журналы приложений

Журналы приложений содержат диагностические данные, сформированные веб-приложением. Если вы хотите записать журналы приложений, установите флажок "Включить передачу журналов приложений". Чтобы увеличить или уменьшить интервал между перемещениями журналов приложений в учетную запись хранения, измените значение параметра Период передачи (мин.). Вы можете также изменить объем сведений, сохраняемых в журнале, установив значение Уровень журнала. Например, выбрав уровень Подробный, вы будете получать подробные сведения, а выбрав уровень Критический — только критические ошибки. Если у вас есть конкретный поставщик диагностика, который выдает журналы приложений, можно записать журналы, добавив глобальный уникальный идентификатор поставщика (GUID) в поле GUID поставщика.

Журналы приложений

Дополнительные сведения о журналах приложений см. в статье Включение ведения журнала диагностики для веб-приложений в службе приложений Azure.

журналы событий Windows;

Чтобы записать журналы событий Windows, установите флажок "Включить передачу журналов событий Windows". Чтобы увеличить или уменьшить интервал между перемещениями журналов событий в учетную запись хранения, измените значение параметра Период передачи (мин.). Установите флажки для типов событий, которые требуется отслеживать.

Журналы событий

Если вы хотите указать пользовательский источник данных, введите его в текстовое поле имени> источника данных и нажмите кнопку "Добавить".< Источник данных добавляется в файл diagnostics.cfcfg.

Счетчики производительности

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

Счетчики производительности

Чтобы отслеживать счетчик производительности, который не указан, введите счетчик производительности с помощью предлагаемого синтаксиса. а затем выберите Добавить. Операционная система на виртуальной машине определяет, какие счетчики производительности можно отслеживать. Дополнительные сведения о синтаксисе см. в разделе "Указание пути счетчика".

Журналы инфраструктуры

Журналы инфраструктуры содержат сведения об инфраструктуре диагностики Azure и модулях RemoteAccess и RemoteForwarder. Чтобы собрать сведения о журналах инфраструктуры, установите флажок "Включить передачу журналов инфраструктуры". Чтобы увеличить или уменьшить интервал между перемещениями журналов инфраструктуры в учетную запись хранения, измените значение параметра Период передачи (мин.).

Журналы инфраструктуры диагностики

Дополнительные сведения см. в статье Включение системы диагностики Azure в облачных службах Azure.

Каталоги журналов

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

Установите флажки журналов, которые требуется собрать, например журналы IIS и журналы неудачных запросов. Имена контейнеров хранилища задаются автоматически, но вы можете их изменить.

Вы можете собирать журналы из любой папки. Укажите путь к ней в разделе Журнал из абсолютного каталога и выберите Добавить каталог. Журналы сохраняются в указанные контейнеры.

Каталоги журналов

журналы трассировки событий Windows.

Если вы используете трассировку событий для Windows (ETW) и хотите записать журналы ETW, установите флажок "Включить передачу журналов ETW". Чтобы увеличить или уменьшить интервал между перемещениями журналов в учетную запись хранения, измените значение параметра Период передачи (мин.).

События записываются из указанных вами источников событий и манифестов событий. Чтобы указать источник событий, введите его имя в разделе Источники событий, а затем выберите Добавить источник событий. Аналогичным образом вы можете указать манифест событий в разделе Манифесты событий и выбрать Добавить манифест событий.

журналы трассировки событий Windows.

ASP.NET поддерживает структуру ETW с использованием классов в пространстве имен System.Diagnostics.aspx. Пространство имен Microsoft.WindowsAzure.Diagnostics, которое наследует и расширяет стандартные классы System.Diagnostics.aspx, позволяет использовать System.Diagnostics.aspx как платформу ведения журналов в среде Azure. Дополнительные сведения см. в статье "Управление ведением журнала и трассировкой" в Microsoft Azure и включение диагностика в Azure Облачные службы (расширенная поддержка) и виртуальных машин.

Аварийные дампы

Чтобы получить сведения о сбоях экземпляра роли, установите флажок "Включить передачу аварийных дампов ". (Так как ASP.NET обрабатывает большинство исключений, это обычно полезно только для рабочих ролей.) Чтобы увеличить или уменьшить процент дискового пространства, посвященного аварийным дампам, измените значение квоты каталога (%) Вы можете изменить контейнер хранения аварийных дампов, а также выбрать, какой дамп нужно сохранять: полный или мини.

Все отслеживаемые процессы указаны на снимке экрана ниже. Установите флажки для процессов, которые требуется записать. Чтобы добавить в список другой процесс, введите имя процесса и выберите Добавить процесс.

Аварийные дампы

Дополнительные сведения см. в статье "Управление ведением журнала и трассировкой" в Microsoft Azure.

Просмотр диагностических данных

После сбора диагностика данных для облачной службы или виртуальной машины его можно просмотреть.

Просмотр диагностических данных облачной службы

  1. Разверните и запустите облачную службу обычным образом.

  2. Диагностические данные можно просмотреть в виде отчета, который создает Visual Studio, или в виде таблиц в учетной записи хранения. Чтобы просмотреть данные в отчете, откройте Cloud Explorer или обозреватель сервера, затем откройте контекстное меню интересующего вас узла и выберите View Diagnostic Data (Просмотреть диагностические данные).

    Просмотр данных диагностики

    Появится отчет по имеющимся данным.

    Отчет о Диагностике Microsoft Azure в Visual Studio

    Если в нем не содержатся самые свежие данные, вам следует дождаться завершения очередного периода передачи.

    Для немедленного обновления данных щелкните ссылку Обновить. Чтобы данные обновлялись автоматически, выберите интервал в раскрывающемся списке автоматического обновления . Чтобы экспортировать данные об ошибках, нажмите кнопку Экспорт в CSV. Будет создан CSV-файл, который вы сможете открыть в виде листа Excel.

    В Cloud Explorer или обозревателе сервера откройте учетную запись хранения, связанную с развертыванием.

  3. Откройте диагностические таблицы в средстве просмотра таблиц и изучите собранные данные. Для просмотра пользовательских журналов и журналов служб IIS вы можете открыть контейнер больших двоичных объектов. Указанная ниже таблица содержит список таблиц или контейнеров больших двоичных объектов, содержащих данные для файлов разных журналов. В дополнение к данным соответствующего журнала таблицы содержат поля EventTickCount, DeploymentId, Role и RoleInstance. Они помогут вам понять, какая виртуальная машина и роль создали эти данные, а также когда эти данные были созданы.

    Диагностические данные Description Расположение
    Журналы приложений Журналы, которые ваш код создает при вызове класса System.Diagnostics.Trace. WADLogsTable
    Журналы событий Данные, собранные из журналов событий Windows на виртуальных машинах. В этих журналах хранится информация ОС Windows, но приложения и службы также могут записывать в них ошибки или данные. WADWindowsEventLogsTable
    Счетчики производительности Вы можете собирать данные на любом счетчике производительности, доступном на виртуальной машине. Операционная система предоставляет различные счетчики, которые позволяют изучать всевозможную статистику, например использование памяти и загруженность процессора. WADPerformanceCountersTable
    Журналы инфраструктуры Журналы, которые создает сама инфраструктура диагностики. WADDiagnosticInfrastructureLogsTable
    Журналы IIS Журналы, которые записывают веб-запросы. Если в облачную службу поступает очень много запросов, эти журналы могут быть длинными. Рекомендуется собирать и хранить эти данные только при необходимости. Журналы неудачных запросов можно найти в контейнере BLOB-объектов в wad-IIS-failedreqlogs в пути для этого развертывания, роли и экземпляра. Вы можете найти полные журналы в wad-IIS-logfiles. В таблицу WADDirectories вносятся записи для каждого файла.
    Аварийные дампы Предоставляет двоичные образы процесса облачной службы (обычно рабочая роль). Контейнер больших двоичных объектов wad-crush-dumps
    Файлы пользовательских журналов Настроенные вами журналы. Вы можете в коде задать расположение файлов пользовательских журналов в своей учетной записи хранения, например указать для них пользовательский контейнер больших двоичных объектов.
  4. Если данные любого типа усекаются, вы можете попробовать увеличить размер буфера для этого типа данных или уменьшить интервал между передачами данных из виртуальной машины в учетную запись хранения.

  5. Время от времени удаляйте данные из учетной записи хранения, чтобы снизить общие затраты на хранение. Это необязательно.

  6. При полном развертывании файл диагностика.cscfg обновляется в Azure, а облачная служба выбирает любые изменения в конфигурации диагностика. Если вместо этого обновить существующее развертывание, cscfg-файл не обновляется в Azure. Но вы и в этом случае можете изменить конфигурацию диагностики, выполнив действия, описанные в следующем разделе. Дополнительные сведения о полном развертывании и обновлении существующего развертывания см. в статье Мастер публикации приложений Azure.

Просмотр диагностических данных виртуальной машины

  1. Выберите в контекстном меню виртуальной машины пункт Просмотр данных диагностики.

    Просмотр диагностических данных на виртуальной машине Azure

    Отобразится диалоговое окно Сводка диагностики.

    Сводка по диагностическим данным виртуальной машины

    Если в нем не содержатся самые свежие данные, вам следует дождаться завершения очередного периода передачи.

    Для немедленного обновления данных щелкните ссылку Обновить. Чтобы данные обновлялись автоматически, выберите интервал в раскрывающемся списке автоматического обновления . Чтобы экспортировать данные об ошибках, нажмите кнопку Экспорт в CSV. Будет создан CSV-файл, который вы сможете открыть в виде листа Excel.

Настройка диагностики облачной службы после развертывания

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

Настройка диагностики для работающей облачной службы

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

    Настройка диагностики

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

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

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

Устранение неполадок azure Облачные службы (расширенная поддержка)

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

Вопросы и ответы

Что такое размер буфера и каким он должен быть?

Для каждого экземпляра виртуальной машины имеются квоты, которые ограничивают объем хранения диагностических данных в локальной файловой системе. Кроме того, вы определяете размер буфера для каждого доступного типа диагностических данных. Этот буфер выполняет роль индивидуальной квоты для соответствующего типа данных. Чтобы определить общую квоту и объем свободной памяти, просмотрите нижнюю часть диалогового окна для типа диагностических данных. Если вы укажете большие размеры буферов или большее количество типов данных, можно превысить общую квоту. Общую квоту можно изменить, изменив файл конфигурации диагностика.wadcfgx. Данные диагностика хранятся в той же файловой системе, что и данные приложения. Если в приложении используется большое количество дискового пространства, не следует увеличивать общую квоту диагностика.

Что такое период передачи и каким он должен быть?

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

Какой часовой пояс используется для отметок времени?

В отметках времени указан локальный часовой пояс того центра обработки данных, в котором размещена ваша облачная служба. Таблицы журналов содержат такие три столбца отметки времени:

  • PreciseTimeStamp. Отметка времени событий ETW. Это время регистрации события клиентом.
  • TIMESTAMP. Значение для PreciseTimeStamp с округлением до ближайшей границы периода передачи. Например, если вы используете период передачи 5 минут, а событие регистрируется в 00:17:12, в поле TIMETAMP установлено значение 00:15:00.
  • Timestamp. Отметка времени создания записи в таблице Azure.

Как снизить затраты на сбор диагностической информации?

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

Как собирать журналы неудачных запросов службы IIS?

По умолчанию службы IIS не собирают журналы неудачных запросов. Чтобы настроить сбор журналов неудачных запросов в службах IIS, измените файл web.config для веб-роли.

Я не получаю сведения о трассировки из методов RoleEntryPoint, таких как OnStart. Что я делаю не так?

Методы RoleEntryPoint вызываются в контексте WAIISHost.exe, а не IIS. Сведения о конфигурации в web.config, которые обычно обеспечивают трассировку, не применяются. Чтобы устранить эту проблему, добавьте в проект веб-роли CONFIG-файл с именем, которое соответствует имени выходной сборки, в которой размещен код RoleEntryPoint. В проекте веб-роли по умолчанию имя файла конфигурации .config должно быть WAIISHost.exe.config. Добавьте в этот файл следующие строки:

<system.diagnostics>
  <trace>
      <listeners>
          <add name "AzureDiagnostics" type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener">
              <filter type="" />
          </add>
      </listeners>
  </trace>
</system.diagnostics>

В окне Свойства задайте для свойства Копировать в выходной каталог значение Всегда копировать.

Дополнительные сведения о ведении журнала диагностика в Azure см. в статье "Включение диагностика" в Azure Облачные службы (расширенная поддержка) и диагностика виртуальных машин и включение ведения журнала веб-приложения в службе приложение Azure.