Устранение неполадок с журналами ресурсов

В этом руководстве представлен обзор журналов ресурсов Azure Web PubSub и некоторые советы по использованию журналов для устранения определенных проблем. Журналы можно использовать для идентификации проблем, отслеживания подключений, трассировки сообщений, трассировки HTTP-запросов и анализа.

Что такое журналы ресурсов?

Существует три типа журналов ресурсов: Подключение тивность, обмен сообщениями и HTTP-запросы.

  • журналы Подключение волительности предоставляют подробные сведения о подключениях концентратора Azure Web PubSub. Например, основные сведения (идентификатор пользователя, идентификатор подключения и т. д.) и сведения о событии (подключение, отключение и т. д.).
  • Журналы обмена сообщениями предоставляют сведения о трассировке сообщений центра Azure Web PubSub, полученных и отправленных через службу Azure Web PubSub. Например, идентификатор трассировки и тип сообщения.
  • Журналы HTTP-запросов предоставляют сведения о трассировке HTTP-запросов в службу Azure Web PubSub. Например, метод HTTP и код состояния. Обычно HTTP-запрос записывается при поступлении или выходе из службы.

Запись журналов ресурсов с помощью средства динамической трассировки

Средство динамической трассировки службы Azure Web PubSub имеет возможность собирать журналы ресурсов в режиме реального времени, что полезно для устранения неполадок в среде разработки. Средство динамической трассировки может записывать журналы подключения, журналы обмена сообщениями и журналы HTTP-запросов.

Примечание.

Следующие рекомендации относятся к использованию средства динамической трассировки:

  • Журналы ресурсов в режиме реального времени, захваченные средством динамической трассировки, будут выставляться как сообщения (исходящий трафик).
  • В настоящее время средство динамической трассировки не поддерживает авторизацию Microsoft Entra. Ключи доступа необходимо включить для использования динамической трассировки. В разделе Параметры выберите ключи и включите ключ доступа.
  • Экземпляр бесплатного уровня службы Azure Web PubSub имеет ежедневное ограничение в 20 000 сообщений (исходящий трафик). Динамическая трассировка может привести к неожиданному достижению ежедневного ограничения.

Запуск средства динамической трассировки

Примечание.

При включении ключа доступа вы будете использовать маркер доступа для проверки подлинности средства динамической трассировки. В противном случае вы будете использовать идентификатор Microsoft Entra для проверки подлинности средства динамической трассировки. Вы можете проверка, включите ли ключ доступа или нет на странице ключей Служба SignalR в портал Azure.

Шаги по включению ключа доступа

  1. Перейдите на страницу портал Azure и страницу Служба SignalR.

  2. В меню слева в разделе "Мониторинг " выберите параметры динамической трассировки.

  3. Выберите включить динамическую трассировку.

  4. Нажмите кнопку "Сохранить ". Это займет некоторое время, чтобы изменения вступили в силу.

  5. После завершения обновления выберите "Открыть средство динамической трассировки".

    Screenshot of launching the live trace tool.

Шаги по отключению ключа доступа

Назначение разрешения API средства динамической трассировки для себя

  1. Перейдите на страницу портал Azure и страницу Служба SignalR.
  2. Выберите Управление доступом (IAM) .
  3. На новой странице нажмите кнопку +Добавить, а затем выберите назначение ролей.
  4. На новой странице на вкладке "Роли функции задания" выберите роль владельца Служба SignalR и нажмите кнопку "Далее".
  5. На странице "Члены" нажмите кнопку +Выбрать участников.
  6. На новой панели найдите и выберите участников и нажмите кнопку " Выбрать".
  7. Нажмите кнопку "Рецензирование" и "Назначить" и дождитесь уведомления о завершении.

Посетите средство динамической трассировки

  1. Перейдите на страницу портал Azure и страницу Служба SignalR.

  2. В меню слева в разделе "Мониторинг " выберите параметры динамической трассировки.

  3. Выберите включить динамическую трассировку.

  4. Нажмите кнопку "Сохранить ". Это займет некоторое время, чтобы изменения вступили в силу.

  5. После завершения обновления выберите "Открыть средство динамической трассировки".

    Screenshot of launching the live trace tool.

Войдите в систему с помощью учетной записи Майкрософт

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

Запись журналов ресурсов

