Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Många program och tjänster på en virtuell dator loggar information till textfiler i stället för standardloggningstjänster som Windows-händelselogg eller Syslog. Samla in anpassade textloggar från virtuella datorer kan samlas in med hjälp av en datainsamlingsregel (DCR) med en datakälla för anpassade textloggar .
Information om hur du skapar DCR finns i Samla in data från vm-klienten med Azure Monitor. Den här artikeln innehåller ytterligare information om datakällan för anpassade textloggar.
Anmärkning
Information om hur du arbetar med DCR-definitionen direkt eller för att distribuera med andra metoder, till exempel ARM-mallar, finns i Exempel på datainsamlingsregel (DCR) i Azure Monitor.
Förutsättningar
Förutom de krav som anges i Samla in data från en virtuell datorklient med Azure Monitor behöver du en anpassad tabell på en Log Analytics-arbetsyta för att ta emot data. Mer information om kraven i den här tabellen finns i Log Analytics-arbetsytetabellen . Observera att Aarch64 alma8 och rocky8 inte stöds.
Konfigurera datakälla för anpassad textfil
Skapa DCR med hjälp av processen i Samla in data från en virtuell datorklient med Azure Monitor. På fliken Samla in och leverera i DCR väljer du Anpassade textloggar i listrutan Datakällatyp .
De alternativ som är tillgängliga i konfigurationen för anpassade textloggar beskrivs i följande tabell.
| 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. Du kan använda jokertecken endast i filnamnet och i mappnamnet på den första nivån ovanför filnamnet. Exempel: - 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 |
| Tabellnamn | Namn på måltabellen i Log Analytics-arbetsytan. Den här tabellen måste redan finnas. |
| Registrera avgränsare | Anger avgränsare mellan loggposter.
TimeStamp är det enda aktuella tillåtna värdet. Det söker efter ett datum i formatet som specificerats i timeFormat för att identifiera början av en ny post. Om inget datum i det angivna formatet hittas används radens slut. Mer information finns i Tidsformat . |
| TimeStamp-format | Tidsformatet som används i loggfilen enligt beskrivningen i Tidsformat nedan. |
| Omvandla |
Transformering vid inmatning för att filtrera dataposter eller formatera inkommande data för måltabellen. Använd source för att lämna inkommande data oförändrade och skickas till RawData kolumnen. Se Avgränsade loggfiler för ett exempel på hur du använder en transformering. |
Lägga till mål
Anpassade textloggar kan bara skickas till en Log Analytics-arbetsyta där den lagras i den anpassade tabell som du skapar. Lägg till ett mål av typen Azure Monitor-loggar och välj en Log Analytics-arbetsyta. Du kan bara lägga till en enskild arbetsyta i en DCR för en anpassad textloggdatakälla. Om du behöver flera destinationer, skapa flera DCRs. Tänk dock på att detta kommer att skicka dubbletter av data till var och en vilket resulterar i ytterligare kostnader.
Tidsformat
I följande tabell beskrivs de tidsformat som stöds i timeFormat inställningen för DCR. Om en tid med det angivna formatet ingår i loggposten används den för att identifiera en ny loggpost. Om inget datum i det angivna formatet hittas används radens slut som avgränsare. Mer information om hur den här inställningen används finns i Flerradsloggfiler .
| Tidsformat | Exempel |
|---|---|
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 |
29 oktober 2024 18:28:34 |
yyMMdd HH:mm:ss |
241029 18:28:34 |
ddMMyy HH:mm:ss |
291024 18:28:34 |
MMM d HH:mm:ss |
29 okt 18:28:34 |
dd/MMM/yyyy:HH:mm:ss zzz |
14 oktober 2024:18:28:34 -00 |
1 ISO 8601-tidsstämplar med decimaltal/undersekundersprecision stöds inte.
Krav och metodtips för textfiler
Filen som Azure Monitor samlar in måste uppfylla följande krav:
- Filen måste lagras på den lokala enheten på agentdatorn i katalogen som övervakas.
- 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öljande är ett exempel på en typisk anpassad textfil som kan samlas in av Azure Monitor. Varje rad börjar med ett datum, men detta krävs inte eftersom radslutet används för att identifiera varje post om inget datum hittas.
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ölj följande rekommendationer för att säkerställa att du inte får problem med dataförlust eller prestanda:
- Rikta inte in dig på fler än 10 kataloger med loggfiler. Att avsöka för många kataloger leder till dåliga prestanda.
- Rensa loggfiler kontinuerligt i den övervakade katalogen. Spårning av många loggfiler kan öka agentens cpu- och minnesanvändning. Vänta i minst två 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.
Log Analytics-arbetsytetabell
Varje post i loggfilen samlas in när den skapas och skickas till den angivna tabellen på en Log Analytics-arbetsyta. Den anpassade tabellen på Log Analytics-arbetsytan som ska ta emot data måste finnas innan du skapar DCR.
I följande tabell beskrivs de obligatoriska och valfria kolumnerna i arbetsytetabellen. Tabellen kan innehålla andra kolumner, men de fylls inte i om du inte parsar data med en transformering enligt beskrivningen i Avgränsade loggfiler.
| Kolumn | Typ | Krävs? | Beskrivning |
|---|---|---|---|
TimeGenerated |
tidpunkt | Ja | Den här kolumnen innehåller den tid då posten genererades och krävs i alla tabeller. 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 ett värde från loggposten. |
RawData |
snöre | Ja 1 | 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. |
Computer |
snöre | Nej | Om tabellen innehåller den här kolumnen fylls den i med namnet på den dator som loggposten samlades in från. |
FilePath |
snöre | Nej | Om tabellen innehåller den här kolumnen fylls den i med sökvägen till loggfilen som loggposten samlades in från. |
1 Tabellen behöver inte innehålla en RawData kolumn om du använder en transformering för att parsa data i flera kolumner.
När de samlas in med standardinställningarna visas data från exempelloggfilen som visas ovan på följande sätt när de hämtas med en loggfråga.
Skapa anpassad tabell
Om måltabellen inte redan finns måste du skapa den innan du skapar DCR. Se Skapa en anpassad tabell för olika metoder för att skapa en tabell.
Du kan till exempel använda följande PowerShell-skript för att skapa en anpassad tabell för att ta emot data från en anpassad textlogg. Det här exemplet lägger också till valfria kolumner.
$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
Flerradsloggfiler
Vissa loggfiler kan innehålla poster som sträcker sig över flera rader. Om varje loggpost börjar med ett datum kan det här datumet användas som avgränsare för att definiera varje loggpost. I det här fallet kopplas de extra raderna samman i RawData kolumnen.
Textfilen i föregående exempel kan till exempel formateras på följande sätt:
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.
Om tidsstämpelformatet YYYY-MM-DD HH:MM:SS används i DCR samlas data in på samma sätt som i föregående exempel. De extra raderna skulle inkluderas i RawData kolumnen. Om ett annat tidsstämpelformat användes som inte matchar datumet i loggposten samlas varje post in som två separata poster.
Avgränsade loggfiler
Många textloggfiler har poster med kolumner avgränsade med ett tecken, till exempel ett kommatecken. I stället för att skicka hela posten till RawData-kolumnen kan du parsa data till separata kolumner, så att de kan fyllas i var och en i måltabellen. Använd en transformering med funktionen split för att utföra den här parsningen.
Exempeltextfilen som visas ovan är kommaavgränsad och fälten kan beskrivas som: Time, Code, Severity, Moduleoch Message. Om du vill parsa dessa data i separata kolumner lägger du till var och en av kolumnerna i måltabellen och lägger till följande transformering i DCR.
Viktigt!
Innan du lägger till den här omvandlingen i DCR måste du lägga till dessa kolumner i måltabellen. Du kan ändra PowerShell-skriptet ovan för att inkludera ytterligare kolumner när tabellen skapas. Eller använd Azure-portalen enligt beskrivningen i Lägg till eller ta bort en anpassad kolumn för att lägga till kolumnerna i en befintlig tabell.
Viktig information om transformeringsfrågan omfattar följande:
- Frågan matar ut egenskaper som var och en matchar ett kolumnnamn i måltabellen.
- Det här exemplet byter namn på
Timeegenskapen i loggfilen så att det här värdet används förTimeGenerated. Om detta inte angavs, då skulleTimeGeneratedfyllas i med inmatningstiden. - Eftersom
splitreturnerar dynamiska data måste du använda funktioner somtostringochtointför att konvertera data till rätt skalär typ.
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 Azure Monitor Agent.
- Läs mer om regler för datainsamling.