Delen via


Een transformatie maken in Azure Monitor

Met transformaties in Azure Monitor kunt u binnenkomende gegevens filteren of wijzigen voordat deze worden opgeslagen in een Log Analytics-werkruimte. Ze worden geïmplementeerd als een Kusto-querytaal -instructie (KQL) in een regel voor gegevensverzameling (DCR). Dit artikel bevat richtlijnen voor het maken en testen van een transformatiequery en het toevoegen aan een DCR.

Notitie

Als u niet bekend bent met KQL of logboekquery's voor Azure Monitor-gegevens maakt, begint u met overzicht van Log Analytics in Azure Monitor en logboekquery's in Azure Monitor.

Basisquerystructuur

Alle transformatiequery's beginnen met source, een virtuele tabel die de invoerstroom vertegenwoordigt. Vervolgens kunt u alle ondersteunde KQL-operators gebruiken om kolommen te filteren, te wijzigen of toe te voegen aan de gegevens, net zoals bij elke andere tabel. De query wordt afzonderlijk toegepast op elke vermelding die door de gegevensbron wordt verzonden.

De uitvoer van de query moet overeenkomen met het schema van de doeltabel met de volgende overwegingen:

  • U kunt kolommen weglaten die niet moeten worden ingevuld. De kolom is leeg voor de record in de doeltabel.
  • Zorg ervoor dat u kolommen uitsluit die niet zijn opgenomen in de uitvoertabel. De gegevens worden zonder fouten geaccepteerd, maar er worden kosten in rekening gebracht voor de opname van de extra gegevens, ook al worden deze niet opgeslagen.
  • De uitvoer van elke transformatie moet een geldig tijdstempel bevatten in een kolom met de naam TimeGenerated van het type datetime. Als uw gegevensbron deze eigenschap niet bevat, kunt u deze toevoegen aan de transformatie met extend of project.

Hier volgt een voorbeeld van een transformatie die verschillende functies uitvoert:

  • Filtert de binnenkomende gegevens met een where instructie.
  • Hiermee voegt u een nieuwe kolom toe met behulp van de extend operator.
  • Hiermee wordt de uitvoer opgemaakt zodat deze overeenkomt met de kolommen van de doeltabel met behulp van de project operator.
source  
| where severity == "Critical" 
| extend Properties = parse_json(properties)
| project
    TimeGenerated = todatetime(["time"]),
    Category = category,
    StatusDescription = StatusDescription,
    EventName = name,
    EventId = tostring(Properties.EventId)

Notitie

Zie DCR-voorbeelden (Data Collection Rule) en -scenario's in Azure Monitor voor verschillende voorbeelden voor verschillende scenario's.

De transformatiequery maken

Voordat u de DCR maakt of bewerkt die uw transformatie omvat, moet u de transformatiequery maken en testen. U doet dit doorgaans door testquery's uit te voeren op bestaande gegevens of testgegevens. Wanneer u de gewenste resultaten krijgt, kunt u de tabelnaam source vervangen door en in uw DCR plakken, zoals hieronder wordt uitgelegd in Transformatie toevoegen aan DCR.

Belangrijk

Transformaties bieden geen ondersteuning voor alle KQL-functies. Zie Ondersteunde KQL-functies in Azure Monitor-transformaties voor ondersteunde functies en beperkingen.

Als u bijvoorbeeld een transformatie maakt om Syslog-gebeurtenissen te filteren, kunt u beginnen met de volgende query die u kunt uitvoeren in Log Analytics.

Syslog | where SeverityLevel != 'info'

U kunt deze query in uw DCR plakken en vervolgens de tabelnaam wijzigen in source.

source | where SeverityLevel != 'info'

Gebruik een van de volgende strategieën voor gegevens die u kunt gebruiken om uw query te testen.

  • Als u al de gegevens verzamelt die u wilt transformeren, kunt u Log Analytics gebruiken om een query te schrijven die de gegevens filtert of indien nodig wijzigt. Kopieer de querytekst en plak deze in uw DCR.
  • Gebruik Log Analytics om uw query te schrijven met behulp van de datatable operator om een voorbeeldgegevensset te maken die uw binnenkomende gegevens vertegenwoordigt. Kopieer de querytekst zonder de datatable operator en plak deze in uw DCR.
  • Gebruik het proces om een nieuwe tabel te maken in Azure Portal en voorbeeldgegevens op te geven. Gebruik de meegeleverde interface om uw transformatiequery te maken en te testen. Kopieer de querytekst en plak deze in uw DCR of voltooi het proces en bewerk de DCR om de transformatiequery te kopiëren. U kunt de nieuwe tabel vervolgens verwijderen als u deze niet nodig hebt.

