Устранение неполадок маршрутизации сообщений

В этой статье приведены рекомендации по мониторингу и устранению неполадок, связанные с маршрутизацией сообщений Центра Интернета вещей.

Мониторинг маршрутизации сообщений

Мы рекомендуем отслеживать метрики Центра Интернета вещей, связанные с маршрутизацией сообщений и конечными точками, чтобы иметь общее представление об отправленных сообщениях. Вы также можете создать параметр диагностики для отправки операций для маршрутов в журналах ресурсов Центра Интернета вещей в Azure Monitor, Центры событий или Службу хранилища Azure для пользовательской обработки. Дополнительные сведения об использовании метрик, журналов ресурсов и параметров диагностики см. в статье Мониторинг Центра Интернета вещей. Руководство см. в статье Настройка и использование метрик и журналов ресурсов с помощью Центра Интернета вещей.

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

Наиболее важные проблемы

Ниже перечислены наиболее распространенные проблемы с маршрутизацией сообщений. Чтобы начать устранение неполадок, щелкните проблему и получите подробные инструкции.

Сообщения с моих устройств не маршрутизируются должным образом

Для устранения этой неполадки проанализируйте следующие элементы.

Метрики маршрутизации для этой конечной точки

Все метрики Центра Интернета вещей, связанные с маршрутизацией, имеют префикс Routing. Вы можете объединить данные из нескольких метрик, чтобы определить первопричину проблем. Например, используйте метрику Routing Deliveries, чтобы определить количество сообщений, доставленных на конечную точку или удаленных при несоответствии запросам любых маршрутов, а также если отключен резервный маршрут. Проверьте метрику Routing Latency, чтобы определить, растет задержка доставки сообщений или остается прежней. Растущая задержка может указывать на проблему с определенной конечной точкой, поэтому рекомендуется проверить работоспособность этой конечной точки. Эти метрики маршрутизации также имеют измерения, которые предоставляют подробные сведения о метрике, такие как тип конечной точки, конкретное имя конечной точки и причина, по которой сообщение не было доставлено.

Журналы ресурсов для любых проблем с работой

Просмотрите журналы ресурсов Routes, чтобы получить дополнительные сведения об операциях маршрутизации и конечной точки либо определить ошибки и соответствующий код ошибки, чтобы понять причину проблемы. Например, имя операции RouteEvaluationError в журнале указывает, что маршрут не может быть вычислен из-за проблемы с форматом сообщения. Используйте советы, предоставленные для конкретных имен операций, чтобы устранить эту ошибку. Если событие регистрируется как ошибка, журнал также предоставляет дополнительные сведения о том, почему произошел сбой. Например, если имя операции — EndpointUnhealthy, код ошибки 403004 указывает на то, что в конечной точке закончилось свободное место.

Работоспособность конечной точки

Используйте REST API Get Endpoint Health для получения состояния работоспособности конечных точек. API Получить сведения о работоспособности конечной точки также предоставляет сведения о последней успешной отправке сообщения в конечную точку, последней известной ошибке, времени последней известной ошибки и времени последней попытки отправки для этой конечной точки. Используйте возможные способы устранения для последней известной ошибки.

Сообщения внезапно перестали поступать во встроенную конечную точку

Для устранения этой неполадки проанализируйте следующие элементы.

Был ли создан новый маршрут?

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

Отключен ли резервный маршрут?

Резервный маршрут позволяет отправить все сообщения, которые не соответствуют каким-либо условиям запроса на любом из имеющихся маршрутов, ко встроенным Центрам событий (/messages/events), совместимым со службой Центры событий. Если маршрутизация сообщений включена, вы можете включить возможность резервного маршрута. Если маршруты ко встроенной конечной точке отсутствуют и резервный маршрут включен, на встроенную конечную точку будут отправляться только те сообщения, которые не соответствуют каким-либо условиям запроса для маршрутов. Кроме того, если удалить имеющиеся маршруты, необходимо включить резервный маршрут, чтобы все данные поступали на встроенную конечную точку.

Вы можете включить или отключить резервный маршрут на портале Azure, используя колонку "Маршрутизация сообщений" для Центра Интернета вещей. Вы также можете использовать Azure Resource Manager, чтобы свойства FallbackRouteProperties использовали пользовательскую конечную точку для резервного маршрута.

Последние известные ошибки для конечных точек маршрутизации центра Интернета вещей

Функция Получение состояния работоспособности конечной точки в REST API предоставляет состояние работоспособности конечных точек, а также последнюю известную ошибку для определения причины неработоспособности конечной точки. В таблице приведен список наиболее распространенных ошибок.

