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.
Varning
Mer information om hur du använder komplexa parsningskommandon finns i Dela upp stora parsningskommandon .
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])
Varning
Mer information om hur du använder komplexa parsningskommandon finns i Dela upp stora parsningskommandon .