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


IoT Edge-eszköz hibaelhárítása

A következőkre vonatkozik: IoT Edge 1.5 pipa IoT Edge 1.5 IoT Edge 1.4 pipa IoT Edge 1.4

Fontos

Az IoT Edge 1.5 LTS és az IoT Edge 1.4 LTS támogatott kiadások. Az IoT Edge 1.4 LTS 2024. november 12-én megszűnik. Ha egy korábbi kiadáson dolgozik, olvassa el az IoT Edge frissítése című témakört.

Ha problémákat tapasztal az Azure IoT Edge környezetben való futtatásával kapcsolatban, ezt a cikket útmutatóként használhatja a hibaelhárításhoz és a diagnosztikához.

Futtassa az "ellenőrzés" parancsot

Az IoT Edge hibaelhárításának első lépése a check parancs használata, amely konfigurációs és kapcsolati tesztek gyűjteményét futtatja a gyakori problémák esetén. A check parancs az 1.0.7-es és újabb verziókban érhető el.

Feljegyzés

A hibaelhárító eszköz nem tudja futtatni a kapcsolati ellenőrzéseket, ha az IoT Edge-eszköz proxykiszolgáló mögött található.

A parancsot az check alábbiak szerint futtathatja, vagy a --help jelölőt is belefoglalva megtekintheti a lehetőségek teljes listáját:

sudo iotedge check

A hibaelhárítási eszköz számos ellenőrzést futtat, amelyek az alábbi három kategóriába vannak rendezve:

  • A konfigurációellenőrzések olyan részleteket vizsgálnak meg, amelyek megakadályozhatják, hogy az IoT Edge-eszközök csatlakozzanak a felhőhöz, beleértve a konfigurációs fájllal és a tárolómotorral kapcsolatos problémákat is.
  • A kapcsolatellenőrzések ellenőrzik, hogy az IoT Edge-futtatókörnyezet hozzáfér-e a gazdaeszköz portjaihoz, és hogy az összes IoT Edge-összetevő csatlakozni tud-e az IoT Hubhoz. Ez az ellenőrzőkészlet hibákat ad vissza, ha az IoT Edge-eszköz proxy mögött található.
  • Az éles üzemkészség-ellenőrzések az ajánlott ajánlott gyártási eljárásokat keresik, például az eszköztanúsítványok (CA) tanúsítványainak állapotát és a modul naplófájljának konfigurációját.

Az IoT Edge ellenőrzőeszköz egy tárolóval futtatja a diagnosztikát. A tárolórendszerkép mcr.microsoft.com/azureiotedge-diagnostics:latesta Microsoft Container Registryen keresztül érhető el. Ha olyan eszközön kell ellenőrzést futtatnia, amely nem rendelkezik közvetlen internet-hozzáféréssel, az eszközöknek hozzá kell férnie a tárolólemezképhez.

Beágyazott IoT Edge-eszközöket használó forgatókönyvben a rendszerkép szülőeszközökön keresztüli útválasztásával férhet hozzá a diagnosztikai rendszerképhez az alsóbb rétegbeli eszközökön.

sudo iotedge check --diagnostics-image-name <parent_device_fqdn_or_ip>:<port_for_api_proxy_module>/azureiotedge-diagnostics:1.2

Az eszköz által futtatott diagnosztikai ellenőrzésekről, többek között arról, hogy mi a teendő, ha hibaüzenetet vagy figyelmeztetést kap, tekintse meg az IoT Edge hibaelhárítási ellenőrzései című témakört.

Hibakeresési információk gyűjtése a "support-bundle" paranccsal

Ha naplókat kell gyűjtenie egy IoT Edge-eszközről, a legkényelmesebb módszer a support-bundle parancs használata. Ez a parancs alapértelmezés szerint összegyűjti a modulokat, az IoT Edge security managert és a tárolómotor naplóit, iotedge check a JSON-kimenetet és más hasznos hibakeresési információkat. Az egyszerű megosztás érdekében egyetlen fájlba tömöríti őket. A support-bundle parancs az 1.0.9-es és újabb verziókban érhető el.

Futtassa a support-bundle parancsot a --since jelölővel, és adja meg, hogy mennyi ideig szeretné lekérni a naplókat. A naplók például 6h az elmúlt hat óra óta, 6d az elmúlt hat nap óta, 6m az elmúlt hat perc óta stb. Adja meg a jelölőt a --help lehetőségek teljes listájának megtekintéséhez.

sudo iotedge support-bundle --since 6h

