Ü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
- Hirtelen leállítottam az üzenetek fogadását a beépített Event Hubs-végponton
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.