Megosztás a következőn keresztül:


Üzenet-útválasztás hibaelhárítása

Ez a cikk monitorozási és hibaelhárítási útmutatást nyújt az IoT Hub-üzenetek útválasztásával kapcsolatos gyakori problémákhoz és megoldáshoz.

Üzenetek útválasztásának figyelése

Javasoljuk, hogy figyelje az üzenetek útválasztásával és végpontjaival kapcsolatos IoT Hub-metrikákat , hogy áttekintést kapjon az elküldött üzenetekről. Létrehozhat egy diagnosztikai beállítást is, amellyel az IoT Hub-erőforrásnaplókban lévő útvonalak műveleteit elküldheti az Azure Monitor-naplókba, az Event Hubsba vagy az Azure Storage-ba egyéni feldolgozás céljából. A metrikák, az erőforrásnaplók és a diagnosztikai beállítások használatáról további információt az IoT Hub monitorozása című témakörben talál. Oktatóanyag : Metrikák és erőforrásnaplók beállítása és használata IoT Hub használatával.

Azt is javasoljuk, hogy engedélyezze a tartalék útvonalat , ha olyan üzeneteket szeretne fenntartani, amelyek nem felelnek meg a lekérdezésnek egyik útvonalon sem. Ezek az üzenetek a konfigurált megőrzési napok számához megtarthatók a beépített végponton .

Legfontosabb kérdések

Az üzenetek útválasztásával kapcsolatos leggyakoribb problémák az alábbiak. A hibaelhárítás megkezdéséhez válassza ki a problémát a részletes lépésekhez.

Az eszközeimről érkező üzenetek átirányítása nem a várt módon történik

A probléma elhárításához elemezze a következő információkat.

A végpont útválasztási metrikái

Az útválasztáshoz kapcsolódó összes IoT-központ-mérőszám Útválasztás előtaggal van jelölve. A problémák végső okának azonosítása érdekében több mérőszámból nyert információt is kombinálhat. Az Útválasztási kézbesítések mérőszám használatával például azonosíthatja azon üzenetek számát, amelyeket a végpontra küldtek vagy amelyek elvetésre kerültek, ha nem egyeztek lekérdezésekkel egyik útvonalon sem, és a tartalék útvonal le volt tiltva. Ellenőrizze az Útválasztási késleltetés mérőszámot, és figyelje meg, hogy az üzenetkézbesítés késleltetése állandó-e vagy növekvő. A növekvő késés egy adott végponttal kapcsolatos problémát jelezhet, és javasoljuk, hogy ellenőrizze a végpont állapotát. Ezek az útválasztási metrikák olyan dimenziókkal is rendelkeznek, amelyek a metrika részleteit adják meg, például a végponttípust, a konkrét végpontnevet és annak okát, hogy miért nem kézbesítették az üzenetet.

A működési problémák erőforrásnaplói

Tekintse meg az Útvonalak erőforrásnaplókat, hogy további információt kapjon az útválasztási és végpontműveletekről, vagy azonosítsa a hibákat és a vonatkozó hibakódot a probléma további megértéséhez. A naplóban található RouteEvaluationError műveletnév például azt jelzi, hogy az útvonal nem értékelhető ki az üzenetformátummal kapcsolatos probléma miatt. A probléma megoldásához használja az adott műveletnevekhez megadott tippeket. Ha egy eseményt hibaként naplóznak, a napló további információkat is biztosít arról, hogy miért nem sikerült a kiértékelés. Ha például a művelet neve EndpointUnhealthy, a 403004 hibakódja azt jelzi, hogy a végpont elfogyott a szabad területből.

A végpont állapota

A végpontok állapotának lekéréséhez használja a REST API Végpontállapot lekérése parancsot. Ez az API azt is tartalmazza, hogy mikor lett sikeresen elküldve az üzenet a végpontnak, az utolsó ismert hibáról, az utolsó ismert hiba időpontjáról, valamint arról, hogy mikor történt utoljára küldési kísérlet erre a végpontra. Használja az adott utolsó ismert hiba lehetséges megoldását.

Hirtelen leállítottam az üzenetek fogadását a beépített végponton

A probléma elhárításához elemezze a következő információkat.