Transformatie toevoegen aan DCR

Zodra u de transformatiequery hebt, kunt u deze toevoegen aan een DCR. Gebruik de richtlijnen in Regels voor gegevensverzameling (DCR's) maken en bewerken in Azure Monitor om de DCR te maken of bewerken met behulp van de informatie in deze sectie om de transformatiequery in de DCR-definitie op te nemen.

Notitie

Sommige gegevensbronnen bieden een methode met behulp van Azure Portal om een transformatie toe te voegen aan een DCR. Als u bijvoorbeeld een tekst van een virtuele machine verzamelt, kunt u een transformatiequery opgeven in Azure Portal. In de meeste scenario's voor gegevensverzameling moet u momenteel echter rechtstreeks met de DCR-definitie werken om een transformatie toe te voegen. Dit is het proces dat in deze sectie wordt beschreven.

De transformatiequery wordt opgegeven in de transformKql eigenschap in de sectie Gegevensstroom s van de DCR. Dit is de sectie die een gegevensbron koppelt aan een doel. De transformatie wordt toegepast op de binnenkomende stroom van de gegevensstroom voordat deze naar de bestemming wordt verzonden. Deze is alleen van toepassing op die gegevensstroom, zelfs als dezelfde stroom of bestemming wordt gebruikt in andere gegevensstromen.

Als de eigenschap wordt weggelaten of als de transformKql waarde simpelweg sourceis, wordt er geen transformatie toegepast en worden de binnenkomende gegevens zonder wijziging naar het doel verzonden.

Belangrijk

De transformatiequery moet zich op één regel in de DCR bevindt. Als u de transformatie in Azure Portal maakt, kunt u meerdere regels gebruiken voor leesbaarheid en \n worden opgenomen in de query voor elke nieuwe regel.

In het volgende voorbeeld is er geen transformKql eigenschap, zodat de binnenkomende gegevens zonder wijziging naar het doel worden verzonden.

"dataFlows": [ 
    { 
        "streams": [ 
        "Microsoft-Syslog" 
        ], 
        "destinations": [ 
        "centralWorkspace" 
        ] 
    } 
] 

In het volgende voorbeeld transformKql heeft u een eenvoudige query van source, zodat de binnenkomende gegevens zonder wijziging naar het doel worden verzonden. De functionaliteit is identiek aan het vorige voorbeeld.

"dataFlows": [ 
    { 
        "streams": [ 
        "Microsoft-Syslog" 
        ], 
        "transformKql": "source", 
        "destinations": [ 
        "centralWorkspace" 
        ] 
    } 
] 

In het volgende voorbeeld transformKql heeft u een query waarmee gegevens worden gefilterd, zodat alleen foutberichten naar de bestemming worden verzonden.

"dataFlows": [ 
    { 
        "streams": [ 
        "Microsoft-Syslog" 
        ], 
        "transformKql": "source | where message has 'error'", 
        "destinations": [ 
        "centralWorkspace" 
        ] 
    } 
] 

DCR voor werkruimtetransformatie maken

De regel voor gegevensverzameling van werkruimtetransformatiegegevens (DCR) is een speciale DCR die rechtstreeks wordt toegepast op een Log Analytics-werkruimte. Er kan slechts één DCR voor werkruimtetransformatie zijn voor elke werkruimte, maar het kan transformaties voor een willekeurig aantal tabellen bevatten.

Gebruik een van de volgende methoden om een DCR voor werkruimtetransformatie voor uw werkruimte te maken en er een of meer transformaties aan toe te voegen.

U kunt een DCR voor werkruimtetransformatie maken in Azure Portal door een transformatie toe te voegen aan een ondersteunde tabel.

  1. Selecteer Tabellen in het menu Log Analytics-werkruimten in Azure Portal. Klik rechts van de tabel waarin u geïnteresseerd bent en selecteer Transformatie maken.

    Schermopname van de optie voor het maken van een transformatie voor een tabel in Azure Portal.

  2. Als de DCR voor de werkruimtetransformatie nog niet is gemaakt voor deze werkruimte, selecteert u de optie om er een te maken. Als deze al is gemaakt, wordt die DCR al geselecteerd. Elke werkruimte kan slechts één DCR voor werkruimtetransformatie hebben.

    Schermopname van het maken van een nieuwe regel voor gegevensverzameling.

  3. Selecteer Volgende om voorbeeldgegevens uit de tabel weer te geven. Klik op Transformatieeditor om de transformatiequery te definiëren.

    Schermopname van voorbeeldgegevens uit de logboektabel.

  4. Vervolgens kunt u de transformatiequery bewerken en uitvoeren om de resultaten te bekijken op basis van werkelijke gegevens uit de tabel. Blijf de query wijzigen en testen totdat u de gewenste resultaten krijgt.

  5. Wanneer u tevreden bent met de query, klikt u op Toepassen en vervolgens op Volgende en Maken om de DCR op te slaan met uw nieuwe transformatie.

    Schermopname van het opslaan van de transformatie.

Transformaties optimaliseren en bewaken

Transformaties voeren een KQL-query uit op elke record die is verzameld met de DCR, dus het is belangrijk dat ze efficiënt worden uitgevoerd. De uitvoeringstijd van de transformatie draagt bij aan de algehele latentie van gegevensopname en transformaties die veel tijd in beslag nemen, kunnen van invloed zijn op de prestaties van de pijplijn voor gegevensverzameling en leiden tot gegevensverlies. Het uitvoeren van optimale transformaties duurt maximaal 1 seconde. Zie Logboekquery's optimaliseren in Azure Monitor voor hulp bij het testen van uw query voordat u deze implementeert als transformatie en voor aanbevelingen voor het optimaliseren van query's die niet efficiënt worden uitgevoerd.

Belangrijk

U kunt gegevensverlies ondervinden als een transformatie langer dan 20 seconden duurt.

Omdat transformaties niet interactief worden uitgevoerd, is het belangrijk dat u ze continu bewaakt om ervoor te zorgen dat ze correct worden uitgevoerd en niet te veel tijd nodig hebben om gegevens te verwerken. Zie DcR-gegevensverzameling bewaken en problemen oplossen in Azure Monitor voor meer informatie over logboeken en metrische gegevens die de status en prestaties van transformaties bewaken. Dit omvat het identificeren van eventuele fouten die optreden in de KQL en metrische gegevens om de duur van de uitvoering bij te houden.

De volgende metrische gegevens worden automatisch verzameld voor transformaties en moeten regelmatig worden gecontroleerd om te controleren of uw transformaties nog steeds worden uitgevoerd zoals verwacht. Maak metrische waarschuwingsregels om automatisch een melding te ontvangen wanneer een van deze metrische gegevens een drempelwaarde overschrijdt.

  • Logboektransformatieduur per min.
  • Logboektransformatiefouten per min.

Schakel DCR-foutenlogboeken in om eventuele fouten in uw transformaties of andere query's bij te houden. Maak een waarschuwingsregel voor logboeken om automatisch een melding te ontvangen wanneer een vermelding naar deze tabel wordt geschreven.

Richtlijn

Er zijn meerdere methoden om transformaties te maken, afhankelijk van de methode voor gegevensverzameling. De volgende tabel bevat richtlijnen voor verschillende methoden voor het maken van transformaties.

Gegevensverzameling Verwijzing
Logboekopname-API Gegevens verzenden naar Azure Monitor-logboeken met behulp van REST API (Azure Portal)
Gegevens verzenden naar Azure Monitor-logboeken met behulp van REST API (Azure Resource Manager-sjablonen)
Virtuele machine met Azure Monitor-agent Transformatie toevoegen aan Azure Monitor-logboek
Kubernetes-cluster met Container Insights Gegevenstransformaties in Container Insights
Azure Event Hubs Zelfstudie: Gebeurtenissen van Azure Event Hubs opnemen in Azure Monitor-logboeken (openbare preview)

Volgende stappen