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í potíží se směrováním zpráv ve službě IoT Hub.

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

Doporučujeme monitorovat metriky služby IoT Hub související se směrováním zpráv a koncovými body, abyste získali 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ů služby IoT Hub do protokolů služby Azure Monitor, služby Event Hubs nebo Azure Storage pro vlastní zpracování. Další informace o používání metrik, protokolů prostředků a nastavení diagnostiky najdete v tématu Monitorování služby IoT Hub. Kurz najdete v tématu Nastavení a použití metrik a protokolů prostředků s centrem IoT.

Doporučujeme také povolit náhradní trasu, pokud chcete zachovat zprávy, které neodpovídají dotazu na žádné z tras. Ty je možné uchovávat v integrovaném koncovém bodu po dobu nakonfigurovaných dnů uchovávání.

Nejčastější problémy

Následují nejběžnější problémy se směrováním zpráv. Pokud chcete začít řešit potíže, klikněte na problém, kde najdete podrobné kroky.

Zprávy z mých zařízení se nesměrují podle očekávání

Pokud chcete tento problém vyřešit, analyzujte následující.

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 metrice, jako je typ koncového bodu, konkrétní název koncového bodu a důvod, proč se zpráva nedoručila.

Protokoly prostředků pro všechny provozní problémy

Projděte si protokoly prostředků Trasy a získejte další informace o operacích směrování a koncových bodů nebo identifikujte chyby a příslušný kód chyby, abyste tomuto problému lépe porozuměli. Například název operace RouteEvaluationError v protokolu značí, že trasu nebylo možné vyhodnotit kvůli problému s formátem zprávy. Pokud chcete tento problém zmírnit, použijte tipy uvedené pro konkrétní názvy operací. Když se událost zaprotokoluje jako chyba, protokol také poskytne další informace o tom, proč vyhodnocení selhalo. Pokud je například název operace EndpointUnhealthy, kód chyby 403004 indikuje, že koncový bod je nedostatek místa.

Stav koncového bodu

Stav koncových bodů získáte pomocí rozhraní REST API Get Endpoint Health . Rozhraní API služby Get Endpoint Health také poskytuje informace o posledním úspěšném odeslání zprávy do koncového bodu, poslední známé chybě, času poslední známé chyby a poslednímu pokusu o odeslání pro tento koncový bod. Použijte možné zmírnění rizika uvedené pro konkrétní poslední známou chybu.

Najednou jsem přestal dostávat zprávy v integrovaném koncovém bodu

Pokud chcete tento problém vyřešit, analyzujte následující.

Vytvořili jste novou trasu?

Po vytvoření trasy se data zastaví do integrovaného koncového bodu, pokud se do daného koncového bodu nevytvořila trasa. Pokud chcete zajistit, aby zprávy při přidání nové trasy pokračovaly v toku do integrovaného koncového bodu, nakonfigurujte trasu do koncového bodu událostí .

Byla náhradní trasa zakázaná?

Náhradní trasa odesílá všechny zprávy, které nesplňují žádné podmínky dotazu na žádné z existujících tras do integrované služby Event Hubs (zprávy nebo události), které jsou kompatibilní se službou Event Hubs. Pokud je zapnuté směrování zpráv, můžete povolit funkci náhradní trasy. Pokud nejsou k dispozici žádné trasy k integrovanému koncovému bodu a je povolená náhradní trasa, budou se do integrovaného koncového bodu odesílat jenom zprávy, které neodpovídají žádným podmínkám dotazu na trasy. Pokud se odstraní všechny existující trasy, musí být záložní trasa povolená, aby přijímala všechna data v integrovaném koncovém bodu.

Náhradní trasu můžete povolit nebo zakázat na webu Azure Portal pomocí okna Směrování zpráv pro centrum IoT. K použití vlastního koncového bodu pro náhradní trasu můžete použít také Azure Resource Manager pro náhradní trasu.

Poslední známé chyby koncových bodů směrování služby IoT Hub

Funkce Get Endpoint Health v rozhraní REST API poskytuje stav koncových bodů a také poslední známou chybu, aby bylo možné identifikovat důvod, proč koncový bod není v pořádku. V následující tabulce jsou uvedeny nejběžnější chyby.