Последняя известная ошибка Описание/когда происходит Возможная корректировка
Временный Произошла временная ошибка, и центр Интернета вещей повторит операцию. Просмотрите журналы ресурсов для маршрутов.
InternalError Ошибка доставки сообщения в конечную точку. Это внутреннее исключение. Также просмотрите журналы ресурсов маршрутов.
Не авторизовано Центру Интернета вещей запрещена отправка сообщений в указанную конечную точку. Проверьте, что строка подключения актуальна для конечной точки. Если она изменилась, выполните обновление в центре Интернета вещей. Если конечная точка использует управляемое удостоверение, проверьте наличие у субъекта центра Интернета вещей необходимых разрешений на целевом объекте.
Регулируемый Центр Интернета вещей регулируется при записи сообщений в конечную точку. Проверьте ограничения регулирования для затронутой конечной точки. При необходимости измените конфигурации конечной точки.
Время ожидания Время ожидания операции истекло. Повторите операцию.
Не найдено Целевой ресурс не существует. Убедитесь, что целевой ресурс существует.
Контейнер не найден Контейнер хранилища не существует. Убедитесь, что контейнер хранилища существует.
Контейнер отключен Контейнер хранилища отключен. Убедитесь, что контейнер хранилища включен.
MaxMessageSizeExceeded Размер сообщения маршрутизации ограничен 256 КБ. Размер маршрутизируемого сообщения превышает данное ограничение. Проверьте, можно ли уменьшить размер сообщения, используя меньше свойств приложения или меньшее число обогащений сообщений.
PartitioningAndDuplicateDetectionNotSupported Возможно, для служебной шины не включено обнаружение повторяющихся данных. Отключите обнаружение повторяющихся данных в служебной шине или используйте сущность без обнаружения повторяющихся данных.
SessionfulEntityNotSupported В служебной шине могут быть отключены сеансы. Отключите сеанс в служебной шине или используйте сущность без сеансов.
NoMatchingSubscriptionsForMessage Отсутствует подписка на запись сообщений в разделе служебной шины. Создайте подписку для маршрутизации сообщений центра Интернета вещей.
EndpointExternallyDisabled Конечная точка находится в неактивном состоянии, поэтому центр Интернета вещей может отправить ей сообщения. Включите конечную точку, чтобы вернуть ее в активное состояние.
DeviceMaximumQueueDepthExceeded Достигнут предельный размер служебной шины. Рассмотрите возможность удаления сообщений из целевых центров событий, чтобы в них принимались новые сообщения.

Журналы ресурсов маршрутов

Ниже приведены имена операций и коды ошибок, регистрируемые в журналах ресурсов маршрутов.

Имена операций

Имя операции Level Description
UndefinedRouteEvaluation Информация Невозможно вычислить сообщение с данным условием. Например, если в сообщении для условия запроса маршрута отсутствует свойство. Дополнительные сведения о синтаксисе запросов маршрутизации.
RouteEvaluationError Ошибка Ошибка при вычислении сообщения, связанная с его форматом. Например, регистрация этой ошибки происходит в случае, если в сообщении не указана кодировка содержимого или используется недопустимый тип содержимого. Они должны быть заданы в свойствах системы.
DroppedMessage Ошибка Сообщение было удалено, а не маршрутизировано. Это может быть вызвано тем, что сообщение не совпало ни с одним запросом маршрутизации, или конечная точка не функционирует, и сообщение не было доставлено после повторных попыток. Рекомендуется получить дополнительные сведения о конечной точке с помощью функции получения состояния работоспособности конечной точки интерфейса REST API.
EndpointUnhealthy Ошибка Конечная точка не принимает сообщения из центра Интернета вещей, а центр Интернета вещей предпринимает попытку отправить эти сообщения. Рекомендуется наблюдать за последней известной ошибкой с помощью функции получения состояния работоспособности конечной точки интерфейса REST API.
EndpointDead Ошибка Конечная точка в течение часа не принимает сообщения из центра Интернета вещей. Рекомендуется наблюдать за последней известной ошибкой с помощью функции получения состояния работоспособности конечной точки интерфейса REST API.
EndpointHealthy Информация Конечная точка работоспособна и получает сообщения из центра Интернета вещей. Это сообщение регистрируется не постоянно, но только в случае, если конечная точка снова становится работоспособной. Сообщение означает, что центр Интернета вещей не смог отправить сообщения в конечную точку, но в текущий момент конечная точка работоспособна.
OrphanedMessage Информация Сообщение не соответствует ни одному маршруту.
InvalidMessage Ошибка Сообщение не действительно по причине несовместимости с конечной точкой. Рекомендуется проверить конфигурации конечной точки.

Операции UndefinedRouteEvaluation, RouteEvaluationError и OrphanedMessage регулируются и регистрируются не чаще одного раза в минуту в каждом центре Интернета вещей.

Коды распространенных ошибок

Код ошибки Description
401002 Несанкционированный доступ к Центру Интернета вещей
413001 Слишком большое сообщение
403004 Превышена максимальная глубина очереди устройства
503008 Ограничение канала получения
500 000 Общая ошибка сервера
401 Не авторизовано
503 Служба недоступна
500001 Ошибка сервера
400103 Недопустимая кодировка содержимого или тип содержимого
404001 Устройство не найдено

Следующие шаги

Если вам потребуется дополнительная помощь, вы можете обратиться к экспертам по Azure на форумах Microsoft Q&A и Stack Overflow. Кроме того, можно зарегистрировать обращение в службу поддержки Azure. Перейдите на сайт поддержки Azure и щелкните Получить поддержку.