Ikermodulok monitorozása
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.
Az Azure IoT Hub moduli ikerpéldányai lehetővé teszik az IoT Edge-környezetek kapcsolatának és állapotának monitorozását. A modulikrek hasznos információkat tárolnak az IoT Hubon a futó modulok teljesítményéről. Az IoT Edge-ügynök és az IoT Edge-központ futtatókörnyezeti moduljai mindegyike fenntartja a modul ikerpéldányait, $edgeAgent
illetve $edgeHub
az alábbiakat:
-
$edgeAgent
az IoT Edge-ügynökkel és az IoT Edge hub futtatókörnyezeti moduljaival, valamint az egyéni modulokkal kapcsolatos állapot- és kapcsolatadatokat tartalmazza. Az IoT Edge-ügynök feladata a modulok üzembe helyezése, monitorozása és a kapcsolat állapotának jelentése az Azure IoT Hubon. -
$edgeHub
adatokat tartalmaz az eszközön futó IoT Edge-központ és az Azure IoT Hub közötti kommunikációról. Ebbe beletartozik az alsóbb rétegbeli eszközökről érkező bejövő üzenetek feldolgozása is. Az IoT Edge Hub felel az Azure IoT Hub és az IoT Edge-eszközök és -modulok közötti kommunikáció feldolgozásáért.
Az adatok metaadatokra, címkékre, valamint a modul ikerpéldányainak JSON-struktúrájában lévő kívánt és jelentett tulajdonságkészletekre vannak rendezve. A deployment.json fájlban megadott kívánt tulajdonságokat a rendszer a modul ikerpéldányaiba másolja. Az IoT Edge-ügynök és az IoT Edge hub mindegyike frissíti a moduljaik jelentett tulajdonságait.
Hasonlóképpen, a deployment.json fájlban lévő egyéni modulokhoz megadott kívánt tulajdonságok a modul ikermoduljára lesznek másolva, de a megoldás feladata a jelentett tulajdonságértékek megadása.
Ez a cikk azt ismerteti, hogyan tekintheti át a modul ikerpéldányait az Azure Portalon, az Azure CLI-ben és a Visual Studio Code-ban. Az eszközök központi telepítéseinek monitorozásáról az IoT Edge-környezetek monitorozása című témakörben olvashat. Az ikermodulok fogalmának áttekintéséért lásd az IoT Hub modul ikerpéldányainak megértését és használatát.
Tipp.
A futtatókörnyezeti modul jelentett tulajdonságai elavultak lehetnek, ha egy IoT Edge-eszköz leválasztódik az IoT Hubról. Pingelheti a modult $edgeAgent
annak megállapításához, hogy megszakadt-e a kapcsolat.
Futtatókörnyezeti modul ikerpéldányainak monitorozása
Az üzembe helyezési csatlakozási problémák elhárításához tekintse át az IoT Edge-ügynököt és az IoT Edge Hub futtatókörnyezeti modul ikerpéldányait, majd részletezse a többi modult.
IoT Edge-ügynök modul ikerpéldányának monitorozása
Az alábbi JSON a $edgeAgent
Visual Studio Code-ban található ikermodult mutatja be, és a legtöbb JSON-szakasz össze van csukva.
{
"deviceId": "Windows109",
"moduleId": "$edgeAgent",
"etag": "AAAAAAAAAAU=",
"deviceEtag": "NzgwNjA1MDUz",
"status": "enabled",
"statusUpdateTime": "0001-01-01T00:00:00Z",
"connectionState": "Disconnected",
"lastActivityTime": "0001-01-01T00:00:00Z",
"cloudToDeviceMessageCount": 0,
"authenticationType": "sas",
"x509Thumbprint": {
"primaryThumbprint": null,
"secondaryThumbprint": null
},
"version": 53,
"properties": {
"desired": { "···" },
"reported": {
"schemaVersion": "1.0",
"version": { "···" },
"lastDesiredStatus": { "···" },
"runtime": { "···" },
"systemModules": {
"edgeAgent": { "···" },
"edgeHub": { "···" }
},
"lastDesiredVersion": 5,
"modules": {
"SimulatedTemperatureSensor": { "···" }
},
"$metadata": { "···" },
"$version": 48
}
}
}
A JSON a következő szakaszokban írható le, felülről kezdve:
- Metaadatok – Kapcsolati adatokat tartalmaz. Érdekes, hogy az IoT Edge-ügynök kapcsolati állapota mindig leválasztott állapotban van:
"connectionState": "Disconnected"
. A kapcsolati állapot oka az eszközről a felhőbe irányuló (D2C) üzenetekre vonatkozik, és az IoT Edge-ügynök nem küld D2C-üzeneteket. - Tulajdonságok – Az alszakaszokat és
reported
azdesired
alszakaszokat tartalmazza. - Properties.desired – (összecsukva jelenik meg) Az operátor által a deployment.json fájlban megadott várt tulajdonságértékek.
- Properties.reported – Az IoT Edge-ügynök által jelentett legújabb tulajdonságértékek.
A szakaszok és properties.reported
a properties.desired
szakaszok is hasonló struktúrával rendelkeznek, és további metaadatokat tartalmaznak a séma-, verzió- és futásidejű információkhoz. Az egyéni modulok (például SimulatedTemperatureSensor
) és a systemModules
futtatókörnyezeti modulok szakasza $edgeAgent
is szerepel modules
benne$edgeHub
.
Ha összehasonlítja a jelentett tulajdonságértékeket a kívánt értékekkel, megállapíthatja az eltéréseket, és azonosíthatja azokat a leválasztásokat, amelyek segíthetnek a problémák elhárításában. Az összehasonlítások során ellenőrizze a $lastUpdated
vizsgált tulajdonságról a szakaszban szereplő jelentett értéket metadata
.
A hibaelhárításhoz az alábbi tulajdonságokat kell megvizsgálni:
exitcode – A nullától eltérő bármely érték azt jelzi, hogy a modul leállt egy hibával. A 137-ben vagy a 143-ban megadott hibakódokat azonban akkor használja a rendszer, ha egy modult szándékosan leállított állapotra állítottak be.
lastStartTimeUtc – Azt a DateTime-et jeleníti meg, amely szerint a tároló utoljára elindult. Ez az érték 0001-01-01T00:00:00Z, ha a tároló nem indult el.
lastExitTimeUtc – A tároló utolsó befejezési dátumidejét jeleníti meg. Ez az érték 0001-01-01T00:00:00Z, ha a tároló fut, és soha nem állt le.
runtimeStatus – A következő értékek egyike lehet:
Érték Leírás ismeretlen Alapértelmezett állapot az üzembe helyezés létrehozásához. visszakapcsolás A modul indítása ütemezett, de jelenleg nem fut. Ez az érték akkor hasznos, ha egy modul újraindulásakor állapotváltozáson megy keresztül. Ha egy sikertelen modul a kihűlési időszak alatt újraindul, a modul visszakapcsolási állapotban lesz. fut Azt jelzi, hogy a modul jelenleg fut. egészségtelen Azt jelzi, hogy az állapot-mintavétel ellenőrzése sikertelen vagy időtúllépést jelez. leállítva Azt jelzi, hogy a modul sikeresen kilépett (nulla kilépési kóddal). sikertelen Azt jelzi, hogy a modul hibakijárati kóddal (nem nulla) lépett ki. A modul az érvényben lévő újraindítási szabályzattól függően vissza tud váltani az állapotból a visszalépésre. Ez az állapot azt jelezheti, hogy a modul helyreállíthatatlan hibát észlelt. Hiba akkor fordul elő, ha a Microsoft Monitoring Agent (MMA) már nem tudja újraéleszteni a modult, és új üzembe helyezést igényel.
Részletekért tekintse meg az EdgeAgent jelentett tulajdonságait .
IoT Edge-központ ikermodul figyelése
Az alábbi JSON a $edgeHub
Visual Studio Code-ban található ikermodult mutatja be, és a legtöbb JSON-szakasz össze van csukva.
{
"deviceId": "Windows109",
"moduleId": "$edgeHub",
"etag": "AAAAAAAAAAU=",
"deviceEtag": "NzgwNjA1MDU2",
"status": "enabled",
"statusUpdateTime": "0001-01-01T00:00:00Z",
"connectionState": "Connected",
"lastActivityTime": "0001-01-01T00:00:00Z",
"cloudToDeviceMessageCount": 0,
"authenticationType": "sas",
"x509Thumbprint": {
"primaryThumbprint": null,
"secondaryThumbprint": null
},
"version": 102,
"properties": {
"desired": { "···" },
"reported": {
"schemaVersion": "1.0",
"version": { "···" },
"lastDesiredVersion": 5,
"lastDesiredStatus": { "···" },
"clients": {
"Windows109/SimulatedTemperatureSensor": {
"status": "Disconnected",
"lastConnectedTimeUtc": "2020-04-08T21:42:42.1743956Z",
"lastDisconnectedTimeUtc": "2020-04-09T07:02:42.1398325Z"
}
},
"$metadata": { "···" },
"$version": 97
}
}
}
A JSON a következő szakaszokban írható le, felülről kezdve:
Metaadatok – Kapcsolati adatokat tartalmaz.
Tulajdonságok – Az alszakaszokat és
reported
azdesired
alszakaszokat tartalmazza.Properties.desired – (összecsukva jelenik meg) Az operátor által a deployment.json fájlban megadott várt tulajdonságértékek.
Properties.reported – Az IoT Edge hub által jelentett legújabb tulajdonságértékek.
Ha problémákat tapasztal az alsóbb rétegbeli eszközökkel kapcsolatban, érdemes megvizsgálnia ezeket az adatokat.
Egyéni modul ikerpéldányainak monitorozása
Az egyéni modulok kapcsolatára vonatkozó információk az IoT Edge-ügynök ikermoduljában maradnak fenn. Az egyéni modul ikermodulját elsősorban a megoldás adatainak karbantartására használják. A deployment.json fájlban definiált kívánt tulajdonságok megjelennek a modul ikerpéldányában, és a modul szükség szerint frissítheti a jelentett tulajdonságértékeket.
Az előnyben részesített programozási nyelv használatával az Azure IoT Hub Eszköz SDK-kkal frissítheti a modul ikermoduljának jelentett tulajdonságértékeit a modul alkalmazáskódja alapján. Ehhez az alábbi eljárás az Azure SDK for .NET-et használja a SimulatedTemperatureSensor modul kódjával:
Hozza létre a ModuleClient egy példányát a CreateFromEnvironmentAsync metódussal.
Szerezze be a modul ikerpéldányának tulajdonságait a GetTwinAsync metódussal.
Hozzon létre egy figyelőt (visszahívást továbbítva) a kívánt tulajdonságok módosításainak a SetDesiredPropertyUpdateCallbackAsync metódussal való elfogásához.
A visszahívási metódusban frissítse a modul ikerpéldányában lévő jelentett tulajdonságokat az UpdateReportedPropertiesAsync metódussal, és adja át a beállítani kívánt tulajdonságértékek TwinCollection értékét.
A modul ikerpéldányainak elérése
Az Azure IoT Hubban, a Visual Studio Code-ban és az Azure CLI-ben áttekintheti az ikermodulok JSON-ját.
Monitorozás az Azure IoT Hubban
Az ikermodul JSON-jának megtekintése:
Jelentkezzen be az Azure Portalra , és lépjen az IoT Hubra.
Válassza az Eszközök lehetőséget az Eszközfelügyelet menüben.
Válassza ki az IoT Edge-eszköz eszközazonosítóját a figyelni kívánt modulokkal.
Válassza ki a modul nevét a Modulok lapon, majd a felső menüsávon válassza a Module Identity Twin elemet.
Ha a "Modulidentitás nem létezik ehhez a modulhoz" üzenet jelenik meg, ez a hiba azt jelzi, hogy az identitást eredetileg létrehozó háttérmegoldás már nem érhető el.
Ikermodulok monitorozása a Visual Studio Code-ban
Ikermodul áttekintése és szerkesztése:
Ha még nincs telepítve, telepítse az Azure IoT Edge és az Azure IoT Hub bővítményeket. A Visual Studio Code-bővítményhez készült Azure IoT Edge-eszközök karbantartási módban használhatók.
Az Explorerben bontsa ki az Azure IoT Hubot, majd bontsa ki az eszközt a figyelni kívánt modullal.
Kattintson a jobb gombbal a modulra, és válassza az Ikermodul szerkesztése lehetőséget. A modul ikerpéldányának egy ideiglenes fájlja letöltődik a számítógépre, és megjelenik a Visual Studio Code-ban.
Ha módosításokat hajt végre, válassza az Ikermodul frissítése lehetőséget a szerkesztőben a kód fölött, hogy mentse a módosításokat az IoT Hubra.
Modulikrek monitorozása az Azure CLI-ben
Annak megtekintéséhez, hogy az IoT Edge fut-e, az az iot hub invoke-module-metódusával pingelje az IoT Edge-ügynököt.
Az az iot hub module-twin struktúra a következő parancsokat biztosítja:
- az iot hub module-twin show – Egy modul ikerdefiníciójának megjelenítése.
- az iot hub module-twin update – Modul ikerdefiníciójának frissítése.
- az iot hub module-twin replace – Cserélje le a modul ikerdefinícióját egy cél JSON-ra.
Tipp.
Ha parancssori felületi parancsokkal szeretné megcélolni a futtatókörnyezeti modulokat, előfordulhat, hogy el kell menekülnie a $
modulazonosítóban szereplő karakter elől. Példa:
az iot hub module-twin show -m '$edgeAgent' -n <hub name> -d <device name>
Or:
az iot hub module-twin show -m \$edgeAgent -n <hub name> -d <device name>
Következő lépések
Megtudhatja, hogyan kommunikálhat az EdgeAgenttel beépített közvetlen módszerekkel.