Delen via


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.

Volgende stappen