Alapértelmezés szerint a support-bundle parancs létrehoz egy support_bundle.zip nevű zip-fájlt abban a könyvtárban, ahol a parancsot meghívják. A jelölő --output használatával adjon meg egy másik elérési utat vagy fájlnevet a kimenethez.

A parancsról további információt a súgóban talál.

iotedge support-bundle --help

Az UploadSupportBundle beépített közvetlen metódushívásával is feltöltheti a támogatási csomag parancs kimenetét az Azure Blob Storage-ba.

Figyelmeztetés

A parancs kimenete support-bundle tartalmazhat gazdagépeket, eszköz- és modulneveket, a modulok által naplózott adatokat stb. Vegye figyelembe ezt, ha nyilvános fórumon osztja meg a kimenetet.

A futtatókörnyezetből gyűjtött metrikák áttekintése

Az IoT Edge futtatókörnyezeti moduljai metrikákat hoznak létre, amelyek segítenek az IoT Edge-eszközök állapotának monitorozásában és megértésében. Adja hozzá a metrikák gyűjtő modulját az üzemelő példányokhoz a metrikák gyűjtésének kezeléséhez és a felhőbe való küldéséhez a könnyebb monitorozás érdekében.

További információt a Metrikák összegyűjtése és átvitele című témakörben talál.

Az IoT Edge-verzió ellenőrzése

Ha az IoT Edge egy régebbi verzióját futtatja, az új verzióra történő frissítés megoldhatja a problémát. Az iotedge check eszköz ellenőrzi, hogy az IoT Edge biztonsági démon a legújabb verzió-e, de nem ellenőrzi az IoT Edge hub és az ügynökmodulok verzióit. A futtatókörnyezeti modulok verziójának ellenőrzéséhez használja a parancsokat iotedge logs edgeAgent és iotedge logs edgeHuba . A verziószámot a rendszer a naplókban határozza meg a modul indításakor.

Az eszköz frissítésével kapcsolatos utasításokért lásd : IoT Edge biztonsági démon és futtatókörnyezet frissítése.

Az IoT Edge telepítésének ellenőrzése az eszközökön

Az IoT Edge telepítését az edgeAgent modul ikerpéldányának figyelésével ellenőrizheti az eszközökön.

A legújabb edgeAgent modul ikerpéldányának beszerzéséhez futtassa a következő parancsot az Azure Cloud Shellből:

az iot hub module-twin show --device-id <edge_device_id> --module-id '$edgeAgent' --hub-name <iot_hub_name>

Ez a parancs az edgeAgent jelentett összes tulajdonságát kimeneteli. Íme néhány hasznos, amely figyeli az eszköz állapotát:

  • futtatókörnyezet állapota
  • futásidejű kezdési idő
  • futtatókörnyezet utolsó kilépési ideje
  • futásidejű újraindítások száma

Ellenőrizze az IoT Edge biztonsági kezelőjének állapotát és naplóit

Az IoT Edge biztonsági kezelője felelős az olyan műveletekért, mint az IoT Edge-rendszer inicializálása az indításkor és a kiépítési eszközökön. Ha az IoT Edge nem indul el, a security manager naplói hasznos információkat nyújthatnak.

  • Tekintse meg az IoT Edge rendszerszolgáltatások állapotát:

    sudo iotedge system status
    
  • Tekintse meg az IoT Edge rendszerszolgáltatások naplóit:

    sudo iotedge system logs -- -f
    
  • Engedélyezze a hibakeresési szintű naplókat az IoT Edge rendszerszolgáltatások részletesebb naplóinak megtekintéséhez:

    1. Hibakeresési szintű naplók engedélyezése.

      sudo iotedge system set-log-level debug
      sudo iotedge system restart
      
    2. A hibakeresés után váltson vissza az alapértelmezett információszintű naplókra.

      sudo iotedge system set-log-level info
      sudo iotedge system restart
      

A tárolónaplók hibáinak ellenőrzése

Az IoT Edge biztonsági démon futtatása után tekintse meg a tárolók naplóit a problémák észleléséhez. Kezdje az üzembe helyezett tárolókkal, majd tekintse meg az IoT Edge-futtatókörnyezetet alkotó tárolókat: edgeAgent és edgeHub. Az IoT Edge-ügynöknaplók általában információt nyújtanak az egyes tárolók életciklusáról. Az IoT Edge-központ naplói információt nyújtanak az üzenetkezelésről és az útválasztásról.

