Felsöka meddelanderoutning

Den här artikeln innehåller vägledning för övervakning och felsökning för vanliga problem och lösningar för IoT Hub-meddelanderoutning.

Övervaka meddelanderoutning

Vi rekommenderar att du övervakar IoT Hub-mått som rör meddelanderoutning och slutpunkter för att ge dig en översikt över de meddelanden som skickas. Du kan också skapa en diagnostikinställning för att skicka åtgärder för vägar i IoT Hub-resursloggar till Azure Monitor-loggar, Event Hubs eller Azure Storage för anpassad bearbetning. Mer information om hur du använder mått, resursloggar och diagnostikinställningar finns i Övervaka IoT Hub. En självstudiekurs finns i Konfigurera och använda mått och resursloggar med en IoT-hubb.

Vi rekommenderar också att du aktiverar återställningsvägen om du vill underhålla meddelanden som inte matchar frågan på någon av vägarna. Dessa kan behållas i den inbyggda slutpunkten under den mängd kvarhållningsdagar som konfigurerats.

Vanligaste problemen

Följande är de vanligaste problemen som observerats med meddelanderoutning. Om du vill börja felsöka klickar du på problemet för detaljerade steg.

Meddelanden från mina enheter dirigeras inte som förväntat

Om du vill felsöka det här problemet analyserar du följande.

Routningsmåtten för den här slutpunkten

Alla IoT Hub-mått som är relaterade till routning är prefixet routning. Du kan kombinera information från flera mått för att identifiera rotorsaken till problem. Använd till exempel måttdirigeringsleveranser för att identifiera antalet meddelanden som levererades till en slutpunkt eller togs bort när de inte matchade frågor på någon av vägarna och återställningsvägen inaktiverades. Kontrollera måttet Routningssvarstid för att se om svarstiden för meddelandeleveransen är stabil eller ökar. En växande svarstid kan tyda på ett problem med en specifik slutpunkt och vi rekommenderar att du kontrollerar slutpunktens hälsotillstånd. Dessa routningsmått har också dimensioner som ger information om måttet som slutpunktstyp, specifikt slutpunktsnamn och en orsak till varför meddelandet inte levererades.

Resursloggarna för eventuella driftproblem

Observera resursloggarna Vägar för att få mer information om routnings- och slutpunktsåtgärdernaeller identifiera fel och relevant felkod för att förstå problemet ytterligare. Till exempel anger åtgärdsnamnet RouteEvaluationError i loggen att vägen inte kunde utvärderas på grund av ett problem med meddelandeformatet. Använd tipsen för de specifika åtgärdsnamnen för att åtgärda problemet. När en händelse loggas som ett fel ger loggen också mer information om varför utvärderingen misslyckades. Om åtgärdsnamnet till exempel är EndpointUnhealthy anger en felkod på 403004 att slutpunkten fick slut på utrymme.

Slutpunktens hälsa

Använd REST-API :et Get Endpoint Health för att hämta hälsostatus för slutpunkterna. API:et Hämta slutpunktshälsa innehåller också information om den senaste gången ett meddelande skickades till slutpunkten, det senaste kända felet, senaste kända feltid och senaste gången ett sändningsförsök gjordes för den här slutpunkten. Använd den möjliga åtgärd som tillhandahålls för det specifika senast kända felet.

Jag slutade plötsligt få meddelanden på den inbyggda slutpunkten

Om du vill felsöka det här problemet analyserar du följande.

Skapades en ny väg?

När en väg har skapats slutar data att flöda till den inbyggda slutpunkten, såvida inte en väg skapas till slutpunkten. För att säkerställa att meddelanden fortsätter att flöda till den inbyggda slutpunkten om en ny väg läggs till konfigurerar du en väg till händelseslutpunkten .

Har återställningsvägen inaktiverats?

Återställningsvägen skickar alla meddelanden som inte uppfyller något av frågevillkoren på någon av de befintliga vägarna till de inbyggda händelsehubbarna (meddelanden/händelser) som är kompatibla med Event Hubs. Om meddelanderoutning är aktiverat kan du aktivera återställningsvägen. Om det inte finns några vägar till den inbyggda slutpunkten och en återställningsväg är aktiverad skickas endast meddelanden som inte matchar några frågevillkor på vägar till den inbyggda slutpunkten. Om alla befintliga vägar tas bort måste återställningsvägen också aktiveras för att ta emot alla data på den inbyggda slutpunkten.

Du kan aktivera eller inaktivera återställningsvägen i Azure-portalen med hjälp av bladet Meddelanderoutning för IoT-hubben. Du kan också använda Azure Resource Manager for FallbackRouteProperties för att använda en anpassad slutpunkt för en återställningsväg.

Senast kända fel för IoT Hub-routningsslutpunkter

Hämta Slutpunktshälsa i REST-API:et ger hälsostatus för slutpunkterna, samt det senaste kända felet, för att identifiera orsaken till att en slutpunkt inte är felfri. I tabellen nedan visas de vanligaste felen.

Senast kända fel Beskrivning/när det inträffar Möjlig åtgärd
Tillfälligt Ett tillfälligt fel har inträffat och IoT Hub försöker utföra åtgärden igen. Observera vägar för resursloggar.
InternalError Ett fel uppstod när ett meddelande levererades till en slutpunkt. Det här är ett internt undantag men observera även vägarnas resursloggar.
Behörighet saknas IoT Hub har inte behörighet att skicka meddelanden till den angivna slutpunkten. Kontrollera att anslutningssträng är uppdaterad för slutpunkten. Om den har ändrats bör du överväga en uppdatering på din IoT Hub. Om slutpunkten använder hanterad identitet kontrollerar du att IoT Hub-huvudnamnet har de behörigheter som krävs för målet.
Begränsad IoT Hub begränsas när meddelanden skrivs till slutpunkten. Granska begränsningsgränserna för den berörda slutpunkten. Ändra konfigurationer för slutpunkten för att skala upp om det behövs.
Timeout Tidsgräns för åtgärd. Försök att utföra åtgärden igen.
Hittades inte Målresursen finns inte. Kontrollera att målresursen finns.
Det går inte att hitta containern Lagringscontainern finns inte. Kontrollera att lagringscontainern finns.
Containern är inaktiverad Lagringscontainern är inaktiverad. Kontrollera att lagringscontainern är aktiverad.
MaxMessageSizeExceededed Meddelanderoutning har en storleksgräns på 256 KB.Meddelandestorleken som dirigeras överskred den här gränsen. Kontrollera om meddelandestorleken kan minskas med hjälp av färre programegenskaper eller färre meddelande berikanden.
PartitioningAndDuplicateDetectionNotSupported Service Bus kanske inte har dubblettidentifiering aktiverat. Inaktivera dubblettidentifiering från Service Bus eller överväg att använda en entitet utan dubblettidentifiering.
SessionfulEntityNotSupported Service Bus kanske inte har aktiverat sessioner. Inaktivera session från Service Bus eller överväg att använda en entitet utan sessioner.
NoMatchingSubscriptionsForMessage Det finns ingen prenumeration för att skriva meddelande om Service Bus-ämnet. Skapa en prenumeration för IoT Hub-meddelanden som ska dirigeras till.
EndpointExternallyDisabled Slutpunkten är inte i ett aktivt tillstånd så IoT Hub kan skicka meddelanden till den. Aktivera slutpunkten för att återställa den till aktivt tillstånd.
DeviceMaximumQueueDepthExceeded Storleksgränsen för Service Bus har nåtts. Överväg att ta bort meddelanden från målhändelsehubbar för att tillåta att nya meddelanden matas in i händelsehubbarna.

Dirigerar resursloggar

Följande är åtgärdsnamnen och felkoderna som loggas i vägarnas resursloggar.

Åtgärdsnamn

Åtgärdsnamn Nivå beskrivning
UndefinedRouteEvaluation Information Meddelandet kan inte utvärderas med ett givande villkor. Om till exempel en egenskap i routningsfrågevillkoret saknas i meddelandet. Läs mer om routning av frågesyntax.
RouteEvaluationError Fel Ett fel uppstod vid utvärdering av meddelandet på grund av ett problem med meddelandeformatet. Det här felet loggas till exempel om innehållskodningen inte har angetts eller innehållstypen inte är giltig i meddelandet. Dessa måste anges i systemegenskaperna.
DroppedMessage Fel Meddelandet togs bort och dirigerades inte. Detta kan bero på orsaker som att meddelandet inte matchade någon routningsfråga eller att slutpunkten var död och att meddelandet inte kunde levereras efter flera återförsök. Vi rekommenderar att du får mer information om slutpunkten med hjälp av REST-API :et hämta slutpunktshälsa.
EndpointUnhealthy Fel Slutpunkten har inte accepterat meddelanden från IoT Hub och IoT Hub försöker skicka meddelandena igen. Vi rekommenderar att du observerar det senaste kända felet via REST API :et för att hämta slutpunktshälsa.
EndpointDead Fel Slutpunkten har inte accepterat meddelanden från IoT Hub på över en timme. Vi rekommenderar att du observerar det senaste kända felet via REST API :et för att hämta slutpunktshälsa.
EndpointHealthy Information Slutpunkten är felfri och tar emot meddelanden från IoT Hub. Det här meddelandet loggas inte kontinuerligt, men loggas bara när slutpunkten blir felfri igen. Det här meddelandet innebär att IoT Hub inte kunde skicka meddelanden till slutpunkten, men slutpunkten är nu felfri.
OrphanedMessage Information Meddelandet matchar inte någon väg.
InvalidMessage Fel Meddelandet är ogiltigt på grund av inkompatibilitet med slutpunkten. Vi rekommenderar att du kontrollerar slutpunktens konfigurationer.

Åtgärderna UndefinedRouteEvaluation, RouteEvaluationError och OrphanedMessage begränsas och loggas inte mer än en gång per minut per IoT Hub.

Vanliga felkoder

Felkod beskrivning
401002 Obehörig åtkomst till Iot Hub
413001 Meddelandet är för stort
403004 Enhetens maximala ködjup har överskridits
503008 Ta emot länkbegränsning
500000 Allmänt serverfel
401 Behörighet saknas
503 Tjänsten är inte tillgänglig
500001 Serverfel
400103 Ogiltig innehållskodning eller innehållstyp
404001 Enheten hittades inte

Nästa steg

Om du behöver mer hjälp kan du kontakta Azure-experterna på Microsoft Q&A- och Stack Overflow-forumen. Du kan också skapa en Azure-supportincident. Gå till Azure-supportwebbplatsen och välj Hämta support.