Voorbeeldtransformaties in Azure Monitor
Met transformaties in Azure Monitor kunt u binnenkomende gegevens filteren of wijzigen voordat deze naar een Log Analytics-werkruimte worden verzonden. Dit artikel bevat voorbeeldquery's voor veelvoorkomende scenario's die u kunt gebruiken om aan de slag te gaan met het maken van uw eigen transformaties. Zie Een transformatie maken in Azure Monitor voor meer informatie over het testen van deze transformaties en het toevoegen ervan aan een REGEL voor gegevensverzameling (DCR).
Gegevenskosten verlagen
Omdat er kosten voor opname in rekening worden gebracht voor gegevens die naar een Log Analytics-werkruimte worden verzonden, wilt u alle gegevens filteren die u niet nodig hebt om uw kosten te verlagen.
Rijen met gegevens filteren
Gebruik een where
instructie om binnenkomende gegevens te filteren die voldoen aan bepaalde vereisten. Als de binnenkomende record niet overeenkomt met de instructie, wordt de record niet naar de bestemming verzonden. In het volgende voorbeeld worden alleen records met een ernst Critical
verzameld.
source | where severity == "Critical"
Kolommen met gegevens filteren
Verwijder kolommen uit de gegevensbron die niet nodig zijn om te besparen op kosten voor gegevensopname. Gebruik een project
instructie om de kolommen in de uitvoer op te geven of gebruik project-away
deze om alleen kolommen op te geven die moeten worden verwijderd. In het volgende voorbeeld wordt de RawData
kolom uit de uitvoer verwijderd.
source | project-away RawData
Belangrijke gegevens uit een kolom parseren
Mogelijk hebt u een kolom met belangrijke gegevens die in overmatige tekst zijn begraven. Bewaar alleen de waardevolle gegevens en verwijder de tekst die niet nodig is. Gebruik tekenreeksfuncties zoals substring
en extract
om de gewenste gegevens te parseren. U kunt de gegevens ook parseren met behulp van parse
of split
één kolom opsplitsen in meerdere waarden en de gewenste kolom selecteren. Gebruik vervolgens extend
om een nieuwe kolom te maken met de geparseerde gegevens en project-away
om de oorspronkelijke kolom te verwijderen.
Waarschuwing
Zie Grote parseringsopdrachten opsplitsen voor tips over het gebruik van complexe parseringsopdrachten.
In het volgende voorbeeld bevat de RequestContext
kolom JSON met de werkruimte ResourceId. De parse_json
en split
functies worden gebruikt om de eenvoudige naam van de werkruimte te extraheren. Er wordt een nieuwe kolom gemaakt voor deze waarde en de andere kolommen worden verwijderd.
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
Rijen verzenden naar basislogboeken
Rijen in uw gegevens verzenden waarvoor basisquerymogelijkheden nodig zijn voor eenvoudige logboektabellen voor een lagere opnamekosten. Zie Gegevens naar meerdere tabellen verzenden voor meer informatie over het verzenden van gegevens naar meerdere tabellen.
Gevoelige gegevens verwijderen
Mogelijk hebt u een gegevensbron die informatie verzendt die u niet wilt opslaan om privacy- of compliancyredenen.
Gevoelige informatie filteren
Gebruik dezelfde strategieën die worden beschreven in Gegevenskosten verlagen om volledige rijen of bepaalde kolommen met gevoelige informatie te filteren. In het volgende voorbeeld wordt de ClientIP
kolom uit de uitvoer verwijderd.
source | project-away ClientIP
Gevoelige informatie obfuscate
Gebruik tekenreeksfuncties om informatie zoals cijfers in een IP-adres of telefoonnummer te vervangen door een gemeenschappelijk teken. In het volgende voorbeeld wordt de gebruikersnaam in een e-mailadres vervangen door '*****'.
source | extend Email = replace_string(Email,substring(Email,0,indexof(Email,"@")),"*****")
Verzenden naar een alternatieve tabel
Gevoelige records verzenden naar een alternatieve tabel met een andere configuratie voor toegangsbeheer op basis van rollen. Zie Gegevens naar meerdere tabellen verzenden voor meer informatie over het verzenden van gegevens naar meerdere tabellen.
Gegevens verrijken
Gebruik een transformatie om informatie toe te voegen aan gegevens die zakelijke context bieden of het later uitvoeren van query's op de gegevens vereenvoudigt. Gebruik tekenreeksfuncties om kritieke informatie uit een kolom te extraheren en gebruik vervolgens de extend
instructie om een nieuwe kolom toe te voegen aan de gegevensbron. In het volgende voorbeeld wordt een kolom toegevoegd waarmee wordt aangegeven of een IP-adres in een andere kolom intern of extern is.
source | extend IpLocation = iff(split(ClientIp,".")[0] in ("10","192"), "Internal", "External")
Gegevens opmaken voor bestemming
Mogelijk hebt u een gegevensbron die gegevens verzendt in een indeling die niet overeenkomt met de structuur van de doeltabel. Gebruik een transformatie om de gegevens opnieuw op te maken in het vereiste schema.
Schema wijzigen
Gebruik opdrachten zoals extend
en project
om het schema van de binnenkomende gegevens te wijzigen zodat deze overeenkomen met de doeltabel. In het volgende voorbeeld wordt een nieuwe kolom met de aangeroepen TimeGenerated
kolom toegevoegd aan uitgaande gegevens met behulp van een KQL-functie om de huidige tijd te retourneren.
source | extend TimeGenerated = now()
Gegevens parseren
Gebruik de split
of parse
operator om gegevens te parseren in meerdere kolommen in de doeltabel. In het volgende voorbeeld hebben de binnenkomende gegevens een door komma's gescheiden kolom met de naam RawData
die is gesplitst in afzonderlijke kolommen voor de doeltabel.
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])
Waarschuwing
Zie Grote parseringsopdrachten opsplitsen voor tips over het gebruik van complexe parseringsopdrachten.