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


Ikermodulok monitorozá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.

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 $edgeHubaz 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 az desired 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 az desired 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:

  1. Hozza létre a ModuleClient egy példányát a CreateFromEnvironmentAysnc metódussal.

  2. Szerezze be a modul ikerpéldányának tulajdonságait a GetTwinAsync metódussal.

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

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

  1. Jelentkezzen be az Azure Portalra , és lépjen az IoT Hubra.

  2. Válassza az Eszközök lehetőséget az Eszközfelügyelet menüben.

  3. Válassza ki az IoT Edge-eszköz eszközazonosítóját a figyelni kívánt modulokkal.

  4. Válassza ki a modul nevét a Modulok lapon, majd a felső menüsávon válassza a Module Identity Twin elemet.

    Képernyőkép arról, hogyan választhat ki egy ikermodult az Azure Portalon.

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:

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

  2. Az Explorerben bontsa ki az Azure IoT Hubot, majd bontsa ki az eszközt a figyelni kívánt modullal.

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

    Képernyőkép egy ikermodul szerkesztéséről 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.

Képernyőkép egy modul ikerpéldányának frissítéséről a Visual Studio Code-ban.

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>

Vagy:

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.