Средство динамической трассировки предоставляет функциональные возможности для отслеживания журналов ресурсов для устранения неполадок.

  • Запись. Начало записи журналов ресурсов в режиме реального времени из Azure Web PubSub.
  • Очистить захваченные журналы ресурсов в режиме реального времени.
  • Фильтр журналов: средство динамической трассировки позволяет фильтровать захваченные журналы ресурсов в режиме реального времени с помощью одного ключевого слова. Общие разделители (например, пробел, запятая, точка с запятой и т. д.) будут рассматриваться как часть ключевого слова.
  • Состояние: показывает, подключено ли средство динамической трассировки к определенному экземпляру.

Screenshot of capturing resource logs with live trace tool.

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

Имя Описание
Time Время события журнала
Уровень журнала Уровень событий журнала может быть [Trace | Отладка | Информационные | Предупреждение | Ошибка]
Имя события Имя операции для события
Message Подробное сообщение о событии
Исключение Исключение времени выполнения службы Azure Web PubSub
Узел Определяемое пользователем имя концентратора
Идентификатор подключения Удостоверение подключения
Идентификатор пользователя Удостоверение пользователя
IP-адрес IP-адрес клиента
Шаблон маршрута Шаблон маршрута API
Метод Http Метод Http (POST/GET/PUT/DELETE)
URL Универсальный указатель ресурсов
Идентификатор трассировки Уникальный идентификатор вызова
Код состояния Код ответа HTTP
Длительность Длительность между получением запроса и обработкой запроса
Заголовки Дополнительные сведения, передаваемые клиентом и сервером с HTTP-запросом или ответом

Запись журналов ресурсов с помощью Azure Monitor

Включение журналов ресурсов

В настоящее время Azure Web PubSub поддерживает интеграцию с служба хранилища Azure.

  1. Перейдите на портал Azure.

  2. На странице параметров диагностики экземпляра службы Azure Web PubSub нажмите кнопку +Добавить параметр диагностики. Screenshot of viewing diagnostic settings and create a new one

  3. В имени параметра диагностики введите имя параметра.

  4. В разделе "Сведения о категории" выберите любую нужную категорию журнала.

  5. В сведениях о назначении проверка архивировать учетную запись хранения.

    Screenshot of configuring diagnostic setting detail

  6. Нажмите кнопку "Сохранить", чтобы сохранить параметр диагностики.

    Примечание.

    Учетная запись хранения должна находиться в том же регионе, что и служба Azure Web PubSub.

Архивация в учетную запись служба хранилища Azure

Журналы хранятся в учетной записи хранения, настроенной на панели параметров диагностики. Для хранения журналов ресурсов автоматически создается контейнер insights-logs-<CATEGORY_NAME>. Внутри контейнера журналы хранятся в файле resourceId=/SUBSCRIPTIONS/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/RESOURCEGROUPS/XXXX/PROVIDERS/MICROSOFT.SIGNALRSERVICE/SIGNALR/XXX/y=YYYY/m=MM/d=DD/h=HH/m=00/PT1H.json. Путь объединяется и resource IDDate Time. Файлы журнала разделены по часам (hour). Значение минуты всегда m=00равно.

Все журналы хранятся в формате JSON (нотация объектов JavaScript). Каждая запись содержит строковые поля, использующие формат, описанный в следующих разделах.

Строки JSON архивных журналов содержат элементы, перечисленные в таблице ниже.

Формат

Имя Описание
Время Время события журнала
level Уровень события журнала
resourceId Идентификатор ресурса вашей Службы Azure SignalR
Расположение Расположение вашей Службы Azure SignalR
Категория Категория события журнала
operationName Имя операции для события
callerIpAddress IP-адрес сервера или клиента
свойства Подробные свойства, связанные с этим событием журнала. Дополнительные сведения см. в таблице свойств ниже.

Таблица свойств

Имя Описание
коллекция Коллекция событий журнала. Допустимые значения: Connection, Authorization и Throttling.
connectionId Удостоверение подключения
userId Удостоверение пользователя
message Подробное сообщение о событии журнала.
hub Определяемое пользователем имя концентратора
routeTemplate Шаблон маршрута API
httpMethod Метод Http (POST/GET/PUT/DELETE)
url-адрес Универсальный указатель ресурсов
traceId Уникальный идентификатор вызова
statusCode Код ответа HTTP
duration Длительность между запросом получается и обрабатывается
заголовки Дополнительные сведения, передаваемые клиентом и сервером с HTTP-запросом или ответом

Ниже приведен пример строки JSON журнала архивирования.

{
  "properties": {
    "message": "Connection started",
    "collection": "Connection",
    "connectionId": "LW61bMG2VQLIMYIVBMmyXgb3c418200",
    "userId": null
  },
  "operationName": "ConnectionStarted",
  "category": "ConnectivityLogs",
  "level": "Informational",
  "callerIpAddress": "167.220.255.79",
  "resourceId": "/SUBSCRIPTIONS/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/RESOURCEGROUPS/MYGROUP/PROVIDERS/MICROSOFT.SIGNALRSERVICE/WEBPUBSUB/MYWEBPUBSUB",
  "time": "2021-09-17T05:25:05Z",
  "location": "westus"
}

Архивация в Azure Log Analytics

Чтобы отправить журналы в рабочую область Log Analytics, выполните следующие действия.

  1. На странице параметров диагностики в разделе "Сведения о назначении" выберите **Отправить в рабочую область Log Analytics.
  2. Выберите подписку, которую нужно использовать.
  3. Выберите рабочую область Log Analytics, используемую в качестве назначения для журналов.

Чтобы просмотреть журналы ресурсов, выполните следующие действия.

  1. Выберите Logs целевой log Analytics.

    Log Analytics menu item

  2. WebPubSubMessaging Введите WebPubSubConnectivityили WebPubSubHttpRequestвыберите диапазон времени для запроса к журналу. Дополнительные запросы см. в статье "Начало работы с Log Analytics" в Azure Monitor.

    Query log in Log Analytics

Чтобы использовать пример запроса для службы SignalR, выполните приведенные ниже действия.

  1. Выберите Logs целевой log Analytics.
  2. Выберите Queries , чтобы открыть обозреватель запросов.
  3. Выберите Resource type группировать примеры запросов в типе ресурса.
  4. Выберите Run , чтобы запустить скрипт. Sample query in Log Analytics

Столбцы журнала архива включают элементы, перечисленные в следующей таблице.

Имя Описание
TimeGenerated Время события журнала
Сбор Коллекция событий журнала. Допустимые значения: Connection, Authorization и Throttling.
OperationName Имя операции для события
Местонахождение Расположение вашей Службы Azure SignalR
Уровень Уровень события журнала
CallerIpAddress IP-адрес сервера или клиента
Message Подробное сообщение о событии журнала.
UserId Удостоверение пользователя
ConnectionId Удостоверение подключения
ConnectionType Тип подключения. Допустимые значения: Server | Client. Server: подключение со стороны сервера; Client: подключение со стороны клиента.
TransportType Тип транспорта соединения. Допустимые значения: Websockets | ServerSentEvents | LongPolling

Устранение неполадок с журналами ресурсов

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

Непредвиденные изменения в количестве подключений

Непредвиденное уменьшение числа подключений

Если подключение отключается, журналы ресурсов записывают событие отключения с ConnectionAborted или ConnectionEnded в operationName.

Разница между ConnectionAborted и ConnectionEnded заключается в том, что ConnectionEnded ожидаемое отключение, которое активируется клиентом или серверной стороной. ConnectionAborted Хотя обычно происходит непредвиденное событие удаления подключения, и причина отключения будет предоставлена в message.

Возможные причины разрыва перечислены в таблице ниже.

Причина Description
Число подключений достигло предела. Число подключений достигло предельного значения для вашей текущей ценовой категории. Попробуйте вертикально увеличить масштаб модуля службы.
Перезагрузка службы, повторное подключение. Служба Azure Web PubSub перегружается. Необходимо реализовать собственный механизм повторного подключения или повторно подключиться к службе Azure Web PubSub вручную.
Временная внутренняя ошибка сервера. В службе Azure Web PubSub возникает временная ошибка, которая обычно устраняется автоматически.

Неожиданное увеличение подключений

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

Сбой авторизации

Если для клиентских запросов возвращается ошибка 401 "Несанкционированный доступ", проверьте журналы ресурсов. Если вы найдете Failed to validate audience. Expected Audiences: <valid audience>. Actual Audiences: <actual audience>, это означает, что все аудитории в маркере доступа недопустимы. Попробуйте использовать допустимые аудитории, предложенные в журнале.

Регулирование

Если вы обнаружите, что не удается установить клиентские подключения к службе Azure Web PubSub, проверка журналы ресурсов. Если вы видите Connection count reaches limit в журнале ресурсов, вы установили слишком много подключений к службе Azure Web PubSub и достигли ограничения количества подключений. Рекомендуется вертикально увеличить масштаб экземпляра службы Azure Web PubSub. Если вы видите Message count reaches limit в журнале ресурсов и используете уровень "Бесплатный", это означает, что вы использовали квоту сообщений. Если вы хотите отправить больше сообщений, попробуйте изменить экземпляр службы Azure Web PubSub на уровень "Стандартный". Дополнительные сведения см. на странице цен на службу Azure Web PubSub.