Új útvonal lett létrehozva?

Az útvonal létrehozása után az adatok nem haladnak tovább a beépített végpontra, hacsak nem jön létre útvonal az adott végpontra. Annak érdekében, hogy új útvonal hozzáadása esetén az üzenetek továbbra is a beépített végpontra folyjanak, konfiguráljon egy útvonalat az eseményvégponthoz .

Le volt tiltva a tartalék útvonal?

A tartalék útvonal elküldi az összes olyan üzenetet, amely nem felel meg a meglévő útvonalak lekérdezési feltételeinek az Event Hubs szolgáltatással kompatibilis beépített Event Hubs -nak (üzenetek/események). Ha az üzenet-útválasztás be van kapcsolva, engedélyezheti a tartalék útvonal képességét. Ha nincsenek útvonalak a beépített végponthoz, és a tartalék útvonal engedélyezve van, csak azok az üzenetek lesznek elküldve a beépített végpontra, amelyek nem felelnek meg az útvonalak lekérdezési feltételeinek. Ha az összes meglévő útvonal törölve van, a tartalék útvonalat engedélyezni kell az összes adat fogadásához a beépített végponton.

Az Azure Portalon engedélyezheti vagy letilthatja a tartalék útvonalat az IoT Hub Üzenet-útválasztás paneljén. Az Azure Resource Manager for FallbackRouteProperties használatával egyéni végpontot is használhat tartalék útvonalhoz.

Az IoT Hub-útválasztási végpontok utolsó ismert hibái

Az Endpoint Health lekérése a REST API-ban a végpontok állapotának és az utolsó ismert hiba állapotának meghatározásával azonosítja, hogy egy végpont miért nem kifogástalan. Ez a táblázat a leggyakoribb hibákat sorolja fel.

Utolsó ismert hiba Leírás/ha bekövetkezik Lehetséges kockázatcsökkentés
Átmeneti Átmeneti hiba történt, és az IoT Hub újrapróbálkozza a műveletet. Figyelje meg az útvonalak erőforrásnaplóit.
InternalError Hiba történt egy üzenet végpontnak való kézbesítése közben. Ez a hiba belső kivétel, de megfigyelheti az útvonalak erőforrásnaplóit is.
Nem engedélyezett Az IoT Hub nem jogosult üzenetek küldésére a megadott végpontra. Ellenőrizze, hogy a kapcsolati sztring naprakész-e a végponthoz. Ha módosult, fontolja meg az IoT Hub frissítését. Ha a végpont felügyelt identitást használ, ellenőrizze, hogy az IoT Hub-főkiszolgáló rendelkezik-e a célhoz szükséges engedélyekkel.
Szabályozva Az IoT Hub szabályozás alatt áll, miközben üzeneteket ír a végpontba. Tekintse át az érintett végpont szabályozási korlátait. Szükség esetén módosítsa a végpont konfigurációit a vertikális felskálázáshoz.
Időkorlát Művelet időtúllépése. Próbálja meg újra a műveletet.
Nem található A célerőforrás nem létezik. Győződjön meg arról, hogy a célerőforrás létezik.
A tároló nem található A tároló nem létezik. Győződjön meg arról, hogy a tároló létezik.
A tároló le van tiltva A tároló le van tiltva. Győződjön meg arról, hogy a tároló engedélyezve van.
MaxMessageSizeExceeded Az üzenet-útválasztás üzenetméretkorlátja 256 Kb. Az átirányított üzenet mérete túllépte ezt a korlátot. Ellenőrizze, hogy az üzenetméret csökkenthető-e kevesebb alkalmazástulajdonság vagy kevesebb üzenetnagyítás használatával.
PartitioningAndDuplicateDetectionNotSupported Előfordulhat, hogy a service busban nincs engedélyezve a duplikált észlelés. Tiltsa le az ismétlődő észlelést a Service Busból, vagy fontolja meg egy entitás duplikált észlelés nélküli használatát.
SessionfulEntityNotSupported Előfordulhat, hogy a service bus nem engedélyezi a munkameneteket. Tiltsa le a munkamenetet a Service Busból, vagy fontolja meg egy entitás munkamenetek nélküli használatát.
NoMatchingSubscriptionsForMessage Nincs előfizetés arra, hogy üzenetet írjon a service bus-témakörre. Hozzon létre egy előfizetést az IoT Hub-üzenetekhez, amelybe irányítandó.
EndpointExternallyDisabled A végpont nincs aktív állapotban, így az IoT Hub üzeneteket küldhet neki. Engedélyezze a végpontnak, hogy visszaállítsa azt aktív állapotba.
DeviceMaximumQueueDepthExceeded Elérte a service bus méretkorlátját. Érdemes lehet eltávolítani az üzeneteket a cél eseményközpontokból, hogy új üzeneteket lehessen betöltésre az Event Hubsba.

