Dela via


Skapa en transformering i Azure Monitor

Med transformeringar i Azure Monitor kan du filtrera eller ändra inkommande data innan de lagras på en Log Analytics-arbetsyta. De implementeras som en Kusto-frågespråk -instruktion (KQL) i en datainsamlingsregel (DCR). Den här artikeln innehåller vägledning om hur du skapar och testar en transformeringsfråga och lägger till den i en DCR.

Kommentar

Om du inte är bekant med KQL eller skapar loggfrågor för Azure Monitor-data börjar du med Översikt över Log Analytics i Azure Monitor - och Loggfrågor i Azure Monitor.

Grundläggande frågestruktur

Alla omvandlingsfrågor börjar med source, vilket är en virtuell tabell som representerar indataströmmen. Du kan sedan använda alla KQL-operatorer som stöds för att filtrera, ändra eller lägga till kolumner i data på samma sätt som med andra tabeller. Frågan tillämpas individuellt på varje post som skickas av datakällan.

Frågans utdata måste matcha schemat för måltabellen med följande överväganden:

  • Du kan utelämna kolumner som inte ska fyllas i. Kolumnen är tom för posten i måltabellen.
  • Se till att undanta alla kolumner som inte ingår i utdatatabellen. Data accepteras utan fel, men du debiteras för inmatning av extra data även om de inte lagras.
  • Utdata för varje transformering måste innehålla en giltig tidsstämpel i en kolumn som heter TimeGenerated av typen datetime. Om datakällan inte innehåller den här egenskapen kan du lägga till den i omvandlingen med extend eller project.

Följande är ett exempel på en transformering som utför flera funktioner:

  • Filtrerar inkommande data med en where instruktion.
  • Lägger till en ny kolumn med operatorn extend .
  • Formaterar utdata så att de matchar kolumnerna i måltabellen med operatorn project .
source  
| where severity == "Critical" 
| extend Properties = parse_json(properties)
| project
    TimeGenerated = todatetime(["time"]),
    Category = category,
    StatusDescription = StatusDescription,
    EventName = name,
    EventId = tostring(Properties.EventId)

Kommentar

Se EXEMPEL och scenarier för datainsamlingsregel (DCR) i Azure Monitor för olika exempel för olika scenarier.

Skapa transformeringsfrågan

Innan du skapar eller redigerar den DCR som ska inkludera din transformering måste du skapa och testa transformeringsfrågan. Du gör vanligtvis detta genom att köra testfrågor mot befintliga data eller testdata. När du får önskat resultat kan du ersätta tabellnamnet med source och klistra in det i din DCR enligt beskrivningen nedan i Lägg till transformering till DCR.

Viktigt!

Transformeringar stöder inte alla KQL-funktioner. Se KQL-funktioner som stöds i Azure Monitor-transformeringar för funktioner och begränsningar som stöds.

Om du till exempel skapar en transformering för att filtrera Syslog-händelser kan du börja med följande fråga som du kan köra i Log Analytics.

Syslog | where SeverityLevel != 'info'

Du kan klistra in den här frågan i din DCR och sedan ändra tabellnamnet till source.

source | where SeverityLevel != 'info'

Använd någon av följande strategier för data som ska användas för att testa din fråga.

  • Om du redan samlar in de data som du vill transformera kan du använda Log Analytics för att skriva en fråga som filtrerar eller ändrar data efter behov. Kopiera frågetexten och klistra in den i din DCR.
  • Använd Log Analytics för att skriva din fråga med operatorn datatable för att skapa en exempeldatauppsättning som representerar dina inkommande data. Kopiera frågetexten utan operatorn datatable och klistra in den i din DCR.
  • Använd processen för att skapa en ny tabell i Azure Portal och tillhandahålla exempeldata. Använd det inkluderade gränssnittet för att skapa och testa omvandlingsfrågan. Kopiera antingen frågetexten och klistra in den i domänkontrollanten eller slutför processen och redigera sedan DCR för att kopiera transformeringsfrågan. Du kan sedan ta bort den nya tabellen om du inte behöver den.

Lägga till transformering i DCR

När du har din transformeringsfråga kan du lägga till den i en DCR. Använd vägledningen i Skapa och redigera regler för datainsamling (DCR) i Azure Monitor för att skapa eller redigera DCR med hjälp av informationen i det här avsnittet för att inkludera transformeringsfrågan i DCR-definitionen.

Kommentar

Vissa datakällor tillhandahåller en metod som använder Azure Portal för att lägga till en transformering till en DCR. Om du till exempel samlar in en text från en virtuell dator kan du ange en transformeringsfråga i Azure Portal. De flesta datainsamlingsscenarier kräver dock för närvarande att du arbetar direkt med DCR-definitionen för att lägga till en transformering. Det är den process som beskrivs i det här avsnittet.

Transformeringsfrågan anges i transformKql egenskapen i avsnittet Dataflöde s i DCR. Det här är avsnittet som kopplar ihop en datakälla med ett mål. Omvandlingen tillämpas på den inkommande dataströmmen för dataflödet innan den skickas till målet. Det gäller endast för dataflödet även om samma ström eller mål används i andra dataflöden.

