Skapa en måttavisering i Azure Monitor-loggar
Kommentar
Vi rekommenderar att du använder Azure Az PowerShell-modulen för att interagera med Azure. Se Installera Azure PowerShell för att komma igång. Information om hur du migrerar till Az PowerShell-modulen finns i artikeln om att migrera Azure PowerShell från AzureRM till Az.
Du kan använda måttaviseringsfunktioner i en fördefinierad uppsättning loggar i Azure Monitor-loggar. De övervakade loggarna, som kan samlas in från Azure eller lokala datorer, konverteras till mått och övervakas sedan med måttaviseringsregler, precis som andra mått.
En Log Analytics-arbetsyta stöder följande loggtyper:
- Prestandaräknare för Windows- och Linux-datorer (motsvarande de Log Analytics-arbetsytemått som stöds)
- Pulsslagsposter för Agenthälsa
- Uppdatera hanteringsposter
- Händelsedataloggar
Fördelarna med att använda måttaviseringar för loggar över frågebaserade loggsökningsaviseringar i Azure är:
- Måttaviseringar erbjuder en övervakningsfunktion i nära realtid. De förgrenar data från loggkällan för att säkerställa den här funktionen.
- Måttaviseringar är tillståndskänsliga. De meddelar dig en gång när en avisering utlöses och en gång när aviseringen har lösts. Loggsökningsaviseringar är tillståndslösa och fortsätter att aktiveras vid varje intervall om aviseringsvillkoret uppfylls.
- Måttaviseringar ger flera dimensioner. De tillåter filtrering till specifika värden som datorer och os-typer utan att du behöver definiera en komplex fråga i Log Analytics.
Kommentar
Ett specifikt mått eller en viss dimension visas endast om data för det finns under den valda perioden. Dessa mått är tillgängliga för kunder som har Log Analytics-arbetsytor.
Mått och dimensioner som stöds för loggar
Med måttaviseringar kan du använda dimensioner för att filtrera måttet till rätt nivå. Den fullständiga listan över mått som stöds för loggar motsvarar listan över Log Analytics-arbetsytemått.
Kommentar
Om du vill visa ett mått som stöds som extraheras från en Log Analytics-arbetsyta via Azure Monitor-mått måste du skapa en måttavisering för loggar på det specifika måttet. De dimensioner som du väljer i måttaviseringen för loggar visas endast för utforskning via Azure Monitor-mått.
Skapa en måttavisering för loggar
Innan måttdata från populära loggar bearbetas i Log Analytics skickas de till Azure Monitor-mått. Du kan sedan dra nytta av funktionerna i måttplattformen utöver måttaviseringar, inklusive att ha aviseringar med en frekvens så låg som en minut.
Processen för att skapa måttaviseringar för loggar är två utdelade:
- Skapa en regel för att extrahera mått från loggar som stöds med hjälp av API:et schemalagda frågeregler (
scheduledQueryRules
). - Skapa en måttavisering för måttet som extraherats från loggen (i steg 1) och Log Analytics-arbetsytan som målresurs.
Förutsättningar
Innan du skapar en måttavisering för loggar kontrollerar du att följande objekt är konfigurerade och tillgängliga:
- Log Analytics-arbetsyta: Du måste ha en giltig och aktiv Log Analytics-arbetsyta. Mer information finns i Skapa en Log Analytics-arbetsyta.
- Agent konfigurerad för Log Analytics-arbetsytan: Du måste konfigurera en agent för virtuella Azure-datorer eller lokala datorer för att skicka data till Log Analytics-arbetsytan. Mer information finns i Översikt över Azure Monitor Agent.
- Log Analytics-lösning som stöds: En Log Analytics-lösning ska konfigureras och skicka data till Log Analytics-arbetsytan. Lösningar som stöds är prestandaräknare för Windows och Linux, pulsslagsposter för Agent Health, Azure Automation Update Management och händelsedata.
- Loggar som konfigurerats för Log Analytics-lösningen: Log Analytics-lösningen bör ha de loggar och data som krävs som motsvarar mått som stöds för Log Analytics-arbetsytor aktiverade. Till exempel måste räknaren % tillgängligt minne konfigureras i prestandaräknarens lösning först.
Metoder för att skapa en måttavisering för loggar
Du kan skapa och hantera måttaviseringar med hjälp av Azure Portal, Azure Resource Manager-mallar, REST API, Azure PowerShell och Azure CLI.
När du har skapat måttaviseringar för loggar för en angiven Log Analytics-arbetsyta har de alla egenskaper och funktioner för måttaviseringar, inklusive nyttolastschema, tillämpliga kvotgränser och fakturerat pris.
Stegvis information och exempel finns i Skapa eller redigera en måttaviseringsregel. Följ anvisningarna för att hantera måttaviseringar och notera följande överväganden:
Målet för en måttavisering måste vara en giltig Log Analytics-arbetsyta.
Den signal som valts för en måttavisering för en vald Log Analytics-arbetsyta måste vara av typen Mått.
Du kan filtrera efter specifika villkor eller resurser med hjälp av dimensionsfilter, eftersom mått för loggar är flerdimensionella.
När du konfigurerar signallogik kan du skapa en enda avisering som sträcker sig över flera dimensionsvärden (till exempel dator).
När du skapar en måttavisering för loggar med hjälp av Azure Portal skapas automatiskt en motsvarande regel för att konvertera loggdata till ett mått via
scheduledQueryRules
i bakgrunden, utan att användaren behöver göra något.Om du inte använder Azure Portal för att skapa en måttavisering för en vald Log Analytics-arbetsyta måste du först manuellt skapa en explicit regel för att konvertera loggdata till ett mått med hjälp
scheduledQueryRules
av .
Resource Manager-mallar
Om du vill skapa en måttavisering för loggar kan du använda följande Resource Manager-exempelmallar.
För måttaviseringar för loggar som skapats med andra medel än Azure Portal kan du använda dessa exempelmallar för att skapa en scheduledQueryRules
-baserad konverteringsregel för logg-till-mått innan du skapar en måttavisering. Om du inte gör det finns det inga data för måttaviseringen i loggarna.
Måttavisering för loggar med ett statiskt tröskelvärde
I följande exempelmall beror skapandet av en måttavisering för ett statiskt tröskelvärde på att regeln har skapats för att extrahera mått från loggar via scheduledQueryRules
.
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"convertRuleName": {
"type": "string",
"minLength": 1,
"metadata": {
"description": "Name of the rule to convert a log to a metric"
}
},
"convertRuleDescription": {
"type": "string",
"minLength": 1,
"metadata": {
"description": "Description for the log converted to a metric."
}
},
"convertRuleRegion": {
"type": "string",
"minLength": 1,
"metadata": {
"description": "Name of the region used by the workspace."
}
},
"convertRuleStatus": {
"type": "string",
"defaultValue": "true",
"metadata": {
"description": "Specifies whether the log conversion rule is enabled."
}
},
"convertRuleMetric": {
"type": "string",
"minLength": 1,
"metadata": {
"description": "Name of the metric after extraction is done from logs."
}
},
"alertName": {
"type": "string",
"minLength": 1,
"metadata": {
"description": "Name of the alert."
}
},
"alertDescription": {
"type": "string",
"defaultValue": "This is a metric alert",
"metadata": {
"description": "Description of the alert."
}
},
"alertSeverity": {
"type": "int",
"defaultValue": 3,
"allowedValues": [
0,
1,
2,
3,
4
],
"metadata": {
"description": "Severity of the alert {0,1,2,3,4}."
}
},
"isEnabled": {
"type": "bool",
"defaultValue": true,
"metadata": {
"description": "Specifies whether the alert is enabled."
}
},
"resourceId": {
"type": "string",
"minLength": 1,
"metadata": {
"description": "Full resource ID of the resource emitting the metric that will be used for the comparison. For example: /subscriptions/00000000-0000-0000-0000-0000-00000000/resourceGroups/ResourceGroupName/providers/Microsoft.OperationalInsights/workspaces/workspaceName"
}
},
"metricName": {
"type": "string",
"minLength": 1,
"metadata": {
"description": "Name of the metric used in the comparison to activate the alert."
}
},
"operator": {
"type": "string",
"defaultValue": "GreaterThan",
"allowedValues": [
"Equals",
"NotEquals",
"GreaterThan",
"GreaterThanOrEqual",
"LessThan",
"LessThanOrEqual"
],
"metadata": {
"description": "Operator comparing the current value with the threshold value."
}
},
"threshold": {
"type": "string",
"defaultValue": "0",
"metadata": {
"description": "The threshold value at which the alert is activated."
}
},
"timeAggregation": {
"type": "string",
"defaultValue": "Average",
"allowedValues": [
"Average",
"Minimum",
"Maximum",
"Total"
],
"metadata": {
"description": "How the data that's collected should be combined over time."
}
},
"windowSize": {
"type": "string",
"defaultValue": "PT5M",
"metadata": {
"description": "Period of time used to monitor alert activity based on the threshold. Must be between five minutes and one day. ISO 8601 duration format."
}
},
"evaluationFrequency": {
"type": "string",
"defaultValue": "PT1M",
"metadata": {
"description": "How often the metric alert is evaluated, represented in ISO 8601 duration format."
}
},
"actionGroupId": {
"type": "string",
"defaultValue": "",
"metadata": {
"description": "The ID of the action group that's triggered when the alert is activated or deactivated."
}
}
},
"variables": {
"convertRuleSourceWorkspace": {
"SourceId": "/subscriptions/1234-56789-1234-567a/resourceGroups/resourceGroupName/providers/Microsoft.OperationalInsights/workspaces/workspaceName"
}
},
"resources": [
{
"name": "[parameters('convertRuleName')]",
"type": "Microsoft.Insights/scheduledQueryRules",
"apiVersion": "2018-04-16",
"location": "[parameters('convertRuleRegion')]",
"properties": {
"description": "[parameters('convertRuleDescription')]",
"enabled": "[parameters('convertRuleStatus')]",
"source": {
"dataSourceId": "[variables('convertRuleSourceWorkspace').SourceId]"
},
"action": {
"odata.type": "Microsoft.WindowsAzure.Management.Monitoring.Alerts.Models.Microsoft.AppInsights.Nexus.DataContracts.Resources.ScheduledQueryRules.LogToMetricAction",
"criteria": [{
"metricName": "[parameters('convertRuleMetric')]",
"dimensions": []
}
]
}
}
},
{
"name": "[parameters('alertName')]",
"type": "Microsoft.Insights/metricAlerts",
"location": "global",
"apiVersion": "2018-03-01",
"tags": {},
"dependsOn":["[resourceId('Microsoft.Insights/scheduledQueryRules',parameters('convertRuleName'))]"],
"properties": {
"description": "[parameters('alertDescription')]",
"severity": "[parameters('alertSeverity')]",
"enabled": "[parameters('isEnabled')]",
"scopes": ["[parameters('resourceId')]"],
"evaluationFrequency":"[parameters('evaluationFrequency')]",
"windowSize": "[parameters('windowSize')]",
"criteria": {
"odata.type": "Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria",
"allOf": [
{
"name" : "1st criterion",
"metricName": "[parameters('metricName')]",
"dimensions":[],
"operator": "[parameters('operator')]",
"threshold" : "[parameters('threshold')]",
"timeAggregation": "[parameters('timeAggregation')]"
}
]
},
"actions": [
{
"actionGroupId": "[parameters('actionGroupId')]"
}
]
}
}
]
}
Om du sparar föregående JSON som metricfromLogsAlertStatic.json kan du koppla den med en JSON-parameterfil för skapande baserat på en Resource Manager-mall. Här är en JSON-exempelparameterfil:
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"convertRuleName": {
"value": "TestLogtoMetricRule"
},
"convertRuleDescription": {
"value": "Test rule to extract metrics from logs via template"
},
"convertRuleRegion": {
"value": "West Central US"
},
"convertRuleStatus": {
"value": "true"
},
"convertRuleMetric": {
"value": "Average_% Idle Time"
},
"alertName": {
"value": "TestMetricAlertonLog"
},
"alertDescription": {
"value": "New multidimensional metric alert created via template"
},
"alertSeverity": {
"value":3
},
"isEnabled": {
"value": true
},
"resourceId": {
"value": "/subscriptions/1234-56789-1234-567a/resourceGroups/myRG/providers/Microsoft.OperationalInsights/workspaces/workspaceName"
},
"metricName":{
"value": "Average_% Idle Time"
},
"operator": {
"value": "GreaterThan"
},
"threshold":{
"value": "1"
},
"timeAggregation":{
"value": "Average"
},
"actionGroupId": {
"value": "/subscriptions/1234-56789-1234-567a/resourceGroups/myRG/providers/microsoft.insights/actionGroups/actionGroupName"
}
}
}
Om du har sparat den föregående parameterfilen som metricfromLogsAlertStatic.parameters.json kan du skapa måttaviseringar för loggar med hjälp av Resource Manager-mallen för att skapa i Azure Portal.
Du kan också använda det här Azure PowerShell-kommandot:
New-AzResourceGroupDeployment -ResourceGroupName "myRG" -TemplateFile metricfromLogsAlertStatic.json TemplateParameterFile metricfromLogsAlertStatic.parameters.json
Du kan också distribuera Resource Manager-mallen med hjälp av Azure CLI:
az deployment group create --resource-group myRG --template-file metricfromLogsAlertStatic.json --parameters @metricfromLogsAlertStatic.parameters.json
Måttavisering för loggar med dynamiska tröskelvärden
I följande exempelmall beror skapandet av en måttavisering för dynamiska tröskelvärden på att regeln har skapats för att extrahera mått från loggar via scheduledQueryRules
.
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"convertRuleName": {
"type": "string",
"minLength": 1,
"metadata": {
"description": "Name of the rule to convert a log to a metric."
}
},
"convertRuleDescription": {
"type": "string",
"minLength": 1,
"metadata": {
"description": "Description for the log converted to a metric."
}
},
"convertRuleRegion": {
"type": "string",
"minLength": 1,
"metadata": {
"description": "Name of the region used by the workspace."
}
},
"convertRuleStatus": {
"type": "string",
"defaultValue": "true",
"metadata": {
"description": "Specifies whether the log conversion rule is enabled."
}
},
"convertRuleMetric": {
"type": "string",
"minLength": 1,
"metadata": {
"description": "Name of the metric after extraction is done from logs."
}
},
"alertName": {
"type": "string",
"minLength": 1,
"metadata": {
"description": "Name of the alert."
}
},
"alertDescription": {
"type": "string",
"defaultValue": "This is a metric alert",
"metadata": {
"description": "Description of the alert."
}
},
"alertSeverity": {
"type": "int",
"defaultValue": 3,
"allowedValues": [
0,
1,
2,
3,
4
],
"metadata": {
"description": "Severity of the alert {0,1,2,3,4}."
}
},
"isEnabled": {
"type": "bool",
"defaultValue": true,
"metadata": {
"description": "Specifies whether the alert is enabled."
}
},
"resourceId": {
"type": "string",
"minLength": 1,
"metadata": {
"description": "Full resource ID of the resource emitting the metric that will be used for the comparison. For example: /subscriptions/00000000-0000-0000-0000-0000-00000000/resourceGroups/ResourceGroupName/providers/Microsoft.OperationalInsights/workspaces/workspaceName"
}
},
"metricName": {
"type": "string",
"minLength": 1,
"metadata": {
"description": "Name of the metric used in the comparison to activate the alert."
}
},
"operator": {
"type": "string",
"defaultValue": "GreaterOrLessThan",
"allowedValues": [
"GreaterThan",
"LessThan",
"GreaterOrLessThan"
],
"metadata": {
"description": "Operator comparing the current value with the threshold value."
}
},
"alertSensitivity": {
"type": "string",
"defaultValue": "Medium",
"allowedValues": [
"High",
"Medium",
"Low"
],
"metadata": {
"description": "Tunes how 'noisy' the alerts for dynamic thresholds will be. 'High' will result in more alerts. 'Low' will result in fewer alerts."
}
},
"numberOfEvaluationPeriods": {
"type": "string",
"defaultValue": "4",
"metadata": {
"description": "The number of periods to check in the alert evaluation."
}
},
"minFailingPeriodsToAlert": {
"type": "string",
"defaultValue": "3",
"metadata": {
"description": "The number of unhealthy periods to alert on (must be lower or equal to numberOfEvaluationPeriods)."
}
},
"timeAggregation": {
"type": "string",
"defaultValue": "Average",
"allowedValues": [
"Average",
"Minimum",
"Maximum",
"Total"
],
"metadata": {
"description": "How the data that's collected should be combined over time."
}
},
"windowSize": {
"type": "string",
"defaultValue": "PT5M",
"metadata": {
"description": "Period of time used to monitor alert activity based on the threshold. Must be between five minutes and one day. ISO 8601 duration format."
}
},
"evaluationFrequency": {
"type": "string",
"defaultValue": "PT1M",
"metadata": {
"description": "How often the metric alert is evaluated, represented in ISO 8601 duration format."
}
},
"actionGroupId": {
"type": "string",
"defaultValue": "",
"metadata": {
"description": "The ID of the action group that's triggered when the alert is activated or deactivated."
}
}
},
"variables": {
"convertRuleSourceWorkspace": {
"SourceId": "/subscriptions/1234-56789-1234-567a/resourceGroups/resourceGroupName/providers/Microsoft.OperationalInsights/workspaces/workspaceName"
}
},
"resources": [
{
"name": "[parameters('convertRuleName')]",
"type": "Microsoft.Insights/scheduledQueryRules",
"apiVersion": "2018-04-16",
"location": "[parameters('convertRuleRegion')]",
"properties": {
"description": "[parameters('convertRuleDescription')]",
"enabled": "[parameters('convertRuleStatus')]",
"source": {
"dataSourceId": "[variables('convertRuleSourceWorkspace').SourceId]"
},
"action": {
"odata.type": "Microsoft.WindowsAzure.Management.Monitoring.Alerts.Models.Microsoft.AppInsights.Nexus.DataContracts.Resources.ScheduledQueryRules.LogToMetricAction",
"criteria": [{
"metricName": "[parameters('convertRuleMetric')]",
"dimensions": []
}
]
}
}
},
{
"name": "[parameters('alertName')]",
"type": "Microsoft.Insights/metricAlerts",
"location": "global",
"apiVersion": "2018-03-01",
"tags": {},
"dependsOn":["[resourceId('Microsoft.Insights/scheduledQueryRules',parameters('convertRuleName'))]"],
"properties": {
"description": "[parameters('alertDescription')]",
"severity": "[parameters('alertSeverity')]",
"enabled": "[parameters('isEnabled')]",
"scopes": ["[parameters('resourceId')]"],
"evaluationFrequency":"[parameters('evaluationFrequency')]",
"windowSize": "[parameters('windowSize')]",
"criteria": {
"odata.type": "Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria",
"allOf": [
{
"criterionType": "DynamicThresholdCriterion",
"name" : "1st criterion",
"metricName": "[parameters('metricName')]",
"dimensions":[],
"operator": "[parameters('operator')]",
"alertSensitivity": "[parameters('alertSensitivity')]",
"failingPeriods": {
"numberOfEvaluationPeriods": "[parameters('numberOfEvaluationPeriods')]",
"minFailingPeriodsToAlert": "[parameters('minFailingPeriodsToAlert')]"
},
"timeAggregation": "[parameters('timeAggregation')]"
}
]
},
"actions": [
{
"actionGroupId": "[parameters('actionGroupId')]"
}
]
}
}
]
}
Om du sparar föregående JSON som metricfromLogsAlertDynamic.json kan du koppla den till en JSON-parameterfil för skapande baserat på en Resource Manager-mall. Här är en JSON-exempelparameterfil:
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"convertRuleName": {
"value": "TestLogtoMetricRule"
},
"convertRuleDescription": {
"value": "Test rule to extract metrics from logs via template"
},
"convertRuleRegion": {
"value": "West Central US"
},
"convertRuleStatus": {
"value": "true"
},
"convertRuleMetric": {
"value": "Average_% Idle Time"
},
"alertName": {
"value": "TestMetricAlertonLog"
},
"alertDescription": {
"value": "New multidimensional metric alert created via template"
},
"alertSeverity": {
"value":3
},
"isEnabled": {
"value": true
},
"resourceId": {
"value": "/subscriptions/1234-56789-1234-567a/resourceGroups/myRG/providers/Microsoft.OperationalInsights/workspaces/workspaceName"
},
"metricName":{
"value": "Average_% Idle Time"
},
"operator": {
"value": "GreaterOrLessThan"
},
"alertSensitivity": {
"value": "Medium"
},
"numberOfEvaluationPeriods": {
"value": "4"
},
"minFailingPeriodsToAlert": {
"value": "3"
},
"timeAggregation":{
"value": "Average"
},
"actionGroupId": {
"value": "/subscriptions/1234-56789-1234-567a/resourceGroups/myRG/providers/microsoft.insights/actionGroups/actionGroupName"
}
}
}
Om du har sparat föregående parameterfil som metricfromLogsAlertDynamic.parameters.json kan du skapa måttaviseringar för loggar med hjälp av Resource Manager-mallen för att skapa i Azure Portal.
Du kan också använda det här Azure PowerShell-kommandot:
New-AzResourceGroupDeployment -ResourceGroupName "myRG" -TemplateFile metricfromLogsAlertDynamic.json TemplateParameterFile metricfromLogsAlertDynamic.parameters.json
Du kan också distribuera Resource Manager-mallen med hjälp av Azure CLI:
az deployment group create --resource-group myRG --template-file metricfromLogsAlertDynamic.json --parameters @metricfromLogsAlertDynamic.parameters.json
Relaterat innehåll
- Läs mer om måttaviseringar.
- Läs mer om loggsökningsaviseringar i Azure.
- Läs mer om aviseringar i Azure.