Naplók gyűjtése szövegfájlból az Azure Monitor-ügynökkel
Az egyéni szövegnaplók az adatgyűjtési szabályban (DCR) használt adatforrások egyike. 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 szövegnaplók típusával kapcsolatban.
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. Ezek az adatok összegyűjthetők az Azure Monitor-ügynökkel, és egy Log Analytics-munkaterületen tárolhatók más forrásokból gyűjtött adatokkal.
Előfeltételek
- Log Analytics-munkaterület, ahol legalább közreműködői jogosultságokkal rendelkezik.
- Egy adatgyűjtési végpont (DCE) ugyanabban a régióban, mint a Log Analytics-munkaterület. A részletekért tekintse meg az adatgyűjtési végpontok üzembe helyezése alapján történő beállítását ismertető cikket.
- Vagy egy új vagy meglévő DCR, amelyet az Adatok gyűjtése az Azure Monitor-ügynökkel című cikkben ismertetünk.
Alapművelet
Az alábbi ábra a naplóadatok szöveges fájlból történő gyűjtésének alapműveletét mutatja be.
- Az ügynök figyeli azokat a naplófájlokat, amelyek megfelelnek a helyi lemez megadott névmintájának.
- A napló minden bejegyzését összegyűjtjük és elküldjük az Azure Monitornak. A bejövő stream egyetlen oszlopban tartalmazza a teljes naplóbejegyzést.
- Ha az alapértelmezett átalakítást használja, a rendszer a teljes naplóbejegyzést a céltábla egyetlen oszlopára küldi.
- Ha egyéni átalakítást használ, a naplóbejegyzés a céltábla több oszlopába is elemezhető.
Szövegfájlokkal kapcsolatos követelmények és ajánlott eljárások
Az Azure Monitor-ügynök által figyelt fájlnak meg kell felelnie a következő követelményeknek:
- A fájlt a számítógép helyi meghajtóján kell tárolni az Azure Monitor-ügynökkel a figyelt könyvtárban.
- Minden rekordot sorvéggel kell elhatároltnak lennie.
- 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.
Tartsa be az alábbi ajánlásokat, hogy ne tapasztaljon adatvesztéssel vagy teljesítménnyel kapcsolatos problémákat:
- Minden nap hozzon létre egy új naplófájlt, hogy könnyen törölhesse a régi fájlokat.
- 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 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.
Bejövő stream
Feljegyzés
Mostantól elérhető a többsoros támogatás, amely időbélyeggel tagolt eseményeket használ. Erőforrás-kezelési sablon üzembe helyezését addig kell használnia, amíg a portál felhasználói felületén nem lesz támogatás.
A bejövő adatfolyam az alábbi táblázat oszlopait tartalmazza.
Oszlop | Típus | Leírás |
---|---|---|
TimeGenerated |
dátum/idő | A rekord létrehozásának időpontja. 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 egy átalakítással felülbírálhatja egy másik értékre való beállításhoz TimeGenerated . |
RawData |
húr | 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. |
FilePath |
húr | Ha hozzáadja ezt az oszlopot a bejövő streamhez a DCR-ben, az a naplófájl elérési útjával lesz feltöltve. Ez az oszlop nem jön létre automatikusan, és nem vehető fel a portálon. Manuálisan kell módosítania a portál által létrehozott DCR-t, vagy létre kell hoznia a DCR-t egy másik módszerrel, ahol explicit módon definiálhatja a bejövő streamet. |
Computer |
húr | Ha hozzáadja ezt az oszlopot a bejövő streamhez a DCR-ben, az a naplófájlt tartalmazó számítógép nevével lesz feltöltve. Ez az oszlop nem jön létre automatikusan, és nem vehető fel a portálon. Manuálisan kell módosítania a portál által létrehozott DCR-t, vagy létre kell hoznia a DCR-t egy másik módszerrel, ahol explicit módon definiálhatja a bejövő streamet. |
Egyéni tábla
Mielőtt naplóadatokat gyűjthet egy szövegfájlból, létre kell hoznia egy egyéni táblát a Log Analytics-munkaterületen az adatok fogadásához. A táblasémának meg kell egyeznie a gyűjtött adatokkal, vagy hozzá kell adnia egy átalakítást, hogy a kimeneti séma megfeleljen a táblának.
Figyelmeztetés
Az adatvesztés elkerülése érdekében fontos, hogy ne használjon olyan meglévő egyéni naplótáblát, amelyet az MMA-ügynökök jelenleg használnak. Ha egy AMA-ügynök egy meglévő egyéni naplótáblába ír, az MMA-ügynökök már nem tudnak írni a táblába. Ehelyett létre kell hoznia egy új táblát kifejezetten az AMA-ügynökök számára, hogy zökkenőmentes átmenetet biztosítson az egyik ügynökről a másikra.
Az alábbi PowerShell-szkripttel például létrehozhat egy egyéni táblát a következővel RawData
: , FilePath
és Computer
. Ehhez a táblához nincs szükség átalakításra, mert a séma megfelel a bejövő stream alapértelmezett sémájának.
$tableParams = @'
{
"properties": {
"schema": {
"name": "{TableName}_CL",
"columns": [
{
"name": "TimeGenerated",
"type": "DateTime"
},
{
"name": "RawData",
"type": "String"
},
{
"name": "FilePath",
"type": "String"
},
{
"name": "Computer",
"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
Adatgyűjtési szabály létrehozása szövegfájlhoz
Hozzon létre egy adatgyűjtési szabályt az Adatok gyűjtése az Azure Monitor-ügynökkel című cikkben leírtak szerint. A Gyűjtési és kézbesítési lépésben válassza az Egyéni szövegnaplók lehetőséget az Adatforrás típusa legördülő listában.
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. Példák: - C:\Logs\MyLog.txt - C:\Logs\MyLog*.txt - C:\App01\AppLog.txt, C:\App02\AppLog.txt - /var/mylog.log - /var/mylog*.log |
Tábla neve | A Log Analytics-munkaterület céltáblájának neve. |
Rekordelválasztó | Jelenleg nincs használatban, de a jövőbeli potenciális használatra van fenntartva, így a jelenleg támogatott vonalvégtől (/r/n ) eltérő elválasztójelek használhatók. |
Átalakítás | Betöltési idő átalakítás rekordok szűréséhez vagy a céltábla bejövő adatainak formázásához. A source bejövő adatok változatlan maradnak. |
Tagolt naplófájlok
Sok szöveges naplófájl olyan bejegyzéseket tartalmaz, amelyeket egy karakter, például egy vessző tagolt. Ha ezeket az adatokat külön oszlopokba szeretné elemezni, használjon egy átalakítást a felosztott függvénnyel.
Vegyük például az alábbi vesszővel tagolt adatokat tartalmazó szövegfájlt. Ezek a mezők a következőképpen írhatók le: Time
, Code
, Severity
,Module
és Message
.
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.
Az alábbi átalakítás külön oszlopokba elemzi az adatokat. Mivel split
dinamikus adatokat ad vissza, olyan függvényeket kell használnia, mint például tostring
toint
az adatok megfelelő skaláris típussá alakításához. Minden bejegyzésnek meg kell adnia egy nevet is, amely megfelel a céltáblában szereplő oszlopnévnek. Vegye figyelembe, hogy ez a példa értéket ad TimeGenerated
. Ha ez nem lett megadva, a betöltési időt kell használni.
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])
Ha naplólekérdezéssel szeretné beolvasni ezeket az adatokat, az alábbi eredményeket 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ók: