Sdílet prostřednictvím


Řešení potíží se směrováním zpráv

Tento článek obsahuje pokyny k monitorování a řešení běžných problémů a řešení směrování zpráv IoT Hub.

Sledování směrování zpráv

Doporučujeme sledovat IoT Hub metriky související se směrováním zpráv a koncovými body , abyste měli přehled o odeslaných zprávách. Můžete také vytvořit nastavení diagnostiky pro odesílání operací pro trasy v protokolech prostředků IoT Hub do protokolů služby Azure Monitor, Event Hubs nebo Azure Storage k vlastnímu zpracování. Další informace o používání metrik, protokolů prostředků a nastavení diagnostiky najdete v tématu Monitorování IoT Hub. Kurz najdete v tématu Nastavení a používání metrik a protokolů prostředků ve službě IoT Hub.

Záložní trasu doporučujeme povolit také v případě, že chcete zachovat zprávy, které neodpovídají dotazu na žádné z tras. Tyto zprávy je možné uchovávat v integrovaném koncovém bodu po nakonfigurovaný počet dnů uchovávání.

Nejčastější problémy

Níže jsou uvedeny nejběžnější problémy zaznamenané při směrování zpráv. Chcete-li zahájit odstraňování problémů, vyberte problém, kde se zobrazí podrobný postup.

Zprávy z mých zařízení nejsou směrovány podle očekávání

Chcete-li tento problém vyřešit, analyzujte následující informace.

Metriky směrování pro tento koncový bod

Všechny metriky služby ioT Hub související se směrováním mají předponu Routing. Můžete zkombinovat informace z více metrik a identifikovat tak původní příčinu problémů. K identifikaci počtu zpráv doručených do koncového bodu nebo vyřazených, když se neshodovaly s dotazy na žádné z tras a náhradní trasa byla zakázaná, použijte například metriku Doručení směrování. Zkontrolujte metriku Latence směrování a určete, jestli je latence doručování zpráv stabilní, nebo se zvyšuje. Rostoucí latence může znamenat problém s konkrétním koncovým bodem a doporučujeme zkontrolovat stav koncového bodu. Tyto metriky směrování mají také dimenze , které poskytují podrobnosti o metrikě, jako je typ koncového bodu, konkrétní název koncového bodu a důvod, proč zpráva nebyla doručena.

Protokoly prostředků pro případné provozní problémy

Sledujte protokoly prostředků Trasy, kde získáte další informace o operacích směrování a koncových bodů nebo identifikujete chyby a relevantní kód chyby, abyste problému porozuměli podrobněji. Například název operace RouteEvaluationError v protokolu označuje, že trasu nebylo možné vyhodnotit kvůli problému s formátem zprávy. Ke zmírnění problému použijte tipy uvedené pro konkrétní názvy operací . Pokud je událost zaznamenána jako chyba, protokol také poskytuje další informace o tom, proč se vyhodnocení nezdařilo. Pokud je například název operace EndpointUnhealthy, kód chyby 403004 označuje, že v koncovém bodu bylo málo místa.

Stav koncového bodu

Pomocí rozhraní REST API Get Endpoint Health můžete získat stav koncových bodů. Toto rozhraní API také poskytuje informace o tom, kdy byla zpráva naposledy úspěšně odeslána do koncového bodu, poslední známá chyba, čas poslední známé chyby a poslední pokus o odeslání pro tento koncový bod. Použijte možné zmírnění rizik poskytnuté pro konkrétní poslední známou chybu.

Náhle jsem přestal dostávat zprávy na vestavěném koncovém bodu

Chcete-li tento problém vyřešit, analyzujte následující informace.

Byla vytvořena nová trasa?

Jakmile je trasa vytvořena, data přestanou proudit do vestavěného koncového bodu, pokud není vytvořena trasa k tomuto koncovému bodu. Chcete-li zajistit, aby zprávy pokračovaly v toku do integrovaného koncového bodu, pokud je přidána nová trasa, nakonfigurujte trasu ke koncovému bodu událostí .

Byla deaktivována záložní trasa?

Záložní trasa odesílá všechny zprávy, které nesplňují žádnou z podmínek dotazu na žádné z existujících tras, do integrovaných center událostí (zpráv/událostí), které jsou kompatibilní se službou Event Hubs. Pokud je zapnuto směrování zpráv, můžete povolit funkci záložní trasy. Pokud neexistují žádné trasy k integrovanému koncovému bodu a je povolena záložní trasa, odesílají se do integrovaného koncového bodu pouze zprávy, které neodpovídají žádným podmínkám dotazu na trasách. Pokud jsou odstraněny všechny existující trasy, musí být povolena záložní trasa, aby bylo možné přijímat všechna data v integrovaném koncovém bodu.

Záložní trasu můžete povolit nebo zakázat v Azure Portal pomocí okna Směrování zpráv pro centrum IoT. Můžete také použít Azure Resource Manager pro FallbackRouteProperties k použití vlastního koncového bodu pro záložní trasu.

Poslední známé chyby pro koncové body směrování IoT Hub

Získání stavu koncového bodu v rozhraní REST API poskytuje stav koncových bodů a poslední známou chybu, aby bylo možné identifikovat důvod, proč koncový bod není v pořádku. V této tabulce jsou uvedeny nejčastější chyby.

