Samla in loggar från en textfil med Azure Monitor Agent
Anpassade textloggar är en av de datakällor som används i en datainsamlingsregel (DCR). Information om hur du skapar DCR finns i Samla in data med Azure Monitor Agent. Den här artikeln innehåller ytterligare information om typ av textloggar.
Många program och tjänster loggar information till textfiler i stället för standardloggningstjänster som Windows-händelselogg eller Syslog. Dessa data kan samlas in med Azure Monitor Agent och lagras på en Log Analytics-arbetsyta med data som samlats in från andra källor.
Förutsättningar
- Log Analytics-arbetsyta där du har minst deltagarbehörighet.
- En datainsamlingsslutpunkt (DCE) i samma region som Log Analytics-arbetsytan. Mer information finns i Konfigurera datainsamlingsslutpunkter baserat på distributionen .
- Antingen en ny eller befintlig DCR som beskrivs i Samla in data med Azure Monitor Agent.
Grundläggande åtgärd
Följande diagram visar den grundläggande åtgärden för att samla in loggdata från en textfil.
- Agenten söker efter loggfiler som matchar ett angivet namnmönster på den lokala disken.
- Varje post i loggen samlas in och skickas till Azure Monitor. Den inkommande strömmen innehåller hela loggposten i en enda kolumn.
- Om standardtransformeringen används skickas hela loggposten till en enda kolumn i måltabellen.
- Om en anpassad transformering används kan loggposten parsas till flera kolumner i måltabellen.
Krav och metodtips för textfiler
Filen som Azure Monitor-agenten övervakar måste uppfylla följande krav:
- Filen måste lagras på den lokala enheten på datorn med Azure Monitor-agenten i katalogen som övervakas.
- Varje post måste vara avgränsad med en radslut.
- Filen måste använda ASCII- eller UTF-8-kodning. Andra format som UTF-16 stöds inte.
- Nya poster ska läggas till i slutet av filen och inte skriva över gamla poster. Om du skriver över orsakas dataförlust.
Följ följande rekommendationer för att säkerställa att du inte får problem med dataförlust eller prestanda:
- Skapa en ny loggfil varje dag så att du enkelt kan rensa gamla filer.
- Rensa loggfiler kontinuerligt i den övervakade katalogen. Spårning av många loggfiler kan öka agentens cpu- och minnesanvändning. Vänta i minst 2 dagar för att ge gott om tid för att alla loggar ska bearbetas.
- Byt inte namn på en fil som matchar filgenomsökningsmönstret till ett annat namn som också matchar filgenomsökningsmönstret. Detta gör att dubbletter av data matas in.
- Byt inte namn på eller kopiera stora loggfiler som matchar filgenomsökningsmönstret till den övervakade katalogen. Om du måste ska du inte överskrida 50 MB per minut.
Inkommande ström
Kommentar
Stöd för flera rader som använder en tidsstämpel för avgränsade händelser är nu tillgängligt. Du måste använda en distribution av resurshanteringsmallen tills stöd har lagts till i portalgränssnittet.
Den inkommande dataströmmen innehåller kolumnerna i följande tabell.
Column | Type | Beskrivning |
---|---|---|
TimeGenerated |
datetime | Den tid då posten genererades. Det här värdet fylls i automatiskt när posten läggs till i Log Analytics-arbetsytan. Du kan åsidosätta det här värdet med hjälp av en transformering för att ange TimeGenerated till ett annat värde. |
RawData |
sträng | Hela loggposten i en enda kolumn. Du kan använda en transformering om du vill dela upp dessa data i flera kolumner innan du skickar till tabellen. |
FilePath |
sträng | Om du lägger till den här kolumnen i den inkommande strömmen i DCR fylls den i med sökvägen till loggfilen. Den här kolumnen skapas inte automatiskt och kan inte läggas till med hjälp av portalen. Du måste ändra domänkontrollanten som skapats av portalen manuellt eller skapa DCR med en annan metod där du uttryckligen kan definiera den inkommande strömmen. |
Computer |
sträng | Om du lägger till den här kolumnen i den inkommande strömmen i DCR fylls den i med namnet på datorn med loggfilen. Den här kolumnen skapas inte automatiskt och kan inte läggas till med hjälp av portalen. Du måste ändra domänkontrollanten som skapats av portalen manuellt eller skapa DCR med en annan metod där du uttryckligen kan definiera den inkommande strömmen. |
Anpassad tabell
Innan du kan samla in loggdata från en textfil måste du skapa en anpassad tabell på Log Analytics-arbetsytan för att ta emot data. Tabellschemat måste matcha de data som du samlar in, eller så måste du lägga till en transformering för att säkerställa att utdataschemat matchar tabellen.
Varning
För att undvika dataförlust är det viktigt att du inte använder en befintlig anpassad loggtabell som MMA-agenter använder för närvarande. När en AMA-agent skriver till en befintlig anpassad loggtabell kommer MMA-agenter inte längre att kunna skriva till den tabellen. I stället bör du skapa en ny tabell specifikt för AMA-agenter för att säkerställa en smidig övergång från en agent till en annan.
Du kan till exempel använda följande PowerShell-skript för att skapa en anpassad tabell med RawData
, FilePath
och Computer
. Du behöver ingen transformering för den här tabellen eftersom schemat matchar standardschemat för den inkommande strömmen.
$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
Skapa en datainsamlingsregel för en textfil
Skapa en datainsamlingsregel enligt beskrivningen i Samla in data med Azure Monitor Agent. I steget Samla in och leverera väljer du Anpassade textloggar i listrutan Datakällatyp .
Inställning | beskrivning |
---|---|
Filmönster | Identifierar platsen och namnet på loggfilerna på den lokala disken. Använd ett jokertecken för filnamn som varierar, till exempel när en ny fil skapas varje dag med ett nytt namn. Du kan ange flera filmönster avgränsade med kommatecken. Exempel: - C:\Logs\MyLog.txt - C:\Logs\MyLog*.txt - C:\App01\AppLog.txt, C:\App02\AppLog.txt - /var/mylog.log - /var/mylog*.log |
Tabellnamn | Namn på måltabellen på Log Analytics-arbetsytan. |
Registrera avgränsare | Används för närvarande inte men är reserverad för framtida potentiell användning och tillåter avgränsare som inte stöds i slutet av raden (/r/n ). |
Transformering | Inmatningstidstransformering för att filtrera poster eller formatera inkommande data för måltabellen. Använd source för att lämna inkommande data oförändrade. |
Avgränsade loggfiler
Många textloggfiler har poster som avgränsas av ett tecken, till exempel ett kommatecken. Om du vill parsa dessa data i separata kolumner använder du en transformering med funktionen split.
Tänk dig till exempel en textfil med följande kommaavgränsade data. Dessa fält kan beskrivas som: Time
, Code
, Severity
,Module
och 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.
Följande transformering parsar data i separata kolumner. Eftersom split
returnerar dynamiska data måste du använda funktioner som tostring
och toint
för att konvertera data till rätt skalär typ. Du måste också ange ett namn för varje post som matchar kolumnnamnet i måltabellen. Observera att det här exemplet innehåller ett TimeGenerated
värde. Om detta inte angavs används inmatningstiden.
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])
Om du hämtar dessa data med en loggfråga returneras följande resultat.
Felsökning
Gå igenom följande steg om du inte samlar in data från textloggen som du förväntar dig.
- Kontrollera att data skrivs till loggfilen som samlas in.
- Kontrollera att loggfilens namn och plats matchar det filmönster som du har angett.
- Kontrollera att schemat för måltabellen matchar den inkommande strömmen eller att du har en transformering som konverterar den inkommande strömmen till rätt schema.
- Se Kontrollera åtgärden för att kontrollera om agenten är i drift och att data tas emot.
Nästa steg
Läs mer om: