Exempel på datainsamlingsregel (DCR) i Azure Monitor
Den här artikeln innehåller exempel på regler för datainsamling (DCR) 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 när du behöver arbeta med DCR-definitionen för att utföra mer avancerade konfigurationer eller för att automatisera skapandet av dcrs.
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.
Kommentar
De här exemplen visar i den här artikeln den JSON-källa som krävs för att skapa DCR. När domänkontrollanten har skapats har den ytterligare egenskaper enligt beskrivningen i Strukturen för en datainsamlingsregel i Azure Monitor.
DCR:ar för Azure Monitor-agent
Azure Monitor-agenten körs på virtuella datorer, vm-skalningsuppsättningar och Kubernetes-kluster. Den stöder VM-insikter och containerinsikter och stöder olika datainsamlingsscenarier för virtuella datorer som beskrivs i Azure Monitor-agentens datainsamling.
Följande exempel visar DCR:er för insamling av olika typer av data med hjälp av Azure Monitor-agenten.
Windows-händelser
DCR för Windows-händelser använder windowsEventLogs
datakällan med den Microsoft-Event
inkommande 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 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 hos agenten så mycket som möjligt för effektivitet och för att undvika potentiella inmatningsavgifter.
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
source
som 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:er 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 transformering till dataFlows
egenskapen för ytterligare funktioner 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 vid för att undvika potentiella inmatningsavgifter.
Följande dcr-exempel utför följande åtgärder:
- Samlar in alla händelser från
cron
anläggningen. Warning
Samlar in och högre evenemang frånsyslog
ochdaemon
anläggningar.- Skickar data till Syslog-tabellen på arbetsytan.
- Använder en enkel transformering av en
source
som 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:er för prestandadata använder performanceCounters
datakällan med inkommande Microsoft-InsightsMetrics
data och Microsoft-Perf
strömmar. 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 transformering till dataFlows
egenskapen för Microsoft-Perf
ytterligare funktioner och för att ytterligare filtrera data, men du bör bara välja de räknare som du behöver för counterSpecifiers
effektivitet vid för att undvika potentiella inmatningsavgifter.
Följande dcr-exempel utför följande åtgärder:
- Samlar in uppsättning prestandaräknare var 60:e sekund och en annan uppsättning var 30:e sekund.
- Skickar data till Azure Monitor Metrics och en Log Analytics-arbetsyta.
- Använder en enkel transformering av en
source
som 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 med kolumnerna för streamDeclarations
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
.txt
ic:\logs
mappen på 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 utdata från omvandlingen. - Samlar in textloggen och
Computer
enligt beskrivningenFilePath
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 med kolumnerna för streamDeclarations
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
.json
ic:\logs
mappen på 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 itransformKql
egenskapen 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 skickar data till händelsehubbar eller lagringskonton använder samma datakällor som andra domänkontrollanter som samlar in data med Azure Monitor-agenten (AMA), men har ett eller flera av följande mål. Mer information finns i Skicka data till Event Hubs och Storage (förhandsversion ).
eventHubsDirect
storageBlobsDirect
storageTablesDirect
Kommentar
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"
]
},
]
}
}
Loggar inmatnings-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_CL
i en arbetsyta med namnetmy-workspace
. Innan du installerar den här DOMÄNKONTROLLanten måste du skapa tabellen med följande kolumner:- TimeGenerated
- Dator
- AdditionalContext
- 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/cefingestion/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 arbetsytetransformering har ett tomt datasources
avsnitt eftersom transformeringarna tillämpas på alla data som skickas till tabeller som stöds på 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
LAQueryLogs
som filtrerar bort frågor i själva tabellen och lägger till en kolumn med arbetsytans namn. - Transformering för tabellen
Event
som filtrerar bort informationshändelser och tarParameterXml
bort kolumnen. 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 domänkontrollanter och konfigurerar ditt program för att skicka data till var och en.
Följande exempel filtrerar poster som skickas till händelsetabellen 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.
Kommentar
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"
}
]
}
}