Poslední známá chyba Popis/kdy k němu dojde Možné zmírnění rizik
Přechodná Došlo k přechodné chybě a IoT Hub zkusí operaci zopakovat. Sledujte protokoly prostředků.
InternalError Při doručování zprávy do koncového bodu došlo k chybě. Jedná se o interní výjimku, ale také sledujte protokoly prostředků tras.
Neautorizováno IoT Hub nemá oprávnění odesílat zprávy do zadaného koncového bodu. Ověřte, že je připojovací řetězec pro koncový bod aktuální. Pokud se změnila, zvažte aktualizaci ve službě IoT Hub. Pokud koncový bod používá spravovanou identitu, zkontrolujte, jestli má objekt zabezpečení Služby IoT Hub požadovaná oprávnění k cíli.
Omezeno IoT Hub se omezuje při zápisu zpráv do koncového bodu. Zkontrolujte omezení ovlivněného koncového bodu. V případě potřeby upravte konfigurace koncového bodu tak, aby se vertikálně navýšit.
Timeout Časový limit operace. Zkuste operaci zopakovat.
Nenalezeno Cílový prostředek neexistuje. Ujistěte se, že cílový prostředek existuje.
Kontejner nebyl nalezen. Kontejner úložiště neexistuje. Ujistěte se, že kontejner úložiště existuje.
Kontejner je zakázaný. Kontejner úložiště je zakázaný. Ujistěte se, že je povolený kontejner úložiště.
MaxMessageSizeExceededed Směrování zpráv má limit velikosti zprávy 256 kB.Velikost směrované zprávy překročila tento limit. Zkontrolujte, jestli je možné zmenšit velikost zprávy pomocí menšího počtu vlastností aplikace nebo menšího počtu rozšíření zpráv.
PartitioningAndDuplicateDetectionNotSupported Service Bus nemusí mít povolenou detekci duplicit. Zakažte detekci duplicit ve službě Service Bus nebo zvažte použití entity bez detekce duplicit.
SessionfulEntityNotSupported Service Bus nemusí mít povolené relace. Zakažte relaci ze služby Service Bus nebo zvažte použití entity bez relací.
NoMatchingSubscriptionsForMessage V tématu služby Service Bus není k dispozici žádné předplatné pro zápis zprávy. Vytvořte odběr pro zprávy ioT Hubu, do které se mají směrovat.
EndpointExternallyDisabled Koncový bod není v aktivním stavu, aby do něj ioT Hub mohl odesílat zprávy. Povolte koncovému bodu, aby se vrátil do aktivního stavu.
DeviceMaximumQueueDepthExceeded Bylo dosaženo limitu velikosti služby Service Bus. Zvažte odebrání zpráv z cílové služby Event Hubs, aby se nové zprávy mohly ingestovat do služby Event Hubs.

Směrování protokolů prostředků

Tady jsou názvy operací a kódy chyb protokolované v protokolech prostředků tras.

Názvy operací

Název operace Level Popis
NedefinovanéRouteEvaluation Informační Zprávu nelze vyhodnotit podmínkou poskytnutí. Pokud například ve zprávě chybí vlastnost v podmínce dotazu trasy. Přečtěte si další informace o syntaxi dotazů směrování.
RouteEvaluationError Chyba Při vyhodnocování zprávy došlo k chybě kvůli problému s formátem zprávy. Tato chyba se například zaprotokoluje, pokud kódování obsahu není zadané nebo typ obsahu není ve zprávě platný. Tyto vlastnosti musí být nastaveny ve vlastnostech systému.
DroppedMessage Chyba Zpráva byla ukončena a nebyla směrována. Důvodem může být to, že zpráva neodpovídá žádnému dotazu směrování nebo koncovému bodu, protože zpráva se po několika opakovaných opakováních nedoručila. Doporučujeme získat další podrobnosti o koncovém bodu pomocí rozhraní REST API získat stav koncového bodu.
EndpointUnhealthy Chyba Koncový bod nepřijímá zprávy ze služby IoT Hub a IoT Hub se pokouší zprávy znovu odeslat. Doporučujeme sledovat poslední známou chybu prostřednictvím rozhraní REST API získat stav koncového bodu.
EndpointDead Chyba Koncový bod nepřijímá zprávy ze služby IoT Hub déle než hodinu. Doporučujeme sledovat poslední známou chybu prostřednictvím rozhraní REST API získat stav koncového bodu.
EndpointHealthy Informační Koncový bod je v pořádku a přijímá zprávy ze služby IoT Hub. Tato zpráva není protokolována nepřetržitě, ale protokolována pouze v případě, že se koncový bod znovu v pořádku. Tato zpráva znamená, že Služba IoT Hub nemohla odesílat zprávy do koncového bodu, ale koncový bod je teď v pořádku.
Osamocené zprávy Informační Zpráva se neshoduje s žádnou trasou.
Neplatná zpráva Chyba Zpráva je neplatná kvůli nekompatibilitě s koncovým bodem. Doporučujeme zkontrolovat konfigurace koncového bodu.

Operace UndefinedRouteEvaluation, RouteEvaluationError a OrphanedMessage jsou omezeny a protokolovány maximálně jednou za minutu na IoT Hub.

Běžné kódy chyb

Kód chyby Popis
401002 Neoprávněný přístup ke službě Iot Hub
413001 Zpráva je příliš velká
403004 Překročení maximální hloubky fronty zařízení
503008 Omezení příjmu odkazu
500000 Obecná chyba serveru
401 Neautorizováno
503 Nedostupná služba
500001 Chyba serveru
400103 Neplatné kódování obsahu nebo typ obsahu
404001 Zařízení se nenašlo

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 podat incident podpora Azure. Přejděte na web podpora Azure a vyberte Získat podporu.