A tárolónaplókat több helyről is lekérheti:

Tárolónaplók törlése

Alapértelmezés szerint a Moby tárolómotor nem állítja be a tárolónapló méretkorlátját. Idővel a kiterjedt naplók azt eredményezhetik, hogy az eszköz megtelik a naplókkal, és elfogy a lemezterület. Ha a nagyméretű tárolónaplók befolyásolják az IoT Edge-eszköz teljesítményét, az alábbi paranccsal kényszerítheti a tároló és a kapcsolódó naplók eltávolítását.

Ha továbbra is hibaelhárítást hajt végre, várjon, amíg megtekinti a tárolónaplókat, hogy elvégezhesse ezt a lépést.

Figyelmeztetés

Ha kényszeríti az edgeHub-tároló eltávolítását, miközben nem kézbesített üzenetnaplóval rendelkezik, és nincs beállítva gazdagéptároló , a nem kézbesített üzenetek elvesznek.

docker rm --force <container name>

A naplók folyamatos karbantartása és éles forgatókönyvei esetén állítsa be az alapértelmezett naplózási illesztőprogramot.

Az IoT Edge hubon áthaladó üzenetek megtekintése

Megtekintheti az IoT Edge hubon áthaladó üzeneteket, és részletes naplókból gyűjthet megállapításokat a futtatókörnyezeti tárolókból. A tárolók részletes naplóinak bekapcsolásához állítsa be a RuntimeLogLevel környezeti változót az üzembehelyezési jegyzékben.

Az IoT Edge hubon áthaladó üzenetek megtekintéséhez állítsa be a RuntimeLogLevel környezeti változót debug az edgeHub-modulhoz.

Az edgeHub és az edgeAgent modulok is rendelkeznek ezzel a futtatókörnyezeti napló környezeti változóval, amelynek alapértelmezett értéke a következő info. Ez a környezeti változó a következő értékeket veheti fel:

  • fatális
  • error
  • figyelmeztetés
  • infó
  • Debug
  • részletes

Az IoT Hub és az IoT-eszközök között küldött üzeneteket is ellenőrizheti. Ezeket az üzeneteket a Visual Studio Code Azure IoT Hub bővítményével tekintheti meg. További információ: Hasznos eszköz az Azure IoT-vel való fejlesztés során.

Tárolók újraindítása

Miután kivizsgálta a naplókat és az üzeneteket, megpróbálhatja újraindítani a tárolókat.

Az IoT Edge-eszközön a következő parancsokkal indítsa újra a modulokat:

iotedge restart <container name>

Indítsa újra az IoT Edge futtatókörnyezeti tárolókat:

iotedge restart edgeAgent && iotedge restart edgeHub

A modulokat távolról is újraindíthatja az Azure Portalról. További információ: IoT Edge-eszközök monitorozása és hibaelhárítása az Azure Portalról.

Tűzfal- és portkonfigurációs szabályok ellenőrzése

Az Azure IoT Edge lehetővé teszi a helyszíni kiszolgáló és az Azure-felhő közötti kommunikációt támogatott IoT Hub-protokollok használatával. További információ: kommunikációs protokoll kiválasztása. A fokozott biztonság érdekében az Azure IoT Edge és az Azure IoT Hub közötti kommunikációs csatornák mindig kimenőre vannak konfigurálva. Ez a konfiguráció a szolgáltatások által támogatott kommunikációs mintán alapul, amely minimálisra csökkenti a rosszindulatú entitások támadási felületét. Bejövő kommunikációra csak olyan helyzetekben van szükség, ahol az Azure IoT Hubnak üzeneteket kell leküldnie az Azure IoT Edge-eszközre. A felhőalapú üzenetek biztonságos TLS-csatornákkal védettek, és X.509-tanúsítványokkal és TPM-eszközmodulokkal tovább védhetők. Az Azure IoT Edge Security Manager szabályozza a kommunikáció létrehozásának módját, lásd: IoT Edge Security Manager.

Bár az IoT Edge továbbfejlesztett konfigurációt biztosít az Azure IoT Edge-futtatókörnyezet és az üzembe helyezett modulok biztonságossá tételéhez, ez továbbra is az alapul szolgáló gép- és hálózati konfigurációtól függ. Ezért elengedhetetlen annak biztosítása, hogy megfelelő hálózati és tűzfalszabályok legyenek beállítva a felhőbeli kommunikáció biztonságos peremhálózata érdekében. Az alábbi táblázat útmutatóként használható az Azure IoT Edge futtatókörnyezetet futtató mögöttes kiszolgálók konfigurációs tűzfalszabályai esetében:

