Metrikariasztás létrehozása az Azure Monitor-naplókban
Feljegyzés
Javasoljuk, hogy az Azure Az PowerShell modult használja az Azure-ral való interakcióhoz. Első lépésként tekintse meg az Azure PowerShell telepítését ismertető témakört. Az Az PowerShell-modulra történő migrálás részleteiről lásd: Az Azure PowerShell migrálása az AzureRM modulból az Az modulba.
A metrikariasztási képességeket előre meghatározott naplókon használhatja az Azure Monitor-naplókban. Az Azure-ból vagy a helyszíni számítógépekről begyűjthető figyelt naplók metrikákká alakulnak, majd metrikariariasztási szabályokkal figyelik, mint bármely más metrikát.
A Log Analytics-munkaterületek a következő naplótípusokat támogatják:
- Teljesítményszámlálók Windows és Linux rendszerű gépekhez (a támogatott Log Analytics-munkaterület metrikáinak megfelelően)
- Az Ügynökállapot szívverési rekordjai
- Felügyeleti rekordok frissítése
- Eseményadat-naplók
A metrikariasztások lekérdezésalapú naplókeresési riasztásokkal való használatának előnyei az Azure-ban:
- A metrikariasztások közel valós idejű monitorozási képességet biztosítanak. Adatokat fordítanak el a naplóforrásból, hogy biztosítsák ezt a képességet.
- A metrikariasztások állapotalapúak. A riasztások aktiválásakor és a riasztás feloldásakor egyszer értesítik Önt. A naplókeresési riasztások állapot nélküliek, és minden időközönként aktiválódnak, ha a riasztási feltétel teljesül.
- A metrikariasztások több dimenziót is biztosítanak. Lehetővé teszik a szűrést bizonyos értékekre, például számítógépekre és operációs rendszerekre anélkül, hogy összetett lekérdezést kellene definiálnia a Log Analyticsben.
Feljegyzés
Egy adott metrika vagy dimenzió csak akkor jelenik meg, ha az adatok a kiválasztott időszakban léteznek. Ezek a metrikák a Log Analytics-munkaterületekkel rendelkező ügyfelek számára érhetők el.
A naplók támogatott metrikái és dimenziói
A metrikariasztásokkal dimenziókkal szűrheti a metrikát a megfelelő szintre. A naplókhoz támogatott metrikák teljes listája megegyezik a Log Analytics-munkaterület metrikáinak listájával.
Feljegyzés
A Log Analytics-munkaterületről az Azure Monitor-metrikákon keresztül kinyert támogatott metrikák megtekintéséhez létre kell hoznia egy metrikariariasztást az adott metrika naplóihoz. A naplók metrikariasztásában kiválasztott dimenziók csak az Azure Monitor-metrikákon keresztül jelennek meg a feltáráshoz.
Metrikariasztás létrehozása naplókhoz
Mielőtt a népszerű naplókból származó metrikaadatokat feldolgozzák a Log Analyticsben, az Azure Monitor-metrikákba lesznek állítva. Ezután a metrikariasztások mellett kihasználhatja a metrikaplatform képességeit, beleértve az egyperces gyakoriságú riasztásokat is.
A naplókhoz tartozó metrikariasztások létrehozásának folyamata két vonásból áll:
- Hozzon létre egy szabályt a metrikák támogatott naplókból való kinyeréhez az Ütemezett lekérdezési szabályok API (
scheduledQueryRules
) használatával. - Hozzon létre egy metrikariasztást a naplóból kinyert metrikához (az 1. lépésben) és a Log Analytics-munkaterülethez célerőforrásként.
Előfeltételek
Mielőtt metrikariasztást hoz létre a naplókhoz, győződjön meg arról, hogy a következő elemek be vannak állítva és elérhetők:
- Log Analytics-munkaterület: Érvényes és aktív Log Analytics-munkaterületnek kell lennie. További információ: Log Analytics-munkaterület létrehozása.
- A Log Analytics-munkaterülethez konfigurált ügynök: Konfigurálnia kell egy ügynököt Azure-beli virtuális gépekhez vagy helyszíni gépekhez, hogy adatokat küldjön a Log Analytics-munkaterületre. További információkért tekintse meg az Azure Monitor Agent áttekintését.
- Támogatott Log Analytics-megoldás: A Log Analytics-megoldást konfigurálni kell, és adatokat kell küldeni a Log Analytics-munkaterületre. A támogatott megoldások a Windows és Linux teljesítményszámlálói, az Agent Health szívverési rekordjai, az Azure Automation Update Management és az eseményadatok.
- A Log Analytics-megoldáshoz konfigurált naplók: A Log Analytics-megoldásnak engedélyeznie kell a Log Analytics-munkaterületeken támogatott metrikáknak megfelelő naplókat és adatokat. A rendelkezésre álló memória %-os számlálóját például először a teljesítményszámlálók megoldásában kell konfigurálni.
Metrikariasztások naplókhoz való létrehozásának módszerei
Metrikariasztásokat az Azure Portal, az Azure Resource Manager-sablonok, a REST API, az Azure PowerShell és az Azure CLI használatával hozhat létre és kezelhet.
Miután metrikariasztásokat hoz létre egy adott Log Analytics-munkaterület naplóihoz, azok a metrikariasztások összes jellemzővel és funkcióval rendelkeznek, beleértve a hasznos adatséma, az alkalmazandó kvótakorlátok és a számlázott árat.
Részletes részletekért és mintákért lásd : Metrikariasztási szabály létrehozása vagy szerkesztése. Kövesse a metrikariasztások kezelésére vonatkozó utasításokat, és vegye figyelembe a következő szempontokat:
A metrikariasztás céljának érvényes Log Analytics-munkaterületnek kell lennie.
A kiválasztott Log Analytics-munkaterület metrikariasztásához kiválasztott jelnek Metrika típusúnak kell lennie.
Adott feltételekre vagy erőforrásokra dimenziószűrőkkel szűrhet, mivel a naplók metrikái többdimenziósak.
A jellogika konfigurálásakor egyetlen riasztást hozhat létre, amely több dimenzióértékre (például számítógépre) terjed ki.
Amikor metrikariasztást hoz létre a naplókhoz az Azure Portal használatával, a rendszer automatikusan létrehoz egy megfelelő szabályt a naplóadatok metriká
scheduledQueryRules
alakításához anélkül, hogy felhasználói beavatkozásra vagy műveletre van szükség.Ha nem az Azure Portal használatával hoz létre metrikariasztást egy kijelölt Log Analytics-munkaterülethez, először manuálisan kell létrehoznia egy explicit szabályt a naplóadatok metriká alakításához a használatával
scheduledQueryRules
.
Resource Manager-sablonok
A naplókhoz tartozó metrikariasztás létrehozásához használhatja az alábbi Resource Manager-sablonokat.
Az Azure Portaltól eltérő eszközökkel létrehozott naplókra vonatkozó metrikariasztások esetében ezek a mintasablonok használatával létrehozhat egy scheduledQueryRules
-based log-to-metric konverziós szabályt, mielőtt metrikariasztást hoz létre. Ha nem, a naplókban nem lesznek adatok a metrikariasztáshoz.
Metrikariasztás statikus küszöbértékkel rendelkező naplókhoz
A következő mintasablonban a metrikariasztás létrehozása statikus küszöbértékekhez attól függ, hogy sikeres-e a szabály létrehozása a metrikák naplókból való kinyeréséhez a naplókon keresztül 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')]"
}
]
}
}
]
}
Ha az előző JSON-t metricfromLogsAlertStatic.json ként menti, egy Resource Manager-sablonon alapuló JSON-paraméterfájllal párosíthatja. Íme egy JSON-mintaparaméter-fájl:
{
"$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"
}
}
}
Feltételezve, hogy az előző paraméterfájlt metricfromLogsAlertStatic.parameters.json mentette, metrikariasztásokat hozhat létre a naplókhoz a Resource Manager-sablon használatával az Azure Portalon való létrehozáshoz.
Másik lehetőségként használhatja ezt az Azure PowerShell-parancsot:
New-AzResourceGroupDeployment -ResourceGroupName "myRG" -TemplateFile metricfromLogsAlertStatic.json TemplateParameterFile metricfromLogsAlertStatic.parameters.json
Vagy üzembe helyezheti a Resource Manager-sablont az Azure CLI használatával:
az deployment group create --resource-group myRG --template-file metricfromLogsAlertStatic.json --parameters @metricfromLogsAlertStatic.parameters.json
Dinamikus küszöbértékekkel rendelkező naplók metrikariasztása
A következő mintasablonban a dinamikus küszöbértékekhez tartozó metrikariasztás létrehozása a metrikák naplókból scheduledQueryRules
való kinyeréséhez szükséges szabály sikeres létrehozásának függvényétől függ.
{
"$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')]"
}
]
}
}
]
}
Ha az előző JSON-t metricfromLogsAlertDynamic.json ként menti, egy JSON-paraméterfájllal párosíthatja a Resource Manager-sablonon alapuló létrehozáshoz. Íme egy JSON-mintaparaméter-fájl:
{
"$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"
}
}
}
Feltételezve, hogy az előző paraméterfájlt metricfromLogsAlertDynamic.parameters.json mentette, metrikariasztásokat hozhat létre a naplókhoz a Resource Manager-sablon használatával az Azure Portalon való létrehozáshoz.
Másik lehetőségként használhatja ezt az Azure PowerShell-parancsot:
New-AzResourceGroupDeployment -ResourceGroupName "myRG" -TemplateFile metricfromLogsAlertDynamic.json TemplateParameterFile metricfromLogsAlertDynamic.parameters.json
Vagy üzembe helyezheti a Resource Manager-sablont az Azure CLI használatával:
az deployment group create --resource-group myRG --template-file metricfromLogsAlertDynamic.json --parameters @metricfromLogsAlertDynamic.parameters.json
Kapcsolódó tartalom
- További információ a metrikariasztásokról.
- További információ a naplókeresési riasztásokról az Azure-ban.
- Tudnivalók az Azure-beli riasztásokról.