Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом руководстве представлен обзор журналов ресурсов 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 сообщений (исходящий трафик). Вы можете неожиданно достигнуть дневного лимита, используя live trace.
- В настоящее время средство динамической трассировки не поддерживает авторизацию Microsoft Entra. Ключи доступа необходимо включить для использования динамической трассировки. В разделе "Параметры" выберите "Ключи" и включите ключ доступа.
Запуск средства динамической трассировки
При включении ключа доступа используйте маркер доступа для проверки подлинности средства динамической трассировки. В противном случае для проверки подлинности средства динамической трассировки используется идентификатор Microsoft Entra. Чтобы узнать, включен ли ключ доступа, перейдите в область «Ключи» в экземпляре вашей службы Azure SignalR в портале Azure.
Открытие динамической трассировки при включении ключа доступа
Перейдите к порталу Azure и разделу SignalR-сервиса.
В меню службы в разделе "Мониторинг" выберите параметры динамической трассировки.
Выберите включить динамическую трассировку.
Выберите кнопку Сохранить. Это занимает некоторое время, чтобы изменения вступили в силу.
После завершения обновления выберите "Открыть средство динамической трассировки".
Откройте средство динамической трассировки при отключении ключа доступа
Назначение разрешения API средства динамической трассировки для себя
Перейдите к портал Azure и области Служба SignalR.
Выберите Управление доступом (IAM).
Нажмите кнопку +Добавить и выберите назначение ролей.
На вкладке роли функций задания выберите роль владельца службы SignalR, а затем нажмите Далее.
На панели "Участники" нажмите кнопку +Выбрать участников.
Найдите и выберите участников, а затем нажмите кнопку Выбрать.
Выберите "Проверить и назначить " и подождите уведомления о завершении.
Включить средство динамической трассировки
Перейдите на портал Azure и откройте панель Службы SignalR.
В меню службы в разделе "Мониторинг" выберите параметры динамической трассировки.
Выберите включить динамическую трассировку.
Выберите кнопку Сохранить. Это занимает некоторое время, чтобы изменения вступили в силу.
После завершения обновления выберите "Открыть средство динамической трассировки".
Войдите в систему с помощью учетной записи Майкрософт
Средство динамической трассировки приводит к открытию окна входа Майкрософт. Если окно не откроется, разрешите всплывающие окна в параметрах браузера.
Дождитесь появления готовности в строке состояния.
Запись журналов ресурсов
Инструмент динамической трассировки может помочь вам записать ресурсные журналы для устранения неполадок.
- Запись начинает записывать журналы ресурсов в режиме реального времени из Azure Web PubSub.
- Команда Очистить удаляет захваченные в реальном времени журналы ресурсов.
- Фильтр журнала фильтрует захваченные журналы ресурсов в режиме реального времени с помощью одного определенного ключевого слова. Общие разделители, такие как пробел, запятая и точка с запятой, рассматриваются как часть ключевого слова.
- Состояние показывает, подключен ли инструмент прямой трассировки или отключен от конкретного экземпляра.
Журналы ресурсов в режиме реального времени, захваченные средством динамической трассировки, содержат подробные сведения об устранении неполадок.
| Имя | Описание |
|---|---|
| Time | Время регистрации события |
| Уровень журнала | Уровень событий журнала (Trace, или DebugInformationalWarningError) |
| Имя события | Имя операции для события |
| Сообщение | Подробное сообщение о событии |
| Исключение | Исключение времени выполнения службы Azure Web PubSub |
| Узел | Определяемое пользователем имя концентратора |
| Идентификатор подключения | Идентификация подключения |
| Код пользователя | Удостоверение пользователя |
| IP-адрес | IP-адрес клиента |
| Шаблон маршрута | Шаблон маршрута API |
| Метод HTTP | Метод HTTP (POST, GETPUT илиDELETE) |
| URL-адрес | Универсальный указатель ресурсов |
| Идентификатор трассировки | Уникальный идентификатор вызова |
| Код состояния | Код HTTP-ответа |
| Длительность | Длительность между получением запроса и обработкой запроса |
| Заголовки | Дополнительные сведения, передаваемые клиентом и сервером с HTTP-запросом или ответом |
Запись журналов ресурсов с помощью Azure Monitor
Включение журналов ресурсов
В настоящее время Azure Web PubSub поддерживает интеграцию с Azure Storage.
Перейдите на портал 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 |
Коллекция события журнала (ConnectionAuthorizationилиThrottling) |
connectionId |
Идентичность подключения |
userId |
Удостоверение пользователя |
message |
Подробное сообщение о событии лога. |
hub |
Определяемое пользователем имя концентратора |
routeTemplate |
Шаблон маршрута API |
httpMethod |
Метод HTTP (POST, GETPUT или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.
Чтобы запросить журнал, введите
WebPubSubConnectivityWebPubSubMessagingили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.
В следующей таблице перечислены причины неожиданного отключения.
| Причина | Описание |
|---|---|
| Число подключений достигло предела. | Количество подключений достигает предела текущей ценовой категории. Рассмотрите возможность увеличения масштаба единицы обслуживания. |
| Перезагрузка службы, повторное подключение. | Служба 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.