Poslední známá chyba Popis/kdy k tomu dojde Možné zmírnění rizik
Přechodná Došlo k přechodné chybě a IoT Hub se pokusí operaci zopakovat. Sledujte protokoly prostředků tras.
Vnitřní chyba Při doručování zprávy do koncového bodu došlo k chybě. Tato chyba je interní výjimkou, ale také sleduje protokoly prostředků tras.
Neautorizováno IoT Hub nemá oprávnění odesílat zprávy do zadaného koncového bodu. Ověřte, zda je připojovací řetězec pro daný koncový bod aktuální. Pokud se změnila, zvažte aktualizaci IoT Hub. Pokud koncový bod používá spravovanou identitu, zkontrolujte, jestli má objekt zabezpečení IoT Hub požadovaná oprávnění k cíli.
Omezeno IoT Hub je omezován při zápisu zpráv do koncového bodu. Zkontrolujte limity omezení pro dotčený koncový bod. Upravte konfigurace koncového bodu tak, aby se v případě potřeby vertikálně zvýšil kapacita.
Přerušení zápasu Časový limit operace. Zkuste operaci zopakovat.
Nenalezeno Cílový prostředek neexistuje. Ujistěte se, že cílový prostředek existuje.
Kontejner nenalezen Kontejner úložiště neexistuje. Ujistěte se, že kontejner úložiště existuje.
Kontejner zakázán Kontejner úložiště je zakázán. Ujistěte se, že je kontejner úložiště povolen.
MaxMessageSizeExceeded Velikost zprávy je omezena na 256 kB. Velikost směrované zprávy tento limit překročila. Ověřte, zda je možné zmenšit velikost zprávy použitím menšího počtu vlastností aplikace nebo menšího počtu rozšíření zpráv.
PartitioningAndDuplicateDetectionNotSupported Služba Service Bus nemusí mít povolenou detekci duplicit. Zakažte vyhledávání duplicit ze služby Service Bus nebo zvažte použití entity bez detekce duplicit.
RelačníEntitaNotSupported Služba Service Bus nemusí mít povolené relace. Zakažte relaci ze služby Service Bus nebo zvažte použití entity bez relací.
NoMatchingSubscriptionsForMessage Neexistuje žádné předplatné pro psaní zpráv k tématu služby Service Bus. Vytvořte odběr pro IoT Hub zprávy, na které se mají směrovat.
Externí koncový bod Koncový bod není v aktivním stavu, takže IoT Hub do něj může odesílat zprávy. Povolte koncový bod, aby se vrátil do aktivního stavu.
DeviceMaximumQueueDepthExceeded Bylo dosaženo limitu velikosti sběrnice Service. Zvažte odebrání zpráv z cílových Event Hubs, abyste umožnili ingestování nových zpráv do Event Hubs.

Směruje protokoly prostředků

Níže jsou uvedeny názvy operací a kódy chyb zaznamenané v protokolech prostředků tras.

Názvy operací

Název operace Úroveň Popis
UndefinedRouteEvaluation Informace Zprávu nelze vyhodnotit pomocí podmínky zadání. Například pokud ve zprávě chybí vlastnost v podmínce dotazu směrování. Přečtěte si další informace o syntaxi směrovacích dotazů.
Chyba vyhodnocení trasy Chyba Při vyhodnocování zprávy došlo k chybě z důvodu problému s formátem zprávy. Tato chyba bude například zaznamenána, pokud není ve zprávě zadáno kódování obsahu nebo typ obsahu není platný. Ty je nutné nastavit ve vlastnostech systému.
DroppedMessage Chyba Zpráva byla vyřazena a nebyla směrována. Příčinou mohou být důvody, jako je zpráva neodpovídala žádnému směrovacímu dotazu nebo byl koncový bod mrtvý a zprávu nebylo možné doručit ani po několika pokusech. Doporučujeme získat další podrobnosti o koncovém bodu pomocí rozhraní REST API pro získání stavu koncového bodu.
Koncový bodNezdravý Chyba Koncový bod nepřijímá zprávy z IoT Hub a IoT Hub se pokouší zprávy znovu odeslat. Doporučujeme sledovat poslední známou chybu prostřednictvím rozhraní REST API pro získání stavu koncového bodu.
Mrtvý koncový bod Chyba Koncový bod nepřijímá zprávy z IoT Hub déle než hodinu. Doporučujeme sledovat poslední známou chybu prostřednictvím rozhraní REST API pro získání stavu koncového bodu.
Koncový bod v pořádku Informace Koncový bod je v pořádku a přijímá zprávy z IoT Hub. Tato zpráva se neprotokoluje průběžně, ale zaprotokoluje se až v případě, že koncový bod bude opět v pořádku. Tato zpráva znamená, že IoT Hub nemohl odesílat zprávy do koncového bodu, ale koncový bod je teď v pořádku.
Osiřelá zpráva Informace Zpráva se neshoduje s žádnou trasou.
Neplatná_zpráva Chyba Zpráva je neplatná z důvodu nekompatibility s koncovým bodem. Doporučujeme zkontrolovat konfiguraci koncového bodu.

Operace UndefinedRouteEvaluation, RouteEvaluationError a OrphanedMessage jsou omezeny a protokolovány ne více než jednou za minutu na IoT Hub.

Běžné kódy chyb

Kód chyby Popis
401002 Neoprávněný přístup IoT Hub
413001 Zpráva je příliš velká
403004 Byla překročena maximální hloubka fronty zařízení
503008 Příjem odkazu je omezený
500000 Obecná chyba serveru
401 Neautorizováno
503 Služba není k dispozici
500001 Chyba serveru
400103 Neplatné kódování nebo typ obsahu
404001 Zařízení nenalezeno

Další kroky

Pokud potřebujete další pomoc, můžete kontaktovat odborníky na Azure na fórech Microsoft Q&A a Stack Overflow. Případně můžete založit incident podpory Azure. Přejděte na Azure podporu a vyberte Získat podporu.