Megosztás:


Szövegfájl gyűjtése virtuális gépről az Azure Monitorral

A virtuális gépeken számos alkalmazás és szolgáltatás a szabványos naplózási szolgáltatások, például a Windows-eseménynapló vagy a Syslog helyett szöveges fájlokba naplózza az adatokat. A virtuális gépekről származó egyéni szöveges naplók összegyűjtése adatgyűjtési szabály (DCR) használatával, egyéni szövegnaplók adatforrásával gyűjthető.

A DCR létrehozásának részleteit az Adatok gyűjtése virtuálisgép-ügyfélről az Azure Monitorral című témakörben találja. Ez a cikk további részleteket tartalmaz az Egyéni szövegnaplók adatforrástípusról.

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. Vegye figyelembe, hogy az Aarch64 alma8 és a rocky8 nem támogatott.

Egyéni szöveges 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 szövegnaplók lehetőséget az Adatforrás típusa legördülő listában.

Képernyőkép a szövegfájl-gyűjtemény konfigurációjáról.

Az egyéni szövegnapló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 a fájlnév fölött használhat helyettesítő karaktereket.

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. Ennek a táblának már léteznie kell.
Rekordelválasztó A naplóbejegyzések közötti elválasztójelet jelzi. TimeStamp az egyetlen aktuálisan engedélyezett érték. Ez egy új rekord kezdetének azonosításához megadott timeFormat formátumban keres egy dátumot. Ha a megadott formátumban nem található dátum, akkor a rendszer a sor végét használja. További részletekért tekintse meg az Időformátumok című témakört.
TimeStamp formátum A naplófájlban használt időformátum az alábbi időformátumokban leírtak szerint.
Á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. A source használatával hagyja a bejövő adatokat változatlanul, és küldje az RawData oszlopba. Nézze meg a tagolt naplófájlokat, ahol az átalakítás egy példáját találja.

Célhelyek hozzáadása

Az egyéni szöveges naplók csak olyan Log Analytics-munkaterületre küldhetők, ahol a létrehozott egyéni táblában vannak tárolva. Adjon hozzá egy Azure Monitor-naplók típusú célhelyet , és válasszon ki egy Log Analytics-munkaterületet. Egyéni szövegnapló-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. Vegye figyelembe azonban, hogy ez duplikált adatokat küld mindegyiknek, ami további költségeket eredményez.

Képernyőkép az Azure Monitor-naplók célhelyének konfigurációjáról egy adatgyűjtési szabályban.

Időformátumok

Az alábbi táblázat a DCR beállításában timeFormat támogatott időformátumokat ismerteti. Ha a naplóbejegyzés tartalmaz egy megadott formátumú időpontot, az új naplóbejegyzés azonosítására szolgál. Ha a megadott formátumban nem található dátum, akkor a sor vége elválasztóként lesz használva. A beállítás használatáról további leírást a Többsoros naplófájlok című témakörben talál.

Időformátum példa
ISO 8601 1 2024-10-29T18:28:34Z
yyyy-MM-ddTHH:mm:ssk 2024-10-29T18:28:34Z
2024-10-29T18:28:34+01:11
YYYY-MM-DD HH:MM:SS 2024-10-29 18:28:34
M/D/YYYY HH:MM:SS AM/PM 2024. 10. 29. 06:28:34
Mon DD, YYYY HH:MM:SS 2024. október 29. 18:28:34
yyMMdd HH:mm:ss 241029 18:28:34
ddMMyy HH:mm:ss 291024 18:28:34
MMM d HH:mm:ss Október 29. 18:28:34
dd/MMM/yyyy:HH:mm:ss zzz 2024. október 14.:18:28:34 -00

1 ISO 8601 tizedes tört/alszekundum pontosságú időbélyeg nem támogatott.

Szövegfájlokkal kapcsolatos követelmények és ajánlott eljárások

Az Azure Monitor á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.
  • 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 fog okozni.

Az alábbiakban egy tipikus, az Azure Monitor által gyűjthető egyéni szövegfájlt láthat. Bár minden sor dátummal kezdődik, ez nem szükséges, mivel a sor vége az egyes bejegyzések azonosítására szolgál, ha nem található dátum.

2024-06-21 19:17:34,1423,Error,Sales,Unable to connect to pricing service.
2024-06-21 19:18:23,1420,Information,Sales,Pricing service connection established.
2024-06-21 21:45:13,2011,Warning,Procurement,Module failed and was restarted.
2024-06-21 23:53:31,4100,Information,Data,Nightly 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 két 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 eredményezi.
  • 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

A naplófájl minden bejegyzését a rendszer összegyűjti, amint létrejött, és egy Log Analytics-munkaterület megadott táblájába küldi. A Log Analytics-munkaterület azon egyéni táblájának, amely megkapja az adatokat, léteznie kell a DCR létrehozása előtt.

Az alábbi táblázat a munkaterület tábla kötelező és nem kötelező oszlopait ismerteti. A táblázat tartalmazhat más oszlopokat is, de csak akkor lesznek kitöltve, ha az adatokat a tagolt naplófájlokban leírt átalakítással elemzi.

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 azzal az időponttal, amikor a rekord bekerül a Log Analytics-munkaterületre. 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.
RawData karakterlánc Igen 1 A teljes naplóbejegyzés egyetlen oszlopban. Az átalakítást akkor használhatja, ha több oszlopra szeretné bontani ezeket az adatokat, mielőtt elküldené őket a táblába.
Computer karakterlánc Nem Ha a táblázat 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.

1 A táblának nem kell oszlopot RawData tartalmaznia, ha átalakítással több oszlopban elemzi az adatokat.

Az alapértelmezett beállítások használatával gyűjtött adatok a fenti minta naplófájlból a következőképpen jelennek meg, amikor napló lekérdezéssel kérik le.

Képernyőkép az alapértelmezett fájlgyűjtemény eredményeit visszaadó napló lekérdezésről.

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. Lásd egyéni táblázat létrehozása, hogy megtudja a tábla létrehozásának különböző módszereit.

Az alábbi PowerShell-szkripttel például létrehozhat egy egyéni táblázatot, amely egy egyéni szövegnaplóbó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": "RawData",
                        "type": "string"
                    }
              ]
        }
    }
}
'@

Invoke-AzRestMethod -Path "/subscriptions/{subscription}/resourcegroups/{resourcegroup}/providers/microsoft.operationalinsights/workspaces/{workspace}/tables/MyTable_CL?api-version=2021-12-01-preview" -Method PUT -payload $tableParams

Többsoros naplófájlok

Egyes naplófájlok több sorra kiterjedő bejegyzéseket tartalmazhatnak. Ha minden naplóbejegyzés dátummal kezdődik, akkor ezt a dátumot használhatja elválasztóként az egyes naplóbejegyzések definiálásához. Ebben az esetben a további sorok össze lesznek illesztve az RawData oszlopban.

Az előző példában szereplő szövegfájl például a következőképpen formázható:

2024-06-21 19:17:34,1423,Error,Sales,
Unable to connect to pricing service.
2024-06-21 19:18:23,1420,Information,Sales,
Pricing service connection established.
2024-06-21 21:45:13,2011,Warning,Procurement,
Module failed and was restarted.
2024-06-21 23:53:31,4100,Information,Data,
Nightly backup complete.

Ha az időbélyeg formátuma YYYY-MM-DD HH:MM:SS a DCR-ben van használva, akkor az adatok ugyanúgy lesznek összegyűjtve, mint az előző példában. A további sorokat az RawData oszlop tartalmazza. Ha olyan időbélyeg-formátumot használna, amely nem felel meg a naplóbejegyzés dátumának, akkor minden bejegyzést két külön rekordként gyűjtenek össze.

Tagolt naplófájlok

Sok szöveges naplófájl olyan bejegyzéseket tartalmaz, amelyek oszlopait egy karakter, például egy vessző tagolja. Ahelyett, hogy a teljes bejegyzést az RawData oszlopba küldené, külön oszlopokba elemezheti az adatokat, hogy mindegyik fel legyen töltve a céltáblában. Az elemzés végrehajtásához használjon átalakítást a felosztott függvénnyel .

A fent látható mintaszövegfájl vesszővel tagolt, és a mezők a következőképpen írhatók le: Time, Code, , SeverityModuleés Message. Ha ezeket az adatokat külön oszlopokba szeretné elemezni, adja hozzá az egyes oszlopokat a céltáblához, és adja hozzá a következő átalakítást a DCR-hez.

Fontos

Mielőtt hozzáadná ezt az átalakítást a DCR-hez, ezeket az oszlopokat hozzá kell adnia a céltáblához. A fenti PowerShell-szkriptet úgy módosíthatja, hogy a táblázat létrehozásakor a további oszlopokat is tartalmazza. Vagy használja az Azure Portalt az Egyéni oszlop hozzáadása vagy törlése című cikkben leírtak szerint az oszlopok meglévő táblához való hozzáadásához.

Az átalakítási lekérdezés figyelemre méltó részletei a következők:

  • A lekérdezés olyan tulajdonságokat ad ki, amelyek mindegyike megegyezik a céltáblában szereplő oszlopnévvel.
  • Ez a példa átnevezi a Time tulajdonságot a naplófájlban, így ezt az értéket a TimeGenerated használja. Ha ez nem lett megadva, akkor TimeGenerated a feldolgozási idővel lesz kitöltve.
  • Mivel split dinamikus adatokat ad vissza, olyan függvényeket kell használnia, mint például tostringtoint az adatok megfelelő skaláris típussá alakításához.
source | project d = split(RawData,",") | project TimeGenerated=todatetime(d[0]), Code=toint(d[1]), Severity=tostring(d[2]), Module=tostring(d[3]), Message=tostring(d[4])

A vessző által tagolt fájlgyűjtemény konfigurációját bemutató képernyőkép.

Ha naplólekérdezéssel szeretné beolvasni ezeket az adatokat, az alábbi eredményeket adja vissza.

Képernyőkép a napló lekérdezéséről, amely vesszővel tagolt fájlgyűjtemény eredményeit adja vissza.

Hibaelhárítás

Ha nem gyűjt adatokat a várt szövegnapló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 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.

Következő lépések

  • További információ az Azure Monitor-ügynökről.
  • További információ az adatgyűjtési szabályokról.