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.
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 posten, 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 tas kolumnen RawData 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 parse eller split för att dela upp en enskild kolumn i flera värden och välja det värde 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 innehåller kolumnen RequestContext JSON med arbetsytans 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 tas kolumnen ClientIP 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 .
Berika 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")
Normalisera data
Normalisera data till ett gemensamt schema för att förenkla frågor och rapportering, till exempel den ASIM (Advanced Security Information Model) som används av Microsoft Sentinel. Använd en transformering för att normalisera data vid inmatningstid enligt beskrivningen i Inmatningstidsnormalisering.
I följande exempel omvandlas inkommande data till det normaliserade schemat för tabellen ASimAuditEventLogs .
source
| project TimeGenerated = timestamp, EventOwner=owner, EventMessage=message, EventResult=result, EventSeverity=severity
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()
Bearbeta 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 .