Protokoll Kikötő Bejövő Kimenő Útmutató
MQTT 8883 LETILTVA (alapértelmezett) LETILTVA (alapértelmezett)
  • Konfigurálja a kimenő (kimenő) elemet úgy, hogy nyitott legyen, ha az MQTT protokollt használja kommunikációs protokollként.
  • Az MQTT 1883-at az IoT Edge nem támogatja.
  • A bejövő (bejövő) kapcsolatokat le kell tiltani.
AMQP 5671 LETILTVA (alapértelmezett) MEGNYITÁS (alapértelmezett)
  • Alapértelmezett kommunikációs protokoll az IoT Edge-hez.
  • Ha az Azure IoT Edge nincs más támogatott protokollokhoz konfigurálva, vagy az AMQP a kívánt kommunikációs protokoll, akkor a Megnyitás beállításnak kell konfigurálnia.
  • Az 5672-es AMQP-t az IoT Edge nem támogatja.
  • Tiltsa le ezt a portot, ha az Azure IoT Edge egy másik támogatott IoT Hub protokollt használ.
  • A bejövő (bejövő) kapcsolatokat le kell tiltani.
HTTPS 443 LETILTVA (alapértelmezett) MEGNYITÁS (alapértelmezett)
  • Konfigurálja a kimenő (kimenő) 443-on való megnyitást az IoT Edge kiépítéséhez. Ez a konfiguráció manuális szkriptek vagy az Azure IoT Device Provisioning Service (DPS) használatakor szükséges.
  • A bejövő (bejövő) kapcsolatnak csak bizonyos esetekben kell nyitva lennie:
    • Ha olyan transzparens átjáróval rendelkezik, amely lefelé irányuló eszközökkel rendelkezik, amelyek metóduskéréseket küldhetnek. Ebben az esetben a 443-as portnak nem kell nyitva lennie a külső hálózatok számára az IoTHubhoz való csatlakozáshoz vagy az IoTHub-szolgáltatások Azure IoT Edge-beli biztosításához. Így a bejövő szabály csak a belső hálózatról származó bejövő (bejövő) megnyitásra korlátozható.
    • Ügyfélről eszközre (C2D) vonatkozó forgatókönyvek esetén.
  • A HTTP 80-at az IoT Edge nem támogatja.
  • Ha a nem HTTP protokollok (például AMQP vagy MQTT) nem konfigurálhatók a vállalatban; az üzenetek websocketeken keresztül küldhetők. Ebben az esetben a 443-as port használható a WebSocket kommunikációjához.

Utolsó megoldás: az összes tároló leállítása és újbóli létrehozása

Előfordulhat, hogy egy rendszer jelentős speciális módosítást igényel a meglévő hálózati vagy operációs rendszer korlátainak használatához. Egy rendszer például eltérő adatlemez-csatlakoztatási és proxybeállításokat igényelhet. Ha az összes korábbi lépést kipróbálta, és továbbra is tárolóhibákat kap, előfordulhat, hogy a Docker-rendszer gyorsítótárazza vagy megőrzi a hálózati beállításokat a legújabb újrakonfiguráláskor. Ebben az esetben az utolsó lehetőség az, hogy az alapoktól kezdve tiszta kezdést használjon docker prune .

Az alábbi parancs leállítja az IoT Edge-rendszert (és így az összes tárolót) az "összes" és a "kötet" beállítással az összes tároló és kötet eltávolításához docker prune . Tekintse át a parancsokkal kapcsolatos problémákra vonatkozó figyelmeztetést, és erősítse meg, y ha készen áll.

sudo iotedge system stop
docker system prune --all --volumes
WARNING! This will remove:
  - all stopped containers
  - all networks not used by at least one container
  - all volumes not used by at least one container
  - all images without at least one container associated to them
  - all build cache

Are you sure you want to continue? [y/N]

Indítsa újra a rendszert. A biztonság érdekében alkalmazza az esetlegesen fennmaradó konfigurációt, és indítsa el a rendszert egy paranccsal.

sudo iotedge config apply

Várjon néhány percet, és ellenőrizze újra.

sudo iotedge list

Következő lépések

Úgy gondolja, hogy hibát talált az IoT Edge platformon? Küldjön be egy problémát , hogy tovább fejlődhessünk.

Ha további kérdései vannak, hozzon létre egy támogatási kérést a segítségért.