Dela via


Ö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. Det finns 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å din enhetsuppdateringsinstans med målet att diagnostisera enheter som är registrerade i den anslutna IoT Hub, men som inte visas i Enhetsuppdatering.

Felkoder för implementering i användargränssnittet

När en enhet rapporterar ett distributionsfel till Enhetsuppdateringstjänsten visar Enhetsuppdateringens användargränssnitt enhetens rapporterade resultCode och extendedResultCode. Använd följande steg för att visa dessa koder:

  1. I Azure Portal, navigerar du till din IoT-hubb.

  2. Välj Uppdateringar och gå sedan till fliken Grupper och distributioner .

  3. Välj namnet på en grupp med en aktiv distribution för att komma till sidan Gruppinformation .

  4. Välj valfritt enhetsnamn i listan Enhet för att öppna panelen med enhetsinformation. Här kan du se resultatkoden som enheten rapporterade.

  5. 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.

    Anmärkning

    Om du har ändrat enhetsuppdateringsagenten för att rapportera anpassade resultatkoder skickas de numeriska koderna fortfarande 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 Fjärrinsamling av diagnostikloggar från enheter.

Enhetsuppdateringens fjärrloggsamling är en tjänstdriven, driftsbaserad funktion. För att kunna dra nytta av logginsamlingen 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:

  1. Du skapar en ny loggoperation med hjälp av användargränssnittet eller API:erna för Enhetsuppdatering, riktat mot upp till 100 enheter som har implementerat diagnostikgränssnittet.

  2. 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 och en SAS-token för uppladdning till det associerade Azure Storage-kontot.

  3. När startmeddelandet tas emot försöker enhetsuppdateringsagenten för målenheten samla in och ladda upp filerna i en eller flera fördefinierade filsökvägar 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-agentens diagnostiklogg ("do-agent.log") som standard.

  4. 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.

  5. 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 loggning åtgärd indikerar att åtminstone en enhet misslyckades med loggningen.

    Anmärkning

    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 din enhetsuppdateringsinstans 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 dessa instruktioner för agentkontroll.

Från en hög nivå fungerar funktionen för agentkontroll på följande sätt:

  1. Du registrerar en enhet med IoT Hub. Om enheten rapporterar ett modell-ID som matchar dem som är kompatibla med Enhetsuppdatering för IoT Hub registrerar den anslutna enhetsuppdateringsinstansen automatiskt enheten med Enhetsuppdatering.
  2. För att en enhet ska kunna hanteras korrekt av Enhetsuppdatering måste den uppfylla vissa kriterier som kan verifieras med agentkontrollens fördefinierade verifieringskontroller. Mer information om dessa kriterier finns här.
  3. Om en enhet inte uppfyller alla dessa kriterier kan den inte hanteras korrekt av Enhetsuppdatering och visas inte i enhetsuppdateringsgränssnittet eller API-svar. Du 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.
  4. När du har identifierat vilka kriterier som inte uppfylls kan du 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: