Naplók lekérése IoT Edge-beli üzemelő példányokból
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 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.
Ajánlott naplózási formátum
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"
}
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 , Failed 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 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"
}
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 , Failed 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 '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
}
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övetkező lépések
Az IoT Edge-ügynök és az IoT Edge Hub-modul ikerpéldányainak tulajdonságai