Erőforrásnaplók átirányítása

Az alábbi műveletek nevei és hibakódjai vannak naplózva az útvonalak erőforrásnaplóiban.

Műveletnevek

Művelet neve Level Leírás
UndefinedRouteEvaluation Tájékoztatás Az üzenet nem értékelhető ki egy adott feltétellel. Ha például az útvonal-lekérdezési feltétel egyik tulajdonsága hiányzik az üzenetből. További információ az útválasztási lekérdezés szintaxisáról.
RouteEvaluationError Hiba Hiba történt az üzenet kiértékelésekor az üzenet formátumával kapcsolatos probléma miatt. Ez a hiba például akkor lesz naplózva, ha a tartalomkódolás nincs megadva, vagy a tartalomtípus nem érvényes az üzenetben. Ezeket a rendszertulajdonságokban kell beállítani.
DroppedMessage Hiba Az üzenet el lett dobva, és nem lett átirányítva. Ennek oka lehet, hogy az üzenet nem felelt meg az útválasztási lekérdezésnek vagy a végpontnak, és több újrapróbálkozás után nem sikerült kézbesíteni az üzenetet. Javasoljuk, hogy a REST API-val szerezze be a végpont állapotát.
EndpointUnhealthy Hiba A végpont nem fogadott üzeneteket az IoT Hubról, és az IoT Hub megpróbálja újraküldni az üzeneteket. Javasoljuk, hogy megfigyelje az utolsó ismert hibát a REST API-val a végpont állapotának lekérésével.
EndpointDead Hiba A végpont több mint egy órája nem fogad üzeneteket az IoT Hubról. Javasoljuk, hogy megfigyelje az utolsó ismert hibát a REST API-val a végpont állapotának lekérésével.
EndpointHealthy Tájékoztatás A végpont kifogástalan állapotú, és üzeneteket fogad az IoT Hubról. Ezt az üzenetet a rendszer nem naplózza folyamatosan, hanem csak akkor naplózza, ha a végpont ismét kifogástalan állapotúvá válik. Ez az üzenet azt jelenti, hogy az IoT Hub nem tudott üzeneteket küldeni a végpontnak, de a végpont állapota kifogástalan.
OrphanedMessage Tájékoztatás Az üzenet nem egyezik egyetlen útvonalhoz sem.
InvalidMessage Hiba Az üzenet érvénytelen a végponttal való kompatibilitás miatt. Javasoljuk, hogy ellenőrizze a végpont konfigurációit.

A UndefinedRouteEvaluation, a RouteEvaluationError és az OrphanedMessage műveletek szabályozása és naplózása percenként legfeljebb egyszer megtörténik IoT Hubonként.

Gyakori hibakódok

Hibakód Leírás
401002 Iot Hub – Jogosulatlan hozzáférés
413001 Túl nagy üzenet
403004 Az eszköz maximális üzenetsor-mélysége túllépve
503008 Szabályozott fogadási hivatkozás
500 000 Általános kiszolgálóhiba
401 Nem engedélyezett
503 A szolgáltatás nem érhető el
500001 Kiszolgálóhiba
400103 Érvénytelen tartalomkódolás vagy tartalomtípus
404001 Az eszköz nem található

Következő lépések

Ha további segítségre van szüksége, forduljon az Azure szakértőihez a Microsoft Q&A és a Stack Overflow fórumain. Másik lehetőségként Azure-támogatás incidenst is beszedhet. Lépjen a Azure-támogatás webhelyre, és válassza a Támogatás kérése lehetőséget.