Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A következőkre vonatkozik:
IoT Edge 1.5
Fontos
Az IoT Edge 1.5 LTS a támogatott kiadás. 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ó lemezképe mcr.microsoft.com/azureiotedge-diagnostics:latesta Microsoft Artifact Registry (MAR) segítségével érhető el. Ha az interneten való közvetlen hozzáférés nélkül kell ellenőrzést futtatnia egy eszközön, 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 futtatásával kapcsolatos minden diagnosztikai ellenőrzéssel kapcsolatos információkért, beleértve a hiba vagy figyelmeztetés esetén teendők elvégzését, tekintse meg a beépített hibaelhárítási funkciót.
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
Az support-bundle parancs kimenete tartalmazhat gazdagépneveket, eszközneveket, modulneveket, valamint a modulok által naplózott információkat. Vegye figyelembe ezt a beillesztést, ha a kimenetet nyilvános fórumon osztja meg.
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, a 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ére vonatkozó utasításokat az IoT Edge frissítése című témakörben találja.
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 statusTekintse meg az IoT Edge rendszerszolgáltatások naplóit:
sudo iotedge system logs -- -fEngedé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 restartA 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. További információ: IoT Edge-eszközök 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 erővel eltávolítja az edgeHub-tárolót, miközben kézbesítetlen üzenetek hátraléka van rajta, és nincs konfigurálva gazdagéptároló, akkor a kézbesítetlen üzenetek elvesznek.
docker rm --force <container name>
A naplók folyamatos karbantartásával és éles forgatókönyvekkel kapcsolatos további információkért lásd: Alapértelmezett naplózási illesztőprogram beállítása.
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
- hiba
- 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 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ó: Eszközkommuniká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ással támogatott kommunikáció mintájá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. További információ: Azure 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 (Advanced Message Queuing Protocol) | 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.