Поделиться через


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

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

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

Мы рекомендуем отслеживать метрики Центра Интернета вещей, связанные с маршрутизацией сообщений и конечными точками, чтобы иметь общее представление об отправленных сообщениях. Вы также можете создать параметр диагностики для отправки операций для маршрутов в журналах ресурсов Центр Интернета вещей в журналы 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 и щелкните Получить поддержку.