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


Naplók lekérése IoT Edge-beli üzemelő példányokból

A következőkre vonatkozik:IoT Edge 1.5 pipa 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 IoT Edge-ügynökmodulban található közvetlen módszerekkel lekérheti a naplókat az IoT Edge-környezetekből anélkül, hogy fizikai vagy SSH-hozzáférésre van szüksége az eszközhöz. A közvetlen metódusok implementálva vannak az eszközön, majd meghívhatók a felhőből. Az IoT Edge-ügynök közvetlen metódusokat tartalmaz, amelyekkel távolról monitorozhatja és kezelheti az IoT Edge-eszközöket. A cikkben tárgyalt közvetlen módszerek általában az 1.0.10-es kiadással érhetők el.

A közvetlen metódusokról, azok használatáról és a saját modulokban való implementálásukról további információt az IoT Hub közvetlen metódusainak ismertetése és meghívása című témakörben talál.

Ezeknek a közvetlen metódusoknak a neve megkülönbözteti a kis- és nagybetűket.

Bár nem kötelező, a funkcióval való legjobb kompatibilitás érdekében az ajánlott naplózási formátum a következő:

<{Log Level}> {Timestamp} {Message Text}

{Timestamp} a következő táblázatot kell formázni yyyy-MM-dd HH:mm:ss.fff zzz, amely {Log Level} a súlyossági szinteket a Syslog szabvány súlyossági kódjából nyeri.

Érték Súlyosság
0 Sürgősségi
0 Riasztás
2 Kritikus
3 Hiba
4 Figyelmeztetés
5 Értesítés
6 Tájékoztató
7 Hibakeresés

Az IoT Edge Logger osztálya canonical implementációként szolgál.

Modulnaplók lekérése

Az IoT Edge-modul naplóinak lekéréséhez használja a GetModuleLogs közvetlen metódust.

Tipp.

A lekért naplók tartományának korlátozásához használja a since szűrési until és szűrési beállításokat. Ha ezt a közvetlen metódust korlátok nélkül hívja meg, az összes olyan naplót lekéri, amely nagy, időigényes vagy költséges lehet.

Az IoT Edge hibaelhárítási oldala az Azure Portalon egyszerűsített felületet biztosít a modulnaplók megtekintéséhez. További információ: IoT Edge-eszközök monitorozása és hibaelhárítása az Azure Portalról.

Ez a metódus a következő sémával fogadja el a JSON hasznos adatait:

    {
       "schemaVersion": "1.0",
       "items": [
          {
             "id": "regex string",
             "filter": {
                "tail": "int",
                "since": "string",
                "until": "string",
                "loglevel": "int",
                "regex": "regex string"
             }
          }
       ],
       "encoding": "gzip/none",
       "contentType": "json/text" 
    }
Név Típus Leírás
schemaVersion húr Beállítás: 1.0
elemek JSON-tömb Egy tömb, amelybe be van id ékelve és filter be van ékelve.
id húr Egy reguláris kifejezés, amely megadja a modul nevét. Több modult is megfeleltethet egy peremeszközön. A .NET reguláris kifejezések formátuma várható. Ha több olyan elem is van, amelynek azonosítója megegyezik ugyanahhoz a modulhoz, a rendszer csak az első egyező azonosító szűrőbeállításait alkalmazza a modulra.
szűrő JSON-szakasz Naplószűrők azokra a modulokra, amelyek megfelelnek a id hagyományos kifejezésnek a rekordban.
farok egész szám A legutóbbitól kezdődően beolvasandó naplósorok száma a múltban. SZABADON VÁLASZTHATÓ.
óta húr A naplókat ez óta csak rfc3339 időbélyegként, UNIX-időbélyegként vagy időtartamként (nap (d) óra (h) perc (m)) adja vissza. Egy nap, 12 óra és 30 perc időtartam például 1 nap 12 óra 30 perc vagy 1d 12 óra 30 perc lehet. Ha mindkettő tail meg since van adva, akkor a rendszer először az érték használatával kéri le a since naplókat. Ezután a rendszer alkalmazza az tail értéket az eredményre, és visszaadja a végeredményt. SZABADON VÁLASZTHATÓ.
amíg húr Csak a megadott idő előtti naplókat adja vissza rfc3339 időbélyegként, UNIX időbélyegként vagy időtartamként (nap (d) óra (h) perc (m)). Egy 90 perces időtartam például 90 perc vagy 90 m lehet. Ha mindkettő tail meg since van adva, akkor a rendszer először az érték használatával kéri le a since naplókat. Ezután a rendszer alkalmazza az tail értéket az eredményre, és visszaadja a végeredményt. SZABADON VÁLASZTHATÓ.
loglevel egész szám A megadott naplószinttel egyenlő naplósorok szűrése. A naplósoroknak az ajánlott naplózási formátumot kell követnie, és a Syslog súlyossági szint szabványát kell használniuk. Ha több naplószintű súlyossági érték alapján kell szűrnie, akkor a regex egyezésre kell támaszkodnia, feltéve, hogy a modul egységes formátumot követ a különböző súlyossági szintek naplózásakor. SZABADON VÁLASZTHATÓ.
regex húr Szűrje a naplósorokat, amelyek tartalma megegyezik a megadott reguláris kifejezéssel .NET Reguláris kifejezések formátum használatával. SZABADON VÁLASZTHATÓ.
kódolás húr Vagy gzip vagy none. Az alapértelmezett szint a none.
contentType húr Vagy json vagy text. Az alapértelmezett szint a text.

Feljegyzés

Ha a naplók tartalma meghaladja a közvetlen metódusok válaszméretkorlátját, amely jelenleg 128 KB, a válasz hibát ad vissza.

A naplók sikeres lekérése "állapotot" ad vissza : 200 , majd a modulból lekért naplókat tartalmazó hasznos adat, amelyet a kérésben megadott beállítások szűrnek.

Példa:

az iot hub invoke-module-method --method-name 'GetModuleLogs' -n <hub name> -d <device id> -m '$edgeAgent' --method-payload \
'
    {
       "schemaVersion": "1.0",
       "items": [
          {
             "id": "edgeAgent",
             "filter": {
                "tail": 10
             }
          }
       ],
       "encoding": "none",
       "contentType": "text"
    }
'

Az Azure Portalon hívja meg a metódust a metódus nevével GetModuleLogs és a következő JSON hasznos adatokkal:

    {
       "schemaVersion": "1.0",
       "items": [
          {
             "id": "edgeAgent",
             "filter": {
                "tail": 10
             }
          }
       ],
       "encoding": "none",
       "contentType": "text"
    }

Képernyőkép a GetModuleLogs közvetlen metódus meghívásáról az Azure Portalon.

A parancssori felület kimenetét Linux-segédprogramok( például gzip) is futtathatja a tömörített válasz feldolgozásához. Példa:

az iot hub invoke-module-method \
  --method-name 'GetModuleLogs' \
  -n <hub name> \
  -d <device id> \
  -m '$edgeAgent' \
  --method-payload '{"contentType": "text","schemaVersion": "1.0","encoding": "gzip","items": [{"id": "edgeHub","filter": {"since": "2d","tail": 1000}}],}' \
  -o tsv --query 'payload[0].payloadBytes' \
  | base64 --decode \
  | gzip -d

Modulnaplók feltöltése

A közvetlen UploadModuleLogs metódussal elküldheti a kért naplókat egy adott Azure Blob Storage-tárolóba.

Feljegyzés

A lekért naplók tartományának korlátozásához használja a since szűrési until és szűrési beállításokat. Ha ezt a közvetlen metódust korlátok nélkül hívja meg, az összes olyan naplót lekéri, amely nagy, időigényes vagy költséges lehet.

Ha egy átjáróeszköz mögötti eszközről szeretne naplókat feltölteni, a felső rétegbeli eszközön konfigurálnia kell az API-proxy- és blobtároló modulokat . Ezek a modulok átirányítják a naplókat az alsó rétegbeli eszközről az átjáróeszközön keresztül a felhőbeli tárolóba.

Ez a metódus a GetModuleLogshoz hasonló JSON hasznos adatokat fogad el a "sasUrl" kulcs hozzáadásával:

    {
       "schemaVersion": "1.0",
       "sasUrl": "Full path to SAS URL",
       "items": [
          {
             "id": "regex string",
             "filter": {
                "tail": "int",
                "since": "string",
                "until": "string",
                "loglevel": "int",
                "regex": "regex string"
             }
          }
       ],
       "encoding": "gzip/none",
       "contentType": "json/text" 
    }
Név Típus Leírás
sasURL sztring (URI) Megosztott hozzáférésű jogosultságkód URL-címe az Azure Blob Storage-tároló írási hozzáférésével.

A naplók feltöltésére irányuló sikeres kérés "állapotot" ad vissza: 200 , majd egy hasznos adat a következő sémával:

    {
        "status": "string",
        "message": "string",
        "correlationId": "GUID"
    }
Név Típus Leírás
status húr Az egyik NotStarted, Running, Completed, Failedvagy Unknown.
üzenet húr Hibaüzenet, ellenkező esetben üres sztring.
correlationId húr A feltöltési kérelem állapotának lekérdezéséhez tartozó azonosító.

Példa:

Az alábbi meghívás az összes modulból feltölti az utolsó 100 naplósort tömörített JSON formátumban:

az iot hub invoke-module-method --method-name UploadModuleLogs -n <hub name> -d <device id> -m '$edgeAgent' --method-payload \
'
    {
        "schemaVersion": "1.0",
        "sasUrl": "<sasUrl>",
        "items": [
            {
                "id": ".*",
                "filter": {
                    "tail": 100
                }
            }
        ],
        "encoding": "gzip",
        "contentType": "json"
    }
'

Az alábbi meghívás az edgeAgent és az edgeHub utolsó 100 naplósorát tölti fel a tempSensor modul utolsó 1000 naplósorával tömörítetlen szöveges formátumban:

az iot hub invoke-module-method --method-name UploadModuleLogs -n <hub name> -d <device id> -m '$edgeAgent' --method-payload \
'
    {
        "schemaVersion": "1.0",
        "sasUrl": "<sasUrl>",
        "items": [
            {
                "id": "edge",
                "filter": {
                    "tail": 100
                }
            },
            {
                "id": "tempSensor",
                "filter": {
                    "tail": 1000
                }
            }
        ],
        "encoding": "none",
        "contentType": "text"
    }
'

Az Azure Portalon hívja meg a metódust a metódus nevével UploadModuleLogs és a következő JSON hasznos adatokkal, miután az adatokkal feltölti a sasURL-t:

    {
       "schemaVersion": "1.0",
       "sasUrl": "<sasUrl>",
       "items": [
          {
             "id": "edgeAgent",
             "filter": {
                "tail": 10
             }
          }
       ],
       "encoding": "none",
       "contentType": "text"
    }

Képernyőkép az UploadModuleLogs közvetlen metódus meghívásáról az Azure Portalon.

Támogatási csomag diagnosztikáinak feltöltése

Az UploadSupportBundle közvetlen metódussal csomagolhatja és feltöltheti az IoT Edge-modulnaplók zip-fájlját egy elérhető Azure Blob Storage-tárolóba. Ez a közvetlen metódus futtatja a parancsot az iotedge support-bundle IoT Edge-eszközön a naplók lekéréséhez.

Feljegyzés

Ha egy átjáróeszköz mögötti eszközről szeretne naplókat feltölteni, a felső rétegbeli eszközön konfigurálnia kell az API-proxy- és blobtároló modulokat . Ezek a modulok átirányítják a naplókat az alsó rétegbeli eszközről az átjáróeszközön keresztül a felhőbeli tárolóba.

Ez a metódus a következő sémával fogadja el a JSON hasznos adatait:

    {
        "schemaVersion": "1.0",
        "sasUrl": "Full path to SAS url",
        "since": "2d",
        "until": "1d",
        "edgeRuntimeOnly": false
    }
Név Típus Leírás
schemaVersion húr Beállítás: 1.0
sasURL sztring (URI) Megosztott hozzáférésű jogosultságkód URL-címe írási hozzáféréssel az Azure Blob Storage-tárolóhoz
óta húr A naplókat ez óta csak rfc3339 időbélyegként, UNIX-időbélyegként vagy időtartamként (nap (d) óra (h) perc (m)) adja vissza. Egy nap, 12 óra és 30 perc időtartam például 1 nap 12 óra 30 perc vagy 1d 12 óra 30 perc lehet. SZABADON VÁLASZTHATÓ.
amíg húr Csak a megadott idő előtti naplókat adja vissza rfc3339 időbélyegként, UNIX időbélyegként vagy időtartamként (nap (d) óra (h) perc (m)). Egy 90 perces időtartam például 90 perc vagy 90 m lehet. SZABADON VÁLASZTHATÓ.
edgeRuntimeOnly Logikai Ha igaz, csak az Edge Agent, az Edge Hub és az Edge biztonsági démon naplóit adja vissza. Alapértelmezett érték: false (hamis). SZABADON VÁLASZTHATÓ.

Fontos

Az IoT Edge támogatási csomagja személyazonosításra alkalmas adatokat tartalmazhat.

A naplók feltöltésére irányuló sikeres kérelem "állapotot" ad vissza: 200 , amelyet egy hasznos adat követ ugyanazzal a sémával, mint az UploadModuleLogs válasz:

    {
        "status": "string",
        "message": "string",
        "correlationId": "GUID"
    }
Név Típus Leírás
status húr Az egyik NotStarted, Running, Completed, Failedvagy Unknown.
üzenet húr Hibaüzenet, ellenkező esetben üres sztring.
correlationId húr A feltöltési kérelem állapotának lekérdezéséhez tartozó azonosító.

Példa:

az iot hub invoke-module-method --method-name 'UploadSupportBundle' -n <hub name> -d <device id> -m '$edgeAgent' --method-payload \
'
    {
        "schemaVersion": "1.0",
        "sasUrl": "Full path to SAS url",
        "since": "2d",
        "until": "1d",
        "edgeRuntimeOnly": false
    }
'

Az Azure Portalon hívja meg a metódust a metódus nevével UploadSupportBundle és a következő JSON hasznos adatokkal, miután az adatokkal feltölti a sasURL-t:

    {
        "schemaVersion": "1.0",
        "sasUrl": "Full path to SAS url",
        "since": "2d",
        "until": "1d",
        "edgeRuntimeOnly": false
    }

Képernyőkép az UploadSupportBundle közvetlen metódus meghívásáról az Azure Portalon.

Feltöltési kérelem állapotának lekérése

A GetTaskStatus közvetlen metódus használatával lekérdezheti a feltöltési naplókra vonatkozó kérések állapotát. A GetTaskStatus-kérelem hasznos adatai a correlationId feltöltési naplók kérését használják a tevékenység állapotának lekéréséhez. A correlationId rendszer az UploadModuleLogs közvetlen metódushívásra válaszul adja vissza.

Ez a metódus a következő sémával fogadja el a JSON hasznos adatait:

    {
      "schemaVersion": "1.0",
      "correlationId": "<GUID>"
    }

A naplók feltöltésére irányuló sikeres kérelem "állapotot" ad vissza: 200 , amelyet egy hasznos adat követ ugyanazzal a sémával, mint az UploadModuleLogs válasz:

    {
        "status": "string",
        "message": "string",
        "correlationId": "GUID"
    }
Név Típus Leírás
status húr Az egyik NotStarted, Running, Completed, Failed"Megszakítva" vagy Unknown.
üzenet húr Hibaüzenet, ellenkező esetben üres sztring.
correlationId húr A feltöltési kérelem állapotának lekérdezéséhez tartozó azonosító.

Példa:

az iot hub invoke-module-method --method-name 'GetTaskStatus' -n <hub name> -d <device id> -m '$edgeAgent' --method-payload \
'
    {
      "schemaVersion": "1.0",
      "correlationId": "<GUID>"
    }
'

Az Azure Portalon hívja meg a metódust a metódus nevével GetTaskStatus és a következő JSON hasznos adatokkal, miután feltölti a GUID-t az adataival:

    {
      "schemaVersion": "1.0",
      "correlationId": "<GUID>"
    }

Képernyőkép a GetTaskStatus közvetlen metódus meghívásáról az Azure Portalon.

Következő lépések

Az IoT Edge-ügynök és az IoT Edge Hub-modul ikerpéldányainak tulajdonságai