Dela via


Exempeltransformeringar i Azure Monitor

Med transformeringar i Azure Monitor kan du filtrera eller ändra inkommande data innan de skickas till en Log Analytics-arbetsyta. Den här artikeln innehåller exempelfrågor för vanliga scenarier som du kan använda för att komma igång med att skapa egna omvandlingar. Mer information om hur du testar dessa transformeringar och lägger till dem i en datainsamlingsregel (DCR) finns i Skapa en transformering i Azure Monitor .

Minska datakostnader

Eftersom du debiteras inmatningskostnad för data som skickas till en Log Analytics-arbetsyta vill du filtrera bort alla data som du inte behöver för att minska kostnaderna.

Filtrera rader med data

Använd en where instruktion för att filtrera inkommande data som matchar särskilda krav. Om den inkommande posten inte matchar -instruktionen skickas inte posten till målet. I följande exempel samlas endast poster med allvarlighetsgrad Critical in.

source | where severity == "Critical" 

Filtrera datakolumner

Ta bort kolumner från datakällan som inte krävs för att spara på kostnader för datainmatning. Använd en project instruktion för att ange kolumnerna i dina utdata eller använd project-away för att ange endast kolumner att ta bort. I följande exempel RawData tas kolumnen bort från utdata.

source | project-away RawData

Parsa viktiga data från en kolumn

Du kan ha en kolumn med viktiga data begravda i överdriven text. Behåll endast värdefulla data och ta bort texten som inte behövs. Använd strängfunktioner som substring och extract för att parsa de data du vill använda. Du kan också parsa data med eller parse split för att dela upp en enskild kolumn i flera värden och välja den du vill använda. Använd extend sedan för att skapa en ny kolumn med parsade data och project-away för att ta bort den ursprungliga kolumnen.

I följande exempel RequestContext innehåller kolumnen JSON med arbetsytan ResourceId. Funktionerna parse_json och split används för att extrahera arbetsytans enkla namn. En ny kolumn skapas för det här värdet och de andra kolumnerna tas bort.

source
| extend Context = parse_json(RequestContext)
| extend Workspace_CF = tostring(Context['workspaces'][0])
| extend WorkspaceName_CF = split(Workspace_CF,"/")[8]
| project-away RequestContext, Context, Workspace_CF

Skicka rader till grundläggande loggar

Skicka rader i dina data som kräver grundläggande frågefunktioner till grundläggande loggtabeller för en lägre inmatningskostnad. Mer information om hur du skickar data till flera tabeller finns i Skicka data till flera tabeller .

Ta bort känsliga data

Du kanske har en datakälla som skickar information som du inte vill lagra av sekretess- eller tillförlitlighetsskäl.

Filtrera känslig information

Använd samma strategier som beskrivs i Minska datakostnader för att filtrera bort hela rader eller vissa kolumner som innehåller känslig information. I följande exempel ClientIP tas kolumnen bort från utdata.

source | project-away ClientIP

Fördunkla känslig information

Använd strängfunktioner för att ersätta information som siffror i en IP-adress eller ett telefonnummer med ett gemensamt tecken. I följande exempel ersätts användarnamnet i en e-postadress med "*****".

source | extend Email = replace_string(Email,substring(Email,0,indexof(Email,"@")),"*****")

Skicka till en alternativ tabell

Skicka känsliga poster till en alternativ tabell med olika rollbaserad konfiguration av åtkomstkontroll. Mer information om hur du skickar data till flera tabeller finns i Skicka data till flera tabeller .

Utöka data

Använd en transformering för att lägga till information till data som tillhandahåller affärskontext eller förenklar frågor mot data senare. Använd strängfunktioner för att extrahera viktig information från en kolumn och sedan använda -instruktionen extend för att lägga till en ny kolumn i datakällan. I följande exempel läggs en kolumn som identifierar om en IP-adress i en annan kolumn är intern eller extern.

source | extend IpLocation = iff(split(ClientIp,".")[0] in ("10","192"), "Internal", "External")

Formatera data för målet

Du kan ha en datakälla som skickar data i ett format som inte matchar måltabellens struktur. Använd en transformering för att formatera om data till det obligatoriska schemat.

Ändra schema

Använd kommandon som extend och project för att ändra schemat för inkommande data så att de matchar måltabellen. I följande exempel läggs en ny kolumn med namnet TimeGenerated till i utgående data med hjälp av en KQL-funktion för att returnera den aktuella tiden.

source | extend TimeGenerated = now()

Parsa data

Använd operatorn split eller parse för att parsa data i flera kolumner i måltabellen. I följande exempel har inkommande data en kommaavgränsad kolumn med namnet RawData som är uppdelad i enskilda kolumner för måltabellen.

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])

Nästa steg