Metrikariasztás létrehozása az Azure Monitor-naplókban
Áttekintés
Feljegyzés
Javasoljuk, hogy az Azure Az PowerShell modult használja az Azure-ral való interakcióhoz. Az első lépésekhez tekintse meg az Azure PowerShell telepítését ismertető szakaszt. 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 naplókra vonatkozó metrikariasztások lehetővé teszik a metrikariasztási képességek kihasználását az Azure Monitor-naplók előre definiált naplóiban. 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 támogatott Log Analytics-naplók a következők:
- Teljesítményszámlálók Windows & Linux rendszerű gépekhez (a támogatott Log Analytics-munkaterületi metrikáknak megfelelően)
- Az Ügynökállapot szívverési rekordjai
- Felügyeleti rekordok frissítése
- Eseményadat-naplók
A naplókra vonatkozó metrikariasztások számos előnnyel járnak a lekérdezésalapú naplókeresési riasztások esetében az Azure-ban; ezek közül néhány az alábbiakban látható:
- A metrikariasztások közel valós idejű monitorozási képességet és a naplóforrásból származó naplóelágazásokra vonatkozó metrikariariasztásokat is biztosít.
- A metrikariasztások állapotalapúak – csak egyszer, amikor a riasztás aktiválódik, és egyszer, amikor a riasztás feloldva van; a naplókeresési riasztásokkal szemben, amelyek állapot nélküliek, és minden időközönként aktiválódnak, ha a riasztási feltétel teljesül.
- A naplóra vonatkozó metrikariasztások több dimenziót is biztosítanak, így egyszerűbben szűrhet bizonyos értékekre, például számítógépekre, operációs rendszer típusára stb. anélkül, hogy összetett lekérdezést kellene definiálnia a Log Analyticsben.
Feljegyzés
Az adott metrika és/vagy dimenzió csak akkor jelenik meg, ha az adatok a kiválasztott időszakban léteznek. Ezek a metrikák az Azure Log Analytics-munkaterületekkel rendelkező ügyfelek számára érhetők el.
A naplókhoz támogatott metrikák és dimenziók
A metrikariasztások támogatják a dimenziókat használó metrikák riasztását. A dimenziókkal a metrikát a megfelelő szintre szűrheti. 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ák használatával kinyert támogatott metrikák megtekintéséhez létre kell hozni egy metrikariariasztást az adott metrikához. A naplók metrikariasztásában kiválasztott dimenziók – csak az Azure Monitoron keresztüli feltáráshoz jelennek meg – Metrikák.
Metrikariasztás létrehozása a Log Analyticshez
A népszerű naplókból származó metrikaadatok a Log Analyticsben való feldolgozásuk előtt az Azure Monitor – Metrikák szolgáltatásba kerülnek. Ez lehetővé teszi a felhasználók számára, hogy kihasználják a metrikaplatform és a metrikariasztás képességeit – beleértve az akár 1 perces gyakoriságú riasztásokat is. Az alábbiakban felsoroljuk a naplók metrikariasztásának létrehozásának eszközeit.
A naplók metrikariasztásának előfeltételei
A Log Analytics-adatokon összegyűjtött naplók metrikáinak működése előtt a következőket kell beállítani és elérhetővé tenni:
- Aktív 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 az Azure Portalon.
- Az ügynök a Log Analytics-munkaterülethez van konfigurálva: Az ügynököt azure-beli virtuális gépekhez (és/vagy) helyszíni virtuális gépekhez kell konfigurálni, hogy adatokat küldjenek a korábbi lépésben használt Log Analytics-munkaterületre. További információ: Log Analytics – Ügynök áttekintése.
- A támogatott Log Analytics-megoldás telepítve van: 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 & Linux teljesítményszámlálói, az ügynökállapot szívverési rekordjai, a frissítéskezelés és az eseményadatok.
- Naplók küldéséhez konfigurált Log Analytics-megoldások: A Log Analytics-megoldásnak engedélyeznie kell a Log Analytics-munkaterületeken támogatott metrikáknak megfelelő szükséges naplókat /adatokat. Például a rendelkezésre álló memória %-os számlálóját először a Teljesítményszámlálók megoldásban kell konfigurálni.
Metrikariasztás konfigurálása naplókhoz
A metrikariasztások az Azure Portal, a Resource Manager-sablonok, a REST API, a PowerShell és az Azure CLI használatával hozhatók létre és kezelhetők. Mivel a naplókra vonatkozó metrikariasztások a metrikariasztások egyik változata – az előfeltételek teljesülése után a naplók metrikariasztása létrehozható a megadott Log Analytics-munkaterületen. A metrikariasztások minden jellemzője és funkciója a naplók metrikariasztásaira is érvényes lesz, beleértve a hasznos adatséma, az alkalmazandó kvótakorlátok és a számlázott árat is.
Részletes részletekért és mintákért tekintse meg a metrikariasztások létrehozását és kezelését. Konkrétan a naplókra vonatkozó metrikariasztások esetében kövesse a metrikariasztások kezelésére vonatkozó utasításokat, és győződjön meg a következőkről:
- A metrikariasztás célja egy érvényes Log Analytics-munkaterület
- A kiválasztott Log Analytics-munkaterület metrikariasztásához kiválasztott jel Metrika típusú
- Adott feltételek vagy erőforrások szűrése dimenziószűrők használatával; a naplók metrikái többdimenziósak
- A Jellogika konfigurálásakor egyetlen riasztás hozható létre, amely több dimenzióértékre (például számítógépre) terjed ki.
- Ha nem az Azure Portal használatával hoz létre metrikariasztást a kiválasztott Log Analytics-munkaterületen, akkor a felhasználónak manuálisan kell létrehoznia egy explicit szabályt a naplóadatok metriká alakításához az Azure Monitor – Ütemezett lekérdezési szabályok használatával.
Feljegyzés
Ha metrikariasztást hoz létre a naplóhoz az Azure Portalon keresztül – ez a megfelelő szabály a naplóadatok metriká alakításához az Azure Monitoron keresztül – az ütemezett lekérdezési szabályok automatikusan létrejönnek a háttérben anélkül, hogy felhasználói beavatkozásra vagy műveletre van szükség. Az Azure Portaltól eltérő eszközökkel létrehozott naplókra vonatkozó metrikariariasztásokról lásd az Erőforrássablon a naplókhoz című szakaszt, amely egy ScheduledQueryRule-alapú napló metrikakonvertálási szabály létrehozását ismerteti a metrikariasztás létrehozása előtt– különben nem lesznek adatok a létrehozott naplók metrikariasztásához.
Erőforrássablon a naplók metrikariasztásaihoz
Ahogy korábban említettem, a naplókhoz tartozó metrikariasztások létrehozásának folyamata két műveletet jelent:
- Metrikáknak az ütemezettQueryRule API-val történő kinyerését szolgáló szabály létrehozása a támogatott naplókból
- Metrikariasztás létrehozása a naplóból (az 1. lépésben) kinyert metrikához és a Log Analytics-munkaterülethez célerőforrásként
Statikus küszöbértékkel rendelkező naplók metrikariasztásai
Ennek eléréséhez használhatja az alábbi Azure Resource Manager-sablont – ahol a statikus küszöbérték-metrikariasztás létrehozása a metrikák naplókból az ütemezettQueryRule használatával történő kinyeréséhez szükséges szabály sikeres létrehozásához 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 log to metric"
}
},
"convertRuleDescription": {
"type": "string",
"minLength": 1,
"metadata": {
"description": "Description for log converted to metric"
}
},
"convertRuleRegion": {
"type": "string",
"minLength": 1,
"metadata": {
"description": "Name of the region used by 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 once extraction 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 alert"
}
},
"alertSeverity": {
"type": "int",
"defaultValue": 3,
"allowedValues": [
0,
1,
2,
3,
4
],
"metadata": {
"description": "Severity of 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 is 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 is 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')]"
}
]
}
}
]
}
Tegyük fel, hogy a fenti JSON metricfromLogsAlertStatic.json ként van mentve, majd egy JSON-paraméterfájllal párosítható erőforrássablon-alapú létrehozáshoz. Az alábbiakban egy JSON-mintaparaméter-fájl látható:
{
"$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 multi-dimensional 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 a fenti paraméterfájl metricfromLogsAlertStatic.parameters.json; ezután létrehozhat metrikariariasztást a naplókhoz erőforrássablon használatával az Azure Portalon való létrehozáshoz.
Másik lehetőségként az alábbi Azure PowerShell-parancsot is használhatja:
New-AzResourceGroupDeployment -ResourceGroupName "myRG" -TemplateFile metricfromLogsAlertStatic.json TemplateParameterFile metricfromLogsAlertStatic.parameters.json
Vagy használja az erőforrássablon üzembe helyezését 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ásai
Ennek eléréséhez használhatja az alábbi Azure Resource Manager-sablont – ahol a dinamikus küszöbértékek metrikariariasztásának létrehozása a metrikák naplókból az ütemezettQueryRule használatával történő kinyeréséhez szükséges szabály sikeres létrehozásához 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 log to metric"
}
},
"convertRuleDescription": {
"type": "string",
"minLength": 1,
"metadata": {
"description": "Description for log converted to metric"
}
},
"convertRuleRegion": {
"type": "string",
"minLength": 1,
"metadata": {
"description": "Name of the region used by 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 once extraction 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 alert"
}
},
"alertSeverity": {
"type": "int",
"defaultValue": 3,
"allowedValues": [
0,
1,
2,
3,
4
],
"metadata": {
"description": "Severity of 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 Dynamic Thresholds alerts will be: 'High' will result in more alerts while '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 is 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 is 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')]"
}
]
}
}
]
}
Tegyük fel, hogy a fenti JSON metricfromLogsAlertDynamic.json ként van mentve, majd egy JSON-paraméterfájllal párosítható erőforrássablon-alapú létrehozáshoz. Az alábbiakban egy JSON-mintaparaméter-fájl látható:
{
"$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 multi-dimensional 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 a fenti paraméterfájl metricfromLogsAlertDynamic.parameters.json; ezután létrehozhat metrikariariasztást a naplókhoz erőforrássablon használatával az Azure Portalon való létrehozáshoz.
Másik lehetőségként az alábbi Azure PowerShell-parancsot is használhatja:
New-AzResourceGroupDeployment -ResourceGroupName "myRG" -TemplateFile metricfromLogsAlertDynamic.json TemplateParameterFile metricfromLogsAlertDynamic.parameters.json
Vagy használja az erőforrássablon üzembe helyezését az Azure CLI használatával:
az deployment group create --resource-group myRG --template-file metricfromLogsAlertDynamic.json --parameters @metricfromLogsAlertDynamic.parameters.json
Következő lépések
- 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.