IoT Edge-eszköz hibaelhárítása
A következőkre vonatkozik: IoT Edge 1.5 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:latest
a 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 edgeHub
a . 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:
Hibakeresési szintű naplók engedélyezése.
sudo iotedge system set-log-level debug sudo iotedge system restart
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:
Az IoT Edge-eszközön futtassa a következő parancsot a naplók megtekintéséhez:
iotedge logs <container name>
Az Azure Portalon használja a beépített hibaelhárítási eszközt. IoT Edge-eszközök monitorozása és hibaelhárítása az Azure Portalról
A közvetlen UploadModuleLogs metódussal feltöltheti egy modul naplóit az Azure Blob Storage-ba.
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) |
|
AMQP | 5671 | LETILTVA (alapértelmezett) | MEGNYITÁS (alapértelmezett) |
|
HTTPS | 443 | LETILTVA (alapértelmezett) | MEGNYITÁS (alapértelmezett) |
|
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.