Om egenskapen transformKql utelämnas, eller om dess värde bara sourceär , tillämpas ingen transformering och inkommande data skickas till målet utan ändringar.

Viktigt!

Transformeringsfrågan måste finnas på en enda rad i DCR. Om du skapar omvandlingen i Azure Portal kan du använda flera rader för läsbarhet och \n inkluderas i frågan för varje ny rad.

I följande exempel finns det ingen transformKql egenskap, så inkommande data skickas till målet utan ändringar.

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

I följande exempel transformKql har en enkel fråga av source, så inkommande data skickas till målet utan ändringar. Dess funktioner är identiska med föregående exempel.

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

I följande exempel transformKql har en fråga som filtrerar data, så endast felmeddelanden skickas till målet.

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

Skapa dcr för arbetsytetransformering

Datainsamlingsregeln för arbetsytetransformering (DCR) är en särskild DCR som tillämpas direkt på en Log Analytics-arbetsyta. Det kan bara finnas en DCR för arbetsytetransformering för varje arbetsyta, men den kan innehålla transformeringar för valfritt antal tabeller.

Använd någon av följande metoder för att skapa en DCR för arbetsytetransformering för din arbetsyta och lägga till en eller flera transformeringar i den.

Du kan skapa en DCR för arbetsytetransformering i Azure Portal genom att lägga till en transformering i en tabell som stöds.

  1. På menyn Log Analytics-arbetsytor i Azure Portal väljer du Tabeller. Klicka till höger om tabellen som du är intresserad av och välj Skapa transformering.

    Skärmbild som visar alternativet att skapa en transformering för en tabell i Azure Portal.

  2. Om dcr för arbetsytetransformeringen inte redan har skapats för den här arbetsytan väljer du alternativet för att skapa en. Om den redan har skapats väljs den domänkontrollanten redan. Varje arbetsytor kan bara ha en dcr för arbetsytetransformering.

    Skärmbild som visar hur du skapar en ny regel för datainsamling.

  3. Välj Nästa för att visa exempeldata från tabellen. Klicka på Transformeringsredigeraren för att definiera transformeringsfrågan.

    Skärmbild som visar exempeldata från loggtabellen.

  4. Du kan sedan redigera och köra transformeringsfrågan för att se resultatet mot faktiska data från tabellen. Fortsätt att ändra och testa frågan tills du får önskat resultat.

  5. När du är nöjd med frågan klickar du på Använd och sedan på Nästa och Skapa för att spara DCR med din nya transformering.

    Skärmbild som visar hur du sparar omvandlingen.

Optimera och övervaka transformeringar

Transformeringar kör en KQL-fråga mot varje post som samlas in med DCR, så det är viktigt att de körs effektivt. Omvandlingens körningstid bidrar till den totala svarstiden för datainmatning, och omvandlingar som tar för lång tid att köra kan påverka prestandan för datainsamlingspipelinen och resultera i dataförlust. Optimala transformeringar bör inte ta mer än 1 sekund att köra. Se Optimera loggfrågor i Azure Monitor för vägledning om hur du testar din fråga innan du implementerar den som en transformering och för rekommendationer om hur du optimerar frågor som inte körs effektivt.

Viktigt!

Du kan uppleva dataförlust om en transformering tar mer än 20 sekunder.

Eftersom transformeringar inte körs interaktivt är det viktigt att kontinuerligt övervaka dem för att säkerställa att de körs korrekt och inte tar för lång tid att bearbeta data. Mer information om loggar och mått som övervakar hälsotillstånd och prestanda för transformeringar finns i Övervaka och felsöka DCR-datainsamling i Azure Monitor . Detta inkluderar att identifiera eventuella fel som inträffar i KQL och mått för att spåra deras körningstid.

Följande mått samlas in automatiskt för transformeringar och bör granskas regelbundet för att verifiera att dina transformeringar fortfarande körs som förväntat. Skapa måttaviseringsregler som ska meddelas automatiskt när ett av dessa mått överskrider ett tröskelvärde.

  • Loggomvandlingens varaktighet per min
  • Loggomvandlingsfel per min

Aktivera DCR-felloggar för att spåra eventuella fel som inträffar i dina transformeringar eller andra frågor. Skapa en loggaviseringsregel som ska meddelas automatiskt när en post skrivs till den här tabellen.

Vägledning

Det finns flera metoder för att skapa transformeringar beroende på datainsamlingsmetoden. I följande tabell visas vägledning för olika metoder för att skapa transformeringar.

Datainsamling Referens
Loggar inmatnings-API Skicka data till Azure Monitor-loggar med hjälp av REST API (Azure Portal)
Skicka data till Azure Monitor-loggar med hjälp av REST API (Azure Resource Manager-mallar)
Virtuell dator med Azure Monitor-agent Lägga till transformering i Azure Monitor-loggen
Kubernetes-kluster med containerinsikter Datatransformeringar i Container Insights
Azure Event Hubs Självstudie: Mata in händelser från Azure Event Hubs i Azure Monitor-loggar (offentlig förhandsversion)

Nästa steg