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.
Den här artikeln innehåller DCR-definitioner (Exempel på datainsamlingsregler) för vanliga scenarier för datainsamling i Azure Monitor. Du kan ändra dessa DCR-definitioner efter behov för din miljö och skapa DCR med hjälp av vägledningen i Skapa eller redigera en datainsamlingsregel. Du kan också använda och kombinera de grundläggande strategierna i dessa exempel för att skapa domänkontrollanter för andra scenarier.
Dessa exempel kräver kunskap om DCR-strukturen enligt beskrivningen i Strukturen för en datainsamlingsregel i Azure Monitor. Flera kan konfigureras med hjälp av Azure Portal utan detaljerad kunskap om DCR-strukturen. Använd de här exemplen som utgångspunkt om du vill hantera domänkontrollanter med metoder utanför Azure-portalen, till exempel ARM, CLI och PowerShell. Du kan behöva använda dessa metoder för att redigera befintliga DCR:er för att implementera avancerade funktioner som transformationer.
Vart och ett av dessa exempel fokuserar på en viss datakälla, även om du kan kombinera flera datakällor av olika typer i en enda DCR. Inkludera ett dataflöde för var och en för att skicka data till rätt mål. Det finns ingen funktionell skillnad mellan att kombinera flera datakällor i en enda DCR eller att skapa separata DCR:er för varje datakälla. Valet beror på dina krav för att hantera och övervaka datainsamlingen.
Anmärkning
Exemplen som visas i den här artikeln anger den JSON-källa som krävs för att skapa DCR. Efter att datainsamlingsregeln har skapats kommer den att ha ytterligare egenskaper så som beskrivs i Strukturen för en datainsamlingsregel i Azure Monitor.
Samla in VM-klientdata
Följande exempel visar DCR-definitioner för insamling av olika typer av data från virtuella datorer med hjälp av Azure Monitor-agenten. Du kan skapa dessa DCR:er med hjälp av Azure-portalen enligt beskrivningen i Samla in data från VM klient med Azure Monitor.
Windows-händelser
DCR för Windows-händelser använder datakällan windowsEventLogs med den inkommande strömmen Microsoft-Event. Schemat för den här strömmen är känt, så det behöver inte definieras i avsnittet dataSources . De händelser som ska samlas in anges i egenskapen xPathQueries . Mer information om hur du använder XPaths för att filtrera specifika data som du vill samla in finns i Samla in Windows-händelser med Azure Monitor Agent . För att komma igång kan du använda vägledningen i den artikeln för att skapa en DCR med hjälp av Azure Portal och sedan inspektera JSON med hjälp av vägledningen i DCR-definitionen.
Du kan lägga till en transformering till dataFlows-egenskapen för beräknade kolumner och för att ytterligare filtrera data, men du bör använda XPaths för att filtrera data vid agenten så mycket som möjligt av effektivitets- och kostnadsskäl samt för att undvika potentiella dataöverföringsavgifter.
Följande dcr-exempel utför följande åtgärder:
- Samlar in Windows-program- och systemhändelser med felnivån Varning, Fel eller Kritisk.
- Skickar data till händelsetabellen på arbetsytan.
- Använder en enkel transformering av en
sourcesom inte ändrar inkommande data.
{
"location": "eastus",
"properties": {
"dataSources": {
"windowsEventLogs": [
{
"name": "eventLogsDataSource",
"streams": [
"Microsoft-Event"
],
"xPathQueries": [
"System!*[System[(Level = 1 or Level = 2 or Level = 3)]]",
"Application!*[System[(Level = 1 or Level = 2 or Level = 3)]]"
]
}
]
},
"destinations": {
"logAnalytics": [
{
"workspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace",
"name": "centralWorkspace"
}
]
},
"dataFlows": [
{
"streams": [
"Microsoft-Event"
],
"destinations": [
"centralWorkspace"
],
"transformKql": "source",
"outputStream": "Microsoft-Event"
}
]
}
}
Syslog-händelser
DCR:ar för Syslog-händelser använder syslog-datakällan med den inkommande Microsoft-Syslog-strömmen. Schemat för den här strömmen är känt, så det behöver inte definieras i avsnittet dataSources . De händelser som ska samlas in anges i facilityNames egenskaperna och logLevels . Mer information finns i Samla in Syslog-händelser med Azure Monitor Agent . För att komma igång kan du använda vägledningen i den artikeln för att skapa en DCR med hjälp av Azure Portal och sedan inspektera JSON med hjälp av vägledningen i DCR-definitionen.
Du kan lägga till en transformation till dataFlows-egenskapen för mer funktionalitet och för att ytterligare filtrera data, men du bör använda facilityNames och logLevels för att filtrera så mycket som möjligt för effektivitet och undvika potentiella inmatningsavgifter.
Följande dcr-exempel utför följande åtgärder:
- Samlar in alla händelser från
cronanläggningen. - Samlar in evenemang från och över
Warninganläggningar påsyslogochdaemon. - Skickar data till Syslog-tabellen på arbetsytan.
- Använder en enkel transformering av en
sourcesom inte ändrar inkommande data.
{
"location": "eastus",
"properties": {
"dataSources": {
"syslog": [
{
"name": "cronSyslog",
"streams": [
"Microsoft-Syslog"
],
"facilityNames": [
"cron"
],
"logLevels": [
"Debug",
"Info",
"Notice",
"Warning",
"Error",
"Critical",
"Alert",
"Emergency"
]
},
{
"name": "syslogBase",
"streams": [
"Microsoft-Syslog"
],
"facilityNames": [
"daemon",
"syslog"
],
"logLevels": [
"Warning",
"Error",
"Critical",
"Alert",
"Emergency"
]
}
]
},
"destinations": {
"logAnalytics": [
{
"workspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace",
"name": "centralWorkspace"
}
]
},
"dataFlows": [
{
"streams": [
"Microsoft-Syslog"
],
"destinations": [
"centralWorkspace"
],
"transformKql": "source",
"outputStream": "Microsoft-Syslog"
}
]
}
}
Prestandaräknare
DCR:erna för prestandadata använder performanceCounters som datakälla med de inkommande Microsoft-InsightsMetrics- och Microsoft-Perf-strömmarna.
Microsoft-InsightsMetrics används för att skicka data till Azure Monitor Metrics, medan Microsoft-Perf används för att skicka data till en Log Analytics-arbetsyta. Du kan inkludera båda datakällorna i DCR om du skickar prestandadata till båda destinationerna. Scheman för dessa strömmar är kända, så de behöver inte definieras i avsnittet dataSources .
Prestandaräknarna som ska samlas in anges i egenskapen counterSpecifiers . Mer information finns i Samla in prestandaräknare med Azure Monitor Agent . För att komma igång kan du använda vägledningen i den artikeln för att skapa en DCR med hjälp av Azure Portal och sedan inspektera JSON med hjälp av vägledningen i DCR-definitionen.
Du kan lägga till en transformation av dataFlows-egenskapen för att få ytterligare funktionalitet med Microsoft-Perf och för att ytterligare filtrera data, men du bör bara välja de räknare du behöver i counterSpecifiers för effektivitet och för att undvika potentiella inmatningsavgifter.
Följande dcr-exempel utför följande åtgärder:
- Samlar in en prestandaräknaruppsättning var 60:e sekund och ytterligare en var 30:e sekund.
- Skickar data till Azure Monitor Metrics och en Log Analytics-arbetsyta.
- Använder en enkel transformering av en
sourcesom inte ändrar inkommande data.
{
"location": "eastus",
"properties": {
"dataSources": {
"performanceCounters": [
{
"name": "perfCounterDataSource60",
"streams": [
"Microsoft-Perf",
"Microsoft-InsightsMetrics"
],
"samplingFrequencyInSeconds": 60,
"counterSpecifiers": [
"\\Processor(_Total)\\% Processor Time",
"\\Memory\\Committed Bytes",
"\\LogicalDisk(_Total)\\Free Megabytes",
"\\PhysicalDisk(_Total)\\Avg. Disk Queue Length"
]
},
{
"name": "perfCounterDataSource30",
"streams": [
"Microsoft-Perf"
],
"samplingFrequencyInSeconds": 30,
"counterSpecifiers": [
"\\Process(_Total)\\Thread Count"
]
}
]
},
"destinations": {
"logAnalytics": [
{
"workspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace",
"name": "centralWorkspace"
}
],
"azureMonitorMetrics":
{
"name": "azureMonitorMetrics-default"
}
},
"dataFlows": [
{
"streams": [
"Microsoft-Perf"
],
"destinations": [
"centralWorkspace"
],
"transformKql": "source",
"outputStream": "Microsoft-Perf"
},
{
"streams": [
"Microsoft-Perf"
],
"destinations": [
"azureMonitorMetrics-default"
],
"outputStream": "Microsoft-InsightsMetrics"
}
]
}
}
Textloggar
DCR:er för textloggar har en logfiles datakälla som innehåller information om de loggfiler som ska samlas in av agenten. Detta inkluderar namnet på en ström som måste definieras i streamDeclarations med kolumnerna av inkommande data. Det här är för närvarande en uppsättningslista enligt beskrivningen i Samla in loggar från en textfil med Azure Monitor Agent.
Lägg till en transformering i dataFlows egenskapen för att filtrera bort poster som du inte vill samla in och formatera data så att de matchar schemat för måltabellen. Ett vanligt scenario är att parsa en avgränsad loggfil i flera kolumner enligt beskrivningen i Avgränsade loggfiler.
Följande dcr-exempel utför följande åtgärder:
- Samlar in poster från alla filer med tillägget
.txti mappenc:\logspå agentdatorn. - Använder en transformering för att dela upp inkommande data i kolumner baserat på en kommaavgränsare (
,). Den här omvandlingen är specifik för loggfilens format och måste justeras för loggfiler med andra format. - Skickar de insamlade loggarna till en anpassad tabell med namnet
MyTable_CL. Den här tabellen måste redan finnas och ha kolumnerna som genereras av omvandlingen. - Samlar in
FilePathochComputerför textloggen enligt beskrivningen i Inkommande ström. Dessa kolumner måste också finnas i måltabellen.
{
"location": "eastus",
"properties": {
"dataCollectionEndpointId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.Insights/dataCollectionEndpoints/my-dce",
"streamDeclarations": {
"Custom-MyLogFileFormat": {
"columns": [
{
"name": "TimeGenerated",
"type": "datetime"
},
{
"name": "RawData",
"type": "string"
},
{
"name": "FilePath",
"type": "string"
},
{
"name": "Computer",
"type": "string"
}
]
}
},
"dataSources": {
"logFiles": [
{
"streams": [
"Custom-MyLogFileFormat"
],
"filePatterns": [
"C:\\logs\\*.txt"
],
"format": "text",
"settings": {
"text": {
"recordStartTimestampFormat": "ISO 8601"
}
},
"name": "myLogFileFormat-Windows"
}
]
},
"destinations": {
"logAnalytics": [
{
"workspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace",
"name": "MyDestination"
}
]
},
"dataFlows": [
{
"streams": [
"Custom-MyLogFileFormat"
],
"destinations": [
"MyDestination"
],
"transformKql": "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])",
"outputStream": "Custom-MyTable_CL"
}
]
}
}
JSON-loggar
DCR:er för Json-loggar har en logfiles datakälla som innehåller information om de loggfiler som ska samlas in av agenten. Detta inkluderar namnet på en ström som måste definieras i streamDeclarations med kolumnerna av inkommande data. Mer information finns i Samla in loggar från en JSON-fil med Azure Monitor Agent .
Lägg till en transformering i dataFlows egenskapen för att filtrera bort poster som du inte vill samla in och formatera data så att de matchar schemat för måltabellen.
Följande dcr-exempel utför följande åtgärder:
- Samlar in poster från alla filer med tillägget
.jsoni mappenc:\logspå agentdatorn. Filen måste formateras i json och ha kolumnerna listade i strömdeklarationen. - Skickar de insamlade loggarna till en anpassad tabell med namnet
MyTable_CL. Den här tabellen måste redan finnas och ha samma kolumner som den inkommande strömmen. Om kolumnerna inte matchar måste du ändra omvandlingen itransformKqlegenskapen för att formatera data för måltabellen.
{
"location": "eastus",
"properties": {
"dataCollectionEndpointId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.Insights/dataCollectionEndpoints/my-dce",
"streamDeclarations": {
"Custom-Json-stream": {
"columns": [
{
"name": "TimeGenerated",
"type": "datetime"
},
{
"name": "FilePath",
"type": "string"
},
{
"name": "Code",
"type": "int"
},
{
"name": "Module",
"type": "string"
},
{
"name": "Message",
"type": "string"
}
]
}
},
"dataSources": {
"logFiles": [
{
"streams": [
"Custom-Json-stream"
],
"filePatterns": [
"C:\\logs\\*.json"
],
"format": "json",
"name": "MyJsonFile"
}
]
},
"destinations": {
"logAnalytics": [
{
"workspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace",
"name": "MyDestination"
}
]
},
"dataFlows": [
{
"streams": [
"Custom-Json-stream"
],
"destinations": [
"MyDestination"
],
"transformKql": "source",
"outputStream": "Custom-MyTable_CL"
}
]
}
}
Skicka data till Event Hubs eller Storage
DCR:er som överför data till händelsehubbar eller lagringskonton använder samma datakällor som andra DCR:er som samlar in data med Azure Monitor-agenten (AMA), men har en eller flera av följande destinationer. Mer information finns i Skicka data till Event Hubs och Storage (förhandsversion ).
eventHubsDirectstorageBlobsDirectstorageTablesDirect
Anmärkning
DCR:ar som skickar data till händelsehubbar eller lagringskonton måste ha "kind": "AgentDirectToStore"
Följande dcr-exempel utför följande åtgärder:
- Samlar in prestandaräknare och Windows-händelser från Windows-datorer med Azure Monitor-agenten (AMA).
- Skickar data till händelsehubb, bloblagring och tabelllagring.
{
"location": "eastus",
"kind": "AgentDirectToStore",
"properties": {
"dataSources": {
"performanceCounters": [
{
"streams": [
"Microsoft-Perf"
],
"samplingFrequencyInSeconds": 10,
"counterSpecifiers": [
"\\Process(_Total)\\Working Set - Private",
"\\Memory\\% Committed Bytes In Use",
"\\LogicalDisk(_Total)\\% Free Space",
"\\Network Interface(*)\\Bytes Total/sec"
],
"name": "perfCounterDataSource"
}
],
"windowsEventLogs": [
{
"streams": [
"Microsoft-Event"
],
"xPathQueries": [
"Application!*[System[(Level=2)]]",
"System!*[System[(Level=2)]]"
],
"name": "eventLogsDataSource"
}
]
},
"destinations": {
"eventHubsDirect": [
{
"eventHubResourceId": "/subscriptions/71b36fb6-4fe4-4664-9a7b-245dc62f2930/resourceGroups/my-resource-group/providers/Microsoft.EventHub/namespaces/my-eventhub-namespace/eventhubs/my-eventhub",
"name": "myEh"
}
],
"storageBlobsDirect": [
{
"storageAccountResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/my-resource-group/providers/Microsoft.Storage/storageAccounts/mystorageaccount",
"containerName": "myperfblob",
"name": "PerfBlob"
},
{
"storageAccountResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/my-resource-group/providers/Microsoft.Storage/storageAccounts/mystorageaccount",
"containerName": "myeventblob",
"name": "EventBlob"
}
],
"storageTablesDirect": [
{
"storageAccountResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/my-resource-group/providers/Microsoft.Storage/storageAccounts/mystorageaccount",
"containerName": "myperftable",
"name": "PerfTable"
},
{
"storageAccountResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/my-resource-group/providers/Microsoft.Storage/storageAccounts/mystorageaccount",
"containerName": "mymyeventtable",
"name": "EventTable"
}
]
},
"dataFlows": [
{
"streams": [
"Microsoft-Perf"
],
"destinations": [
"myEh",
"PerfBlob",
"PerfTable"
]
},
{
"streams": [
"Microsoft-Event"
],
"destinations": [
"myEh",
"EventBlob",
"EventTable"
]
},
]
}
}
Logginsamlings-API
DCR:er för API:et för logginmatning måste definiera schemat för den inkommande strömmen i avsnittet i streamDeclarations DCR-definitionen. Inkommande data måste formateras i JSON med ett schema som matchar kolumnerna i den här definitionen. Ingen transformering krävs om det här schemat matchar schemat för måltabellen. Om schemana inte matchar måste du lägga till en transformering i dataFlows egenskapen för att formatera data. Mer information finns i API för logginmatning i Azure Monitor .
Exempel-DCR nedan innehåller följande information:
- Skickar data till en tabell som heter
MyTable_CLi en arbetsyta med namnetmy-workspace. Innan du installerar denna DCR måste du skapa tabellen med följande kolumner:- Tidpunkt för generering
- Dator
- Ytterligare kontext
- ExtendedColumn (definieras i omvandlingen)
- Tillämpar en transformering på inkommande data för att formatera data för måltabellen.
Viktigt!
Det här exemplet inkluderar dataCollectionEndpointId inte egenskapen eftersom den skapas automatiskt när DCR skapas. Du behöver värdet för den här egenskapen eftersom det är den URL som programmet ska skicka data till. DCR måste ha kind:Direct för att den här egenskapen ska skapas. Mer information finns i Egenskaper .
{
"location": "eastus",
"kind": "Direct",
"properties": {
"streamDeclarations": {
"Custom-MyTable": {
"columns": [
{
"name": "Time",
"type": "datetime"
},
{
"name": "Computer",
"type": "string"
},
{
"name": "AdditionalContext",
"type": "string"
}
]
}
},
"destinations": {
"logAnalytics": [
{
"workspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/microsoft.operationalinsights/workspaces/my-workspace",
"name": "LogAnalyticsDest"
}
]
},
"dataFlows": [
{
"streams": [
"Custom-MyTable"
],
"destinations": [
"LogAnalyticsDest"
],
"transformKql": "source | extend jsonContext = parse_json(AdditionalContext) | project TimeGenerated = Time, Computer, AdditionalContext = jsonContext, ExtendedColumn=tostring(jsonContext.CounterName)",
"outputStream": "Custom-MyTable_CL"
}
]
}
}
DCR för arbetsytetransformering
DCR:er för arbetsyteomvandling har ett tomt datasources-avsnitt eftersom omvandlingarna tillämpas på all data som skickas till stödda tabeller i arbetsytan. Den måste innehålla en enda post för workspaceResourceId och en post i dataFlows för varje tabell med en transformering. Den måste också ha "kind": "WorkspaceTransforms".
Exempel-DCR nedan innehåller följande information:
- Transformering för tabellen
LAQueryLogssom filtrerar bort frågor i själva tabellen och lägger till en kolumn med arbetsytans namn. - Transformation för tabellen
Eventsom filtrerar bort informationshändelser och tar bort kolumnenParameterXml. Detta gäller endast för data som kommer från den inaktuella Log Analytics-agenten och inte Azure Monitor-agenten enligt beskrivningen i DCR för arbetsytetransformering.
{
"kind": "WorkspaceTransforms",
"location": "eastus",
"properties": {
"dataSources": {},
"destinations": {
"logAnalytics": [
{
"workspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace",
"name": "clv2ws1"
}
]
},
"dataFlows": [
{
"streams": [
"Microsoft-Table-LAQueryLogs"
],
"destinations": [
"clv2ws1"
],
"transformKql": "source | where QueryText !contains 'LAQueryLogs' | extend Context = parse_json(RequestContext) | extend Workspace_CF = tostring(Context['workspaces'][0]) | project-away RequestContext, Context"
},
{
"streams": [
"Microsoft-Table-Event"
],
"destinations": [
"clv2ws1"
],
"transformKql": "source | where EventLevelName in ('Error', 'Critical', 'Warning') | project-away ParameterXml"
}
]
}
}
Skicka data till flera tabeller
Det finns flera orsaker till varför du kanske vill skicka data från en enda datakälla till flera tabeller på samma Log Analytics-arbetsyta, inklusive följande:
- Spara inmatningskostnader genom att skicka poster som används för tillfällig felsökning till en grundläggande loggtabell.
- Skicka poster eller kolumner med känsliga data till en tabell med olika behörigheter eller kvarhållningsinställningar.
Om du vill skicka data från en enda datakälla till flera tabeller skapar du flera dataflöden i DCR med en unik transformeringsfråga och utdatatabell för var och en enligt följande diagram.
Viktigt!
För närvarande måste tabellerna i DCR finnas på samma Log Analytics-arbetsyta. Om du vill skicka till flera arbetsytor från en enda datakälla använder du flera datainsamlingsregler (DCR:er) och konfigurerar ditt program för att skicka data till varje arbetsyta.
Följande exempel filtrerar poster som skickas till Event-tabellen av Azure Monitor-agenten. Endast varnings- och felhändelser skickas till tabellen Händelse. Andra händelser skickas till en kopia av händelsetabellen med namnet Event_CL som har konfigurerats för grundläggande loggar.
Anmärkning
Det här exemplet kräver en kopia av den händelsetabell som skapats på samma arbetsyta med namnet Event_CL.
{
"location": "eastus",
"properties": {
"dataSources": {
"windowsEventLogs": [
{
"name": "eventLogsDataSource",
"streams": [
"Microsoft-Event"
],
"xPathQueries": [
"System!*[System[(Level = 1 or Level = 2 or Level = 3)]]",
"Application!*[System[(Level = 1 or Level = 2 or Level = 3)]]"
]
}
]
},
"destinations": {
"logAnalytics": [
{
"workspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace",
"name": "MyDestination"
}
]
},
"dataFlows": [
{
"streams": [
"Microsoft-Event"
],
"destinations": [
"MyDestination"
],
"transformKql": "source | where EventLevelName in ('Error', 'Warning')",
"outputStream": "Microsoft-Event"
},
{
"streams": [
"Microsoft-Event"
],
"destinations": [
"MyDestination"
],
"transformKql": "source | where EventLevelName !in ('Error', 'Warning')",
"outputStream": "Custom-Event_CL"
}
]
}
}