Устранение неполадок с журналами ресурсов
В этом руководстве представлен обзор журналов ресурсов 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.
Шаги по включению ключа доступа
Перейдите на страницу портал Azure и страницу Служба SignalR.
В меню слева в разделе "Мониторинг " выберите параметры динамической трассировки.
Выберите включить динамическую трассировку.
Нажмите кнопку "Сохранить ". Это займет некоторое время, чтобы изменения вступили в силу.
После завершения обновления выберите "Открыть средство динамической трассировки".
Шаги по отключению ключа доступа
Назначение разрешения API средства динамической трассировки для себя
- Перейдите на страницу портал Azure и страницу Служба SignalR.
- Выберите Управление доступом (IAM) .
- На новой странице нажмите кнопку +Добавить, а затем выберите назначение ролей.
- На новой странице на вкладке "Роли функции задания" выберите роль владельца Служба SignalR и нажмите кнопку "Далее".
- На странице "Члены" нажмите кнопку +Выбрать участников.
- На новой панели найдите и выберите участников и нажмите кнопку " Выбрать".
- Нажмите кнопку "Рецензирование" и "Назначить" и дождитесь уведомления о завершении.
Посетите средство динамической трассировки
Перейдите на страницу портал Azure и страницу Служба SignalR.
В меню слева в разделе "Мониторинг " выберите параметры динамической трассировки.
Выберите включить динамическую трассировку.
Нажмите кнопку "Сохранить ". Это займет некоторое время, чтобы изменения вступили в силу.
После завершения обновления выберите "Открыть средство динамической трассировки".
Войдите в систему с помощью учетной записи Майкрософт
- Средство динамической трассировки появится окно входа Майкрософт. Если окно не отображается, проверка и разрешить всплывающие окна в браузере.
- Дождитесь готовности, отображаемой в строке состояния.
Запись журналов ресурсов
Средство динамической трассировки предоставляет функциональные возможности для отслеживания журналов ресурсов для устранения неполадок.
- Запись. Начало записи журналов ресурсов в режиме реального времени из Azure Web PubSub.
- Очистить захваченные журналы ресурсов в режиме реального времени.
- Фильтр журналов: средство динамической трассировки позволяет фильтровать захваченные журналы ресурсов в режиме реального времени с помощью одного ключевого слова. Общие разделители (например, пробел, запятая, точка с запятой и т. д.) будут рассматриваться как часть ключевого слова.
- Состояние: показывает, подключено ли средство динамической трассировки к определенному экземпляру.
Журналы ресурсов в режиме реального времени, захваченные средством динамической трассировки, содержат подробные сведения об устранении неполадок.
Имя | Описание |
---|---|
Time | Время события журнала |
Уровень журнала | Уровень событий журнала может быть [Trace | Отладка | Информационные | Предупреждение | Ошибка] |
Имя события | Имя операции для события |
Message | Подробное сообщение о событии |
Исключение | Исключение времени выполнения службы 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 архивных журналов содержат элементы, перечисленные в таблице ниже.
Формат
Имя | Описание |
---|---|
Время | Время события журнала |
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, выполните следующие действия.
- На странице параметров диагностики в разделе "Сведения о назначении" выберите **Отправить в рабочую область Log Analytics.
- Выберите подписку, которую нужно использовать.
- Выберите рабочую область Log Analytics, используемую в качестве назначения для журналов.
Чтобы просмотреть журналы ресурсов, выполните следующие действия.
Выберите
Logs
целевой log Analytics.WebPubSubMessaging
ВведитеWebPubSubConnectivity
илиWebPubSubHttpRequest
выберите диапазон времени для запроса к журналу. Дополнительные запросы см. в статье "Начало работы с Log Analytics" в Azure Monitor.
Чтобы использовать пример запроса для службы SignalR, выполните приведенные ниже действия.
- Выберите
Logs
целевой log Analytics. - Выберите
Queries
, чтобы открыть обозреватель запросов. - Выберите
Resource type
группировать примеры запросов в типе ресурса. - Выберите
Run
, чтобы запустить скрипт.
Столбцы журнала архива включают элементы, перечисленные в следующей таблице.
Имя | Описание |
---|---|
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.