Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Számos alkalmazás és szolgáltatás szöveges fájlokba naplózza az információkat a szokásos naplózási szolgáltatások, például a Windows eseménynapló, vagy a Syslog helyett. Ha ezeket az adatokat JSON formátumban tárolják, azOkat az Azure Monitor összegyűjtheti egy egyéni JSON-naplók adatforrással rendelkező adatgyűjtési szabályban (DCR).
A DCR létrehozásának részleteit az Adatok gyűjtése az Azure Monitor-ügynökkel című témakörben találja. Ez a cikk további részleteket tartalmaz a JSON-naplók típusával kapcsolatban.
Megjegyzés:
Ha közvetlenül szeretné használni a DCR-definíciót, vagy más módszerekkel, például ARM-sablonokkal szeretne üzembe helyezni, tekintse meg az Adatgyűjtési szabály (DCR) mintáit az Azure Monitorban.
Előfeltételek
Az Adatok gyűjtése virtuálisgép-ügyfélről az Azure Monitorral című témakörben felsorolt előfeltételek mellett szükség van egy egyéni táblára egy Log Analytics-munkaterületen az adatok fogadásához. A táblázat követelményeiről további információt a Log Analytics-munkaterület táblázatában talál.
Egyéni JSON-fájl adatforrásának konfigurálása
Hozza létre a DCR-t a virtuálisgép-ügyfél adatainak összegyűjtése az Azure Monitorral című témakörben szereplő eljárással. A DCR Adatgyűjtés és kézbesítés lapján válassza az Egyéni JSON-naplók lehetőséget az Adatforrás típusa legördülő listában.
Az egyéni JSON-naplók konfigurációjában elérhető beállításokat az alábbi táblázat ismerteti.
| Beállítás | Leírás |
|---|---|
| Fájlminta | Azonosítja a naplófájlok helyét és nevét a helyi lemezen. Használjon helyettesítő karaktert a különböző fájlnevekhez, például ha minden nap új fájl jön létre új névvel. Több fájlmintát is megadhat vesszővel elválasztva. A fájlnévben és az első szintű mappanévben csak helyettesítő karaktereket (*) használhat. Példák: - C:\Logs\MyLog.txt - C:\Logs\MyLog*.txt -C:\Logs\IIS*\*.logs - C:\App01\AppLog.txt, C:\App02\AppLog.txt - /var/mylog.log - /var/mylog*.log - /var/logs/*/* |
| Tábla neve | A Log Analytics-munkaterület céltáblájának neve. |
| Átalakítani |
Betöltés idejű átalakítás a rekordok szűréséhez vagy a céltáblába érkező adatok formázásához. Használja a source-t, hogy a bejövő adatokat változatlanul hagyja. Példa: Átalakítás . |
| JSON-séma | A JSON-naplófájlból gyűjtendő és a céltáblába küldött tulajdonságok. Az egyetlen kötelező tulajdonság az TimeGenerated. Ha ezt az értéket nem a JSON-fájl adja meg, a betöltési idő lesz használva. A Log Analytics-munkaterület táblájában leírt, nem kötelező egyéb oszlopok is belefoglalhatók, és automatikusan fel vannak töltve. Bármely más tulajdonság ugyanazzal a névvel tölti fel a táblázat oszlopait. Győződjön meg arról, hogy a táblázatoszlopokkal egyező tulajdonságok ugyanazt az adattípust használják, mint a megfelelő oszlop.A képen egy JSON-séma látható a JSON-fájlra vonatkozó mintafájlhoz, amely a JSON-fájlkövetelményekben és az ajánlott eljárásokban látható |
Célhelyek hozzáadása
Az egyéni JSON-naplók csak a létrehozott egyéni táblában tárolt Log Analytics-munkaterületre küldhetők. Adjon hozzá egy Azure Monitor-naplók típusú célhelyet , és válasszon ki egy Log Analytics-munkaterületet. Egyéni JSON-napló adatforráshoz csak egyetlen munkaterületet adhat hozzá a DCR-hez. Ha több célhelyre van szüksége, hozzon létre több DCR-t. Ne feledje azonban, hogy ez ismétlődő adatokat küld mindegyiknek, és további költségeket eredményez.
JSON-fájlkövetelmények és ajánlott eljárások
Az Azure Monitor-ügynök által gyűjtött fájlnak meg kell felelnie a következő követelményeknek:
- A fájlt az ügynökgép helyi meghajtóján kell tárolni a figyelt könyvtárban.
- Minden bejegyzésnek JSON-sornak (más néven JSONL-nek vagy NDJSON-nak) kell lennie, amely egyetlen JSON-sor, és vonalvégzéssel van elválasztva. A beágyazás és a JSON-törzs formátuma nem támogatott. Lásd az alábbi mintát.
- A fájlnak ASCII vagy UTF-8 kódolást kell használnia. Más formátumok, például az UTF-16 nem támogatottak.
- Az új rekordokat hozzá kell fűzni a fájl végéhez, és nem szabad felülírni a régi rekordokat. A felülírás adatvesztést okoz.
Az alábbiakban egy tipikus JSON-naplófájl mintáját láthatjuk, amelyet az Azure Monitor gyűjthet össze. Ide tartoznak a következő mezők: Time, Code, Severity,Module és Message.
{"Time":"2025-03-07 13:17:34","Code":1423,"Severity":"Error","Module":"Sales","Message":"Unable to connect to pricing service."}
{"Time":"2025-03-07 13:18:23","Code":1420,"Severity":"Information","Module":"Sales","Message":"Pricing service connection established."}
{"Time":"2025-03-07 15:45:13","Code":2011,"Severity":"Warning","Module":"Procurement","Message":"Module failed and was restarted."}
{"Time":"2025-03-07 15:53:31","Code":4100,"Severity":"Information","Module":"Data","Message":"Daily backup complete."}
Tartsa be az alábbi ajánlásokat, hogy ne tapasztaljon adatvesztéssel vagy teljesítménnyel kapcsolatos problémákat:
- Ne célozz meg több mint 10 könyvtárat naplófájlokkal. A túl sok könyvtár lekérdezése gyenge teljesítményhez vezet.
- A naplófájlok folyamatos törlése a figyelt címtárban. Számos naplófájl nyomon követése felgyorsíthatja az ügynök processzor- és memóriahasználatát. Várjon legalább 2 napot, hogy elegendő időt hagyjon az összes napló feldolgozására.
- Ne nevezze át a fájlvizsgálati mintának megfelelő fájlt egy másik névre, amely szintén megfelel a fájlvizsgálati mintának. Ez duplikált adatok betöltését okozza.
- Ne nevezze át vagy másolja a fájlvizsgálati mintának megfelelő nagyméretű naplófájlokat a figyelt könyvtárba. Ha kell, ne lépje túl a percenkénti 50 MB-ot.
Log Analytics-munkaterület táblázata
Az ügynök figyeli a helyi lemezen lévő olyan json-fájlokat, amelyek megfelelnek a megadott névmintának. A rendszer minden bejegyzést összegyűjt, amikor a naplóba ír, majd elemzi őket, mielőtt elküldené őket a Log Analytics-munkaterület megadott táblájába. Az adatokat fogadó Log Analytics-munkaterület egyéni táblájának léteznie kell a DCR létrehozása előtt.
A táblázat azon oszlopai, amelyek megfelelnek az elemezett JSON-adatok egyik mezőjének nevének, a naplóbejegyzés értékével lesznek feltöltve. Az alábbi táblázat a munkaterület táblájának szükséges és nem kötelező oszlopait ismerteti a JSON-adatokban azonosított oszlopok mellett.
| oszlop | Típus | Szükséges? | Leírás |
|---|---|---|---|
TimeGenerated |
datetime | Igen | Ez az oszlop a rekord létrehozásának idejét tartalmazza, és minden táblában kötelező. Ez az érték automatikusan fel lesz töltve a rekord Log Analytics-munkaterülethez való hozzáadásának időpontjával. Ezt az értéket felülbírálhatja egy átalakítás segítségével, hogy beállítsa a naplóbejegyzésből származó értéket TimeGenerated-ra. |
Computer |
karakterlánc | Nem | Ha a tábla tartalmazza ezt az oszlopot, a rendszer feltölti annak a számítógépnek a nevével, amelyről a naplóbejegyzést gyűjtötték. |
FilePath |
karakterlánc | Nem | Ha a tábla tartalmazza ezt az oszlopot, a rendszer feltölti annak a naplófájlnak az elérési útjával, amelyből a naplóbejegyzést gyűjtötték. |
Az alábbi példa egy olyan lekérdezést mutat be, amely a minta JSON-fájlhoz létrehozott táblából adja vissza az adatokat. Az adatokat egy mintákat tartalmazó JSON-sémával rendelkező DCR használatával gyűjtötték össze. Mivel a JSON-adatok nem tartalmaznak tulajdonságot TimeGenerated, a betöltési időt használja a rendszer. A Computer és FilePath oszlopok is automatikusan kitöltésre kerülnek.
Egyéni tábla létrehozása
Ha a céltábla még nem létezik, akkor a DCR létrehozása előtt létre kell hoznia. A táblázatot csak az alábbi PowerShell-szkripttel hozhatja létre. Más módszer nem működik. A következő PowerShell-szkripttel például létrehozhat egy egyéni táblát, amely a minta JSON-fájlból fogadja az adatokat. Ez a példa az opcionális oszlopokat is hozzáadja.
$tableParams = @'
{
"properties": {
"schema": {
"name": "{TableName}_CL",
"columns": [
{
"name": "TimeGenerated",
"type": "dateTime"
},
{
"name": "Computer",
"type": "string"
},
{
"name": "FilePath",
"type": "string"
},
{
"name": "Time",
"type": "dateTime"
},
{
"name": "Code",
"type": "int"
},
{
"name": "Severity",
"type": "string"
},
{
"name": "Module",
"type": "string"
},
{
"name": "Message",
"type": "string"
}
]
}
}
}
'@
Invoke-AzRestMethod -Path "/subscriptions/{subscription}/resourcegroups/{resourcegroup}/providers/microsoft.operationalinsights/workspaces/{WorkspaceName}/tables/{TableName}_CL?api-version=2021-12-01-preview" -Method PUT -payload $tableParams
Transzformáció
Az átalakítás esetleg módosítja a bejövő adatfolyamot rekordok szűrésére vagy a séma céltáblának megfelelő módosítására. Ha a bejövő stream sémája megegyezik a céltáblával, akkor használhatja az alapértelmezett átalakítást source. Ha nem, módosítsa az transformKql ARM-sablon szakaszát egy KQL-lekérdezéssel, amely a szükséges sémát adja vissza.
A példában például a naplóbejegyzés egy Time olyan mezővel rendelkezik, amely a naplóbejegyzés létrehozásának időpontját tartalmazza. Ahelyett, hogy ezt külön oszlopként tárolná a céltáblában, a következő átalakítással leképezheti a Time tulajdonság értékét TimeGenerated-re.
source | extend TimeGenerated = todatetime(Time) | project-away Time
Ez a következő napló lekérdezést eredményezné. Figyelje meg, hogy az Time oszlop üres, és ennek a tulajdonságnak az értékét használja a TimeGeneratedrendszer.
Hibaelhárítás
Ha nem gyűjt adatokat a várt JSON-naplóból, kövesse az alábbi lépéseket.
- Ellenőrizze, hogy az adatok a gyűjtött naplófájlba lesznek-e írva.
- Ellenőrizze, hogy a naplófájl neve és helye megegyezik-e a megadott fájlmintával.
- Ellenőrizze, hogy a DCR-ben lévő bejövő stream sémája megegyezik-e a naplófájlban lévő sémával.
- Ellenőrizze, hogy a céltábla sémája megegyezik-e a bejövő streammel, vagy hogy van-e olyan átalakítás, amely a bejövő streamet a megfelelő sémává alakítja.
- Tekintse meg a Művelet ellenőrzése című témakört annak ellenőrzéséhez, hogy az ügynök működik-e, és hogy az adatok érkeznek-e.