Share via


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 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 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 súlyossági szinteket a Syslog szabvány Súlyossági kódjából származtatott alábbi táblázat szerint kell formázni.yyyy-MM-dd HH:mm:ss.fff zzz{Log Level}

É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. VÁLASZTHATÓ.
Mivel 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. 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. 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. 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. 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
Mivel 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. 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. 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). 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