Översikt över enhetsuppdatering för IoT Hub diagnostik
Enhetsuppdatering för IoT Hub har flera funktioner som hjälper dig att diagnostisera och felsöka fel på enhetssidan. Med lanseringen av v0.9.0-agenten finns det tre tillgängliga diagnostikfunktioner:
Distributionsfelkoder kan visas direkt i användargränssnittet för enhetsuppdatering
Med fjärrlogginsamling kan du skapa loggåtgärder som instruerar målenheter att ladda upp diagnostikloggar på enheten till ett länkat Azure Blob Storage-konto
Agentkontroll kör valideringskontroller på enheter som är registrerade på enhetsuppdateringsinstansen med målet att diagnostisera enheter som är registrerade i den anslutna IoT Hub, men som inte visas i Enhetsuppdatering
Felkoder för distribution i användargränssnittet
När en enhet rapporterar ett distributionsfel till enhetsuppdateringstjänsten visar användargränssnittet för enhetsuppdatering enhetens rapporterade resultCode
och extendedResultCode
i användargränssnittet. Använd följande steg för att visa dessa koder:
I Azure Portal navigerar du till din IoT-hubb.
Välj Uppdateringar och gå sedan till fliken Grupper och distributioner.
Välj namnet på en grupp med en aktiv distribution för att komma till sidan Gruppinformation .
Välj ett enhetsnamn i enhetslistan för att öppna panelen med enhetsinformation. Här kan du se resultatkoden som enheten har rapporterat.
Referensagenten för enhetsuppdatering följer standardkonventionen för HTTP-statuskod för resultatkodfältet (till exempel "200" anger att det lyckades). Mer information om hur du parsar resultatkoder finns i Felkoder för enhetsuppdateringsklient.
Anteckning
Om du har ändrat enhetsuppdateringsagenten för att rapportera anpassade resultatkoder skickas de numeriska koderna fortfarande vidare till användargränssnittet för enhetsuppdatering. Du kan sedan referera till all dokumentation som du har skapat för att parsa dessa numeriska koder.
Fjärrloggsamling
När mer information från enheten krävs för att diagnostisera och felsöka ett fel kan du använda loggsamlingsfunktionen för att instruera målenheter att ladda upp diagnostikloggar på enheten till ett länkat Azure Blob Storage-konto. Du kan börja använda den här funktionen genom att följa anvisningarna i Samla in diagnostikloggar från enheter via fjärranslutning.
Enhetsuppdateringens fjärrloggsamling är en tjänstdriven, driftsbaserad funktion. För att dra nytta av loggsamlingen behöver en enhet bara kunna implementera diagnostikgränssnittet och konfigurationsfilen och kunna ladda upp filer till Azure Blob Storage via SDK.
Från en hög nivå fungerar loggsamlingsfunktionen på följande sätt:
Användaren skapar en ny loggåtgärd med hjälp av användargränssnittet eller API:erna för enhetsuppdatering med upp till 100 enheter som har implementerat diagnostikgränssnittet.
Enhetsuppdateringstjänsten skickar ett startmeddelande för loggsamlingen till målenheterna med hjälp av diagnostikgränssnittet. Det här startmeddelandet innehåller loggåtgärds-ID:t och en SAS-token för uppladdning till det associerade Azure Storage-kontot.
När startmeddelandet tas emot försöker enhetsuppdateringsagenten för målenheten samla in och ladda upp filerna i de fördefinierade filsökvägarna som anges i konfigurationsfilen för agenten på enheten. Referensagenten för enhetsuppdatering är konfigurerad för att ladda upp diagnostikloggen för enhetsuppdateringsagenten (
aduc.log
) och DO Agent-diagnostikloggen ("do-agent.log") som standard.Enhetsuppdateringsagenten rapporterar sedan tillståndet för åtgärden (antingen Lyckades eller Misslyckades) tillbaka till tjänsten, inklusive loggåtgärds-ID, ett ResultCode och en ExtendedResultCode. Om enhetsuppdateringsagenten misslyckas med en loggåtgärd försöker den automatiskt försöka igen tre gånger och rapporterar endast det slutliga tillståndet tillbaka till tjänsten.
När alla målenheter har rapporterat sitt terminaltillstånd tillbaka till enhetsuppdateringstjänsten markerar enhetsuppdateringstjänsten loggåtgärden som antingen Lyckades eller Misslyckades. En lyckad loggåtgärd anger att alla målenheter har slutfört loggåtgärden. En misslyckad loggåtgärd anger att minst en målenhet misslyckades med loggåtgärden.
Anteckning
Eftersom loggåtgärden utförs parallellt av målenheterna är det möjligt att vissa målenheter har laddat upp loggar, men den övergripande loggåtgärden markeras som misslyckad. Du kan se vilka enheter som lyckades och vilka som misslyckades genom att visa loggåtgärdsinformationen via användargränssnittet eller API:erna.
Agentkontroll
När enheten är registrerad i IoT Hub men inte visas i enhetsuppdateringsinstansen kan du använda funktionen Agentkontroll för att köra fördefinierade valideringskontroller som hjälper dig att diagnostisera det underliggande problemet. Du kan börja använda den här funktionen genom att följa anvisningarna i Agentkontroll.
Från en hög nivå fungerar agentkontrollfunktionen på följande sätt:
Användaren registrerar en enhet med IoT Hub. Om enheten rapporterar ett modell-ID som matchar de som är kompatibla med Enhetsuppdatering för IoT Hub registrerar användarens anslutna enhetsuppdateringsinstans automatiskt enheten med Enhetsuppdatering.
För att en enhet ska kunna hanteras korrekt av Enhetsuppdatering måste den uppfylla vissa kriterier som kan verifieras med hjälp av Agentkontrolls fördefinierade valideringskontroller. Mer information om dessa kriterier finns här.
Om en enhet inte uppfyller alla dessa kriterier kan den inte hanteras korrekt av Enhetsuppdatering och visas inte i enhetsuppdateringsgränssnittet eller API-svar. Användare kan använda Agentkontroll för att hitta den här enheten och försöka identifiera vilka kriterier som inte uppfylls med hjälp av Agentkontroll.
När användaren har identifierat vilka kriterier som inte uppfylls kan användaren korrigera problemet och enheten bör sedan visas korrekt i gränssnittet För enhetsuppdatering.
Nästa steg
Lär dig hur du använder enhetsuppdateringens fjärrloggsamling och funktioner för agentkontroll: