Ř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. Tyto zprávy je možné uchovávat v integrovaném koncovém bodu pro počet nakonfigurovaných dnů uchovávání informací.
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, vyberte problém, kde najdete podrobné kroky.
- Zprávy z mých zařízení se nesměrují podle očekávání
- Najednou jsem přestal dostávat zprávy v integrovaném koncovém bodu služby Event Hubs
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í 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č 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é poskytuje 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 . Toto rozhraní API 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í informace.
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
Získání stavu koncového bodu v rozhraní REST API poskytuje stav koncových bodů a poslední známou chybu, abyste zjistili důvod, proč koncový bod není v pořádku. Tato tabulka obsahuje seznam nejběžnějších chyb.
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ě. | Tato chyba je vnitřní výjimka, 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ění, 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é odběry 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.