Устранение неполадок с журналами ресурсов
В этом руководстве представлен обзор журналов ресурсов Azure Web PubSub и советов по использованию журналов для устранения неполадок. Журналы можно использовать для идентификации проблем, отслеживания подключений, трассировки сообщений, трассировки HTTP-запросов и анализа.
Что такое журналы ресурсов?
Существует три типа журналов ресурсов:
- Журналы подключения предоставляют подробные сведения о подключениях концентратора Azure Web PubSub. Они могут включать основные сведения, такие как идентификатор пользователя и идентификатор подключения, или сведения о событии, такие как подключение и отключение.
- Журналы обмена сообщениями предоставляют сведения о трассировке для сообщений концентратора, отправляемых или полученных через службу Azure Web PubSub, например идентификатор трассировки или тип сообщения.
- Журналы HTTP-запросов предоставляют сведения о трассировке HTTP-запросов в службу Azure Web PubSub, например метод HTTP или код состояния. Как правило, HTTP-запрос записывается при поступлении или выходе из службы.
Запись журналов ресурсов с помощью средства динамической трассировки
Средство динамической трассировки в службе Azure Web PubSub может собирать журналы ресурсов в режиме реального времени, что полезно для устранения неполадок в среде разработки. Средство динамической трассировки может записывать журналы подключения, журналы обмена сообщениями и журналы HTTP-запросов.
При использовании средства динамической трассировки следует учитывать следующие факторы:
- Журналы ресурсов в режиме реального времени, которые фиксирует средство динамической трассировки, выставляются как сообщения (исходящий трафик).
- Экземпляр уровня "Бесплатный" службы Azure Web PubSub имеет ежедневное ограничение в 20 000 сообщений (исходящий трафик). Вы можете неожиданно достичь ежедневного ограничения с помощью динамической трассировки.
- В настоящее время средство динамической трассировки не поддерживает авторизацию Microsoft Entra. Ключи доступа необходимо включить для использования динамической трассировки. В разделе "Параметры" выберите "Ключи" и включите ключ доступа.
Запуск средства динамической трассировки
При включении ключа доступа используйте маркер доступа для проверки подлинности средства динамической трассировки. В противном случае для проверки подлинности средства динамической трассировки используется идентификатор Microsoft Entra. Чтобы узнать, включен ли ключ доступа, перейдите в область "Ключи" в экземпляре Служба Azure SignalR в портал Azure.
Открытие динамической трассировки при включении ключа доступа
Перейдите к портал Azure и области Служба SignalR.
В меню службы в разделе "Мониторинг" выберите параметры динамической трассировки.
Выберите включить динамическую трассировку.
Выберите кнопку Сохранить. Это занимает некоторое время, чтобы изменения вступили в силу.
После завершения обновления выберите "Открыть средство динамической трассировки".
Откройте средство динамической трассировки при отключении ключа доступа
Назначение разрешения API средства динамической трассировки для себя
Перейдите к портал Azure и области Служба SignalR.
Выберите Управление доступом (IAM).
Нажмите кнопку +Добавить и выберите назначение ролей.
На вкладке ролей функции задания выберите роль владельца Служба SignalR и нажмите кнопку "Далее".
В области "Элементы" нажмите кнопку +Выбрать участников.
Выполните поиск и выбор элементов, а затем нажмите кнопку " Выбрать".
Выберите "Проверить и назначить " и подождите уведомления о завершении.
Включение средства динамической трассировки
Перейдите к портал Azure и области Служба SignalR.
В меню службы в разделе "Мониторинг" выберите параметры динамической трассировки.
Выберите включить динамическую трассировку.
Выберите кнопку Сохранить. Это занимает некоторое время, чтобы изменения вступили в силу.
После завершения обновления выберите "Открыть средство динамической трассировки".
Войдите в систему с помощью учетной записи Майкрософт
Средство динамической трассировки приводит к открытию окна входа Майкрософт. Если окно не откроется, разрешите всплывающие окна в параметрах браузера.
Дождитесь появления готовности в строке состояния.
Запись журналов ресурсов
Средство динамической трассировки поможет вам записать журналы ресурсов для устранения неполадок.
- Запись начинает записывать журналы ресурсов в режиме реального времени из Azure Web PubSub.
- Очистить захваченные журналы ресурсов в режиме реального времени.
- Фильтр журнала фильтрует захваченные журналы ресурсов в режиме реального времени с помощью одного определенного ключевого слова. Общие разделители, такие как пробел, запятая и точка с запятой, рассматриваются как часть ключевого слова.
- Состояние показывает, подключено ли средство динамической трассировки или отключено с конкретным экземпляром.
Журналы ресурсов в режиме реального времени, захваченные средством динамической трассировки, содержат подробные сведения об устранении неполадок.
Имя | Описание |
---|---|
Time | Время события журнала |
Уровень журнала | Уровень событий журнала (Trace , или Informational Debug Warning Error ) |
Имя события | Имя операции для события |
Сообщение | Подробное сообщение о событии |
Исключение | Исключение среды выполнения службы Azure Web PubSub |
Узел | Определяемое пользователем имя концентратора |
Идентификатор подключения | Удостоверение подключения |
Код пользователя | Удостоверение пользователя |
IP-адрес | IP-адрес клиента |
Шаблон маршрута | Шаблон маршрута API |
Метод HTTP | Метод HTTP (POST , GET PUT илиDELETE ) |
URL-адрес | Универсальный указатель ресурсов |
Идентификатор трассировки | Уникальный идентификатор вызова |
Код состояния | Код HTTP-ответа |
Длительность | Длительность между получением запроса и обработкой запроса |
Заголовки | Дополнительные сведения, передаваемые клиентом и сервером с HTTP-запросом или ответом |
Запись журналов ресурсов с помощью Azure Monitor
Включение журналов ресурсов
В настоящее время Azure Web PubSub поддерживает интеграцию с служба хранилища Azure.
Перейдите на портал Azure.
На панели параметров диагностики экземпляра службы Azure Web PubSub нажмите кнопку +Добавить параметр диагностики.
В поле "Имя параметра диагностики" введите имя параметра.
В разделе "Сведения о категории" выберите любую нужную категорию журнала.
В сведениях о назначении выберите "Архив" в учетную запись хранения.
Нажмите кнопку "Сохранить", чтобы сохранить параметр диагностики.
Примечание.
Учетная запись хранения должна находиться в том же регионе, что и служба 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 ID
Date Time
. Файлы журнала разделены по часам (hour
). Значение минуты всегда m=00
равно.
Все журналы хранятся в формате JSON (нотация объектов JavaScript). Каждая запись содержит строковые поля, использующие формат, описанный в следующих разделах.
Строки JSON в архивных журналах включают элементы, перечисленные в следующих таблицах.
Формат
Имя | Описание |
---|---|
time |
Время события журнала |
level |
Уровень события журнала |
resourceId |
Идентификатор ресурса экземпляра Служба Azure SignalR |
location |
Расположение экземпляра Служба Azure SignalR |
category |
Категория события журнала |
operationName |
Имя операции для события |
callerIpAddress |
IP-адрес сервера или клиента |
properties |
Подробные свойства, связанные с этим событием журнала (см. следующую таблицу) |
Таблица свойств
Имя | Описание |
---|---|
collection |
Коллекция события журнала (Connection Authorization илиThrottling ) |
connectionId |
Удостоверение подключения |
userId |
Удостоверение пользователя |
message |
Подробное сообщение о событии журнала. |
hub |
Определяемое пользователем имя концентратора |
routeTemplate |
Шаблон маршрута API |
httpMethod |
Метод HTTP (POST , GET PUT илиDELETE ) |
url |
Универсальный указатель ресурсов |
traceId |
Уникальный идентификатор вызова |
statusCode |
Код HTTP-ответа |
duration |
Длительность времени между получением и обработкой запроса |
headers |
Дополнительные сведения, передаваемые клиентом и сервером с 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, выполните следующие действия.
На панели параметров диагностики в разделе "Сведения о назначении" выберите "Отправить в рабочую область Log Analytics".
В поле Подписка выберите подписку, которую вы хотите использовать.
Для назначения для журналов выберите рабочую область Log Analytics.
Чтобы просмотреть журналы ресурсов, выполните следующие действия.
Выберите журналы в целевой рабочей области Log Analytics.
Чтобы запросить журнал, введите
WebPubSubConnectivity
WebPubSubMessaging
илиWebPubSubHttpRequest
выберите диапазон времени. Дополнительные запросы см. в статье "Начало работы с Log Analytics" в Azure Monitor.
Чтобы использовать пример запроса для службы SignalR, выполните следующие действия.
Выберите журналы в целевой рабочей области Log Analytics.
Выберите запросы , чтобы открыть обозреватель запросов.
Выберите тип ресурса для группировки примеров запросов по типу ресурса.
Выберите "Выполнить" , чтобы запустить скрипт.
Столбцы журнала архива включают элементы, перечисленные в следующей таблице.
Имя | Описание |
---|---|
TimeGenerated |
Время события журнала |
Collection |
Коллекция события журнала (Connection , Authorization и Throttling ) |
OperationName |
Имя операции для события |
Location |
Расположение экземпляра Служба Azure SignalR |
Level |
Уровень события журнала |
CallerIpAddress |
IP-адрес сервера или клиента |
Message |
Подробное сообщение о событии журнала. |
UserId |
Удостоверение пользователя |
ConnectionId |
Удостоверение подключения |
ConnectionType |
Тип подключения (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.