In dit artikel wordt uitgelegd hoe u metrische waarschuwingsregels op basis van query's maakt in Azure Monitor met behulp van PromQL, met informatie over vereisten, regelconfiguratieopties, vereisten voor beheerde identiteiten, implementatiemethoden en het weergeven en beheren van waarschuwingen in Azure Portal.
Vereiste voorwaarden
- Lees het overzicht van querygebaseerde metrische meldingen.
- Een door het systeem toegewezen of door de gebruiker toegewezen beheerde identiteit. Als u een door de gebruiker toegewezen beheerde identiteit wilt gebruiken met uw waarschuwingsregels voor metrische gegevens op basis van query's, maakt u vooraf de beheerde identiteit en configureert u deze met de rol Lezer voor bewaking (of gelijkwaardige machtigingen) voor het regelbereik. Zie Beheerde Identiteiten van Azure voor meer informatie over het maken en gebruiken van beheerde identiteiten.
- Een resource die metrische gegevens op basis van Prometheus of OTel verzendt naar een Azure Monitor-werkruimte (AMW). De resources die momenteel worden ondersteund, zijn Azure Kubernetes Service (AKS), Azure virtuele machines, servers met Arc of Clusters met Arc. Aangepaste OTel-metrische data die rechtstreeks door uw workload naar AMW worden verzonden, worden eveneens ondersteund. Zie voor meer informatie:
- Als u resourcegerichte waarschuwingsregels wilt maken, moet uw Azure Monitor-werkruimte zijn ingeschakeld voor resourcegerichte stempels en toegang.
Werkruimteresourcegericht stempelen en toegang inschakelen
U kunt resourcegerichte stempels en toegang voor een werkruimte inschakelen met behulp van een van de volgende methoden:
Opmerking
Alle methoden gebruiken de preview-API-versie 2025-05-03-preview. De properties.metrics.enableAccessUsingResourcePermissions vorm is niet beschikbaar in de meest recente GA-versie 2023-04-03.
Er is geen toegewezen Azure CLI opdracht beschikbaar voor deze bewerking. Roep de REST API rechtstreeks aan met behulp van az rest.
subscriptionId="aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
resourceGroupName="myResourceGroup"
accountName="myAccountName"
apiVersion="2025-05-03-preview"
providers="microsoft.monitor/accounts/$accountName"
resourceId="/subscriptions/$subscriptionId/resourcegroups/$resourceGroupName/providers/$providers"
payloadFile="./enable-stamping.json"
az account set --subscription "$subscriptionId"
az rest \
--method put \
--uri "$resourceId?api-version=$apiVersion" \
--body @"$payloadFile"
Payload-bestand (enable-stamping.json):
{
"location": "eastus",
"properties": {
"metrics": {
"enableAccessUsingResourcePermissions": true
}
}
}
Er is geen toegewezen Azure PowerShell cmdlet beschikbaar voor deze bewerking. Roep de REST API rechtstreeks aan met behulp van Invoke-AzRestMethod.
$subscriptionId = "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
$resourceGroupName = "myResourceGroup"
$accountName = "myAccountName"
$apiVersion = "2025-05-03-preview"
$providers = "microsoft.monitor/accounts/$accountName"
$resourceId = "/subscriptions/$subscriptionId/resourcegroups/$resourceGroupName/providers/$providers"
$payloadFile = "./enable-stamping.json"
Set-AzContext -Subscription $subscriptionId
$restParams = @{
Method = "PUT"
Path = "$resourceId?api-version=$apiVersion"
Payload = Get-Content -Raw -Path $payloadFile
}
Invoke-AzRestMethod @restParams
Payload-bestand (enable-stamping.json):
{
"location": "eastus",
"properties": {
"metrics": {
"enableAccessUsingResourcePermissions": true
}
}
}
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/microsoft.monitor/accounts/{accountName}?api-version={apiVersion}
Authorization: Bearer {accessToken}
Content-Type: application/json
{
"location": "{location}",
"properties": {
"metrics": {
"enableAccessUsingResourcePermissions": true
}
}
}
In het volgende Bicep-voorbeeld wordt het resourcetype Microsoft.Monitor accounts gebruikt.
param accountName string = 'myAccountName'
param location string = 'eastus'
resource monitorWorkspace 'Microsoft.Monitor/accounts@2025-05-03-preview' = {
name: accountName
location: location
properties: {
metrics: {
enableAccessUsingResourcePermissions: true
}
}
}
In het volgende ARM-voorbeeld (JSON) wordt het resourcetype Microsoft.Monitor accounts gebruikt.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"accountName": {
"type": "string",
"defaultValue": "myAccountName"
},
"location": {
"type": "string",
"defaultValue": "eastus"
}
},
"resources": [
{
"type": "Microsoft.Monitor/accounts",
"apiVersion": "2025-05-03-preview",
"name": "[parameters('accountName')]",
"location": "[parameters('location')]",
"properties": {
"metrics": {
"enableAccessUsingResourcePermissions": true
}
}
}
]
}
| Variable |
Voorbeeldwaarde |
Purpose |
| host |
management.azure.com |
Impliciet ARM-eindpunt |
| subscriptionId |
aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e |
Gebruikersinvoer |
| resourceGroupName |
myResourceGroup |
Gebruikersinvoer |
| accountName |
myAccountName |
Gebruikersinvoer |
| plaats |
eastus |
Gebruikersinvoer |
| apiVersion |
2025-05-03-voorbeeld |
Verwijzing |
Een waarschuwing voor metrische gegevens op basis van query's implementeren
U kunt op query's gebaseerde waarschuwingsregels voor metrische gegevens maken en configureren met behulp van de Azure-portal of een van de programmatische benaderingen in deze sectie. In de voorbeelden van REST, Azure CLI en Azure PowerShell worden directe REST-aanvragen gebruikt om de waarschuwingsregel te maken of bij te werken, terwijl de ARM-voorbeelden (JSON) en Bicep voorbeelden gebruikmaken van implementaties op basis van sjablonen.
In deze sectie wordt een resourcegeoriënteerde, querygebaseerde metrische waarschuwingsregel gemaakt die een Azure Kubernetes Service (AKS)-cluster als toepassingsgebied en een door de gebruiker toegewezen beheerde identiteit gebruikt. In de volgende secties worden enkele van de vereiste eigenschappen en configuratieopties beschreven. Bewerk de voorbeelden om uw eigen bereik, locatie, query, actiegroepen en andere waarden te gebruiken.
Opmerking
U kunt slechts één resourcetype tegelijk selecteren in Azure Portal. U kunt bijvoorbeeld geen virtuele machines en Kubernetes-services selecteren.
Op de pagina Een waarschuwingsregel maken:
Selecteer Selectie van bereik. Het scherm om een resource te selecteren verschijnt.
Schakel in de vervolgkeuzelijst Abonnement een of meer selectievakjes voor abonnementen in. Alle resourcegroepen binnen het gekozen abonnement worden weergegeven.
Filter in de vervolgkeuzelijst Resourcetypen op Virtual machines, Azure Monitor Werkruimten, Kubernetes-services of kies een hele resourcegroep of abonnement.
Schakel het selectievakje in naast de resources die u wilt gebruiken.
Selecteer de optie Toepassen.
Selecteer Volgende: Voorwaarde of het tabblad Voorwaarde .
In de vervolgkeuzelijst Signal kunt u een optie kiezen:
- Bekijk alle signalen voor het gebruik van een eerder gemaakte PromQL-query en selecteer vervolgens de query die u wilt gebruiken. Het PromQL-veld wordt gevuld met de query. Ga vervolgens door met het bewerken van de query in het editorveld.
- Aangepaste PromQL-query om een nieuwe query te maken. Het PromQL-veld wordt leeg weergegeven en klaar voor het bewerken van de query. Voer de PromQL-query in het veld in.
Selecteer de opties voor waarschuwingen:
- Selecteer het controle-interval in de Check every dropdownlijst.
- Selecteer in de vervolgkeuzelijst Wachten op de vertragingstijd voor de waarschuwing. Standaard is geen vertraging.
Configureer hier de waarschuwing op dezelfde manier als elke andere waarschuwing. Zie de andere handleidingen voor het maken van waarschuwingen in de documentatie.
Er is geen toegewezen Azure CLI opdracht beschikbaar voor deze bewerking. Roep de REST API rechtstreeks aan met behulp van az rest.
subscriptionId="aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
resourceGroupName="myResourceGroup"
ruleName="Sample query based alert rule"
userAssignedMiName="myUserAssignedIdentity"
clusterName="myCluster"
actionGroupName="myActionGroup"
apiVersion="2024-03-01-preview"
resourceId="/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.Insights/metricAlerts/$ruleName"
payloadFile=./query-based-metric-alert.json
az account set --subscription $subscriptionId
az rest \
--method put \
--uri "https://management.azure.com$resourceId?api-version=$apiVersion" \
--body @$payloadFile
Payload-bestand (query-based-metric-alert.json):
Opmerking
Azure CLI biedt geen ondersteuning voor implementatiestijlparameters in JSON-nettoladingbestanden voor az rest. Omdat het JSON-bestand rechtstreeks wordt gebruikt als de hoofdtekst van de aanvraag, bevat dit voorbeeld voorbeeldwaarden in het bestand.
{
"location": "eastus",
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myUserAssignedIdentity": {}
}
},
"properties": {
"enabled": true,
"description": "Sample query-based metric alert rule",
"severity": 3,
"targetResourceType": "microsoft.monitor/accounts",
"scopes": [
"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myCluster"
],
"evaluationFrequency": "PT1M",
"criteria": {
"allOf": [
{
"name": "KubeContainerOOMKilledCount",
"query": "sum by (cluster,container,controller,namespace)(kube_pod_container_status_last_terminated_reason{reason=\"OOMKilled\"} * on(cluster,namespace,pod) group_left(controller) label_replace(kube_pod_owner, \"controller\", \"$1\", \"owner_name\", \"(.*)\")) > 0",
"criterionType": "StaticThresholdCriterion"
}
],
"odata.type": "Microsoft.Azure.Monitor.PromQLCriteria",
"failingPeriods": {
"for": "PT5M"
}
},
"resolveConfiguration": {
"autoResolved": true,
"timeToResolve": "PT2M"
},
"actions": [
{
"actionGroupId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Insights/actionGroups/myActionGroup"
}
],
"actionProperties": {
"Email.Subject": "Prometheus alert - Container killed due to OOM in cluster: ${data.alertContext.condition.allOf[0].dimensions.cluster} in pod: ${data.alertContext.condition.allOf[0].dimensions.pod} container: ${data.alertContext.condition.allOf[0].dimensions.container}"
},
"customProperties": {
"Alert Summary": "Prometheus alert - Container killed due to OOM in cluster: ${data.alertContext.condition.allOf[0].dimensions.cluster} in pod: ${data.alertContext.condition.allOf[0].dimensions.pod} container: ${data.alertContext.condition.allOf[0].dimensions.container}"
}
}
}
Er is geen toegewezen Azure PowerShell cmdlet beschikbaar voor deze bewerking. Roep de REST API rechtstreeks aan met behulp van Invoke-AzRestMethod.
$subscriptionId = "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
$resourceGroupName = "myResourceGroup"
$ruleName = "Sample query based alert rule"
$userAssignedMiName = "myUserAssignedIdentity"
$clusterName = "myCluster"
$actionGroupName = "myActionGroup"
$apiVersion = "2024-03-01-preview"
$resourceId = "/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.Insights/metricAlerts/$ruleName"
$payloadFile = "./query-based-metric-alert.json"
Set-AzContext -Subscription $subscriptionId
$restParams = @{
Method = "PUT"
Path = "$resourceId?api-version=$apiVersion"
Payload = Get-Content -Raw -Path $payloadFile
}
Invoke-AzRestMethod @restParams
Payload-bestand (query-based-metric-alert.json):
Opmerking
Azure PowerShell ondersteunt geen parameters in implementatiestijl in JSON-payloadbestanden voor Invoke-AzRestMethod. Omdat het JSON-bestand rechtstreeks wordt gebruikt als de hoofdtekst van de aanvraag, bevat dit voorbeeld voorbeeldwaarden in het bestand.
{
"location": "eastus",
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myUserAssignedIdentity": {}
}
},
"properties": {
"enabled": true,
"description": "Sample query-based metric alert rule",
"severity": 3,
"targetResourceType": "microsoft.monitor/accounts",
"scopes": [
"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myCluster"
],
"evaluationFrequency": "PT1M",
"criteria": {
"allOf": [
{
"name": "KubeContainerOOMKilledCount",
"query": "sum by (cluster,container,controller,namespace)(kube_pod_container_status_last_terminated_reason{reason=\"OOMKilled\"} * on(cluster,namespace,pod) group_left(controller) label_replace(kube_pod_owner, \"controller\", \"$1\", \"owner_name\", \"(.*)\")) > 0",
"criterionType": "StaticThresholdCriterion"
}
],
"odata.type": "Microsoft.Azure.Monitor.PromQLCriteria",
"failingPeriods": {
"for": "PT5M"
}
},
"resolveConfiguration": {
"autoResolved": true,
"timeToResolve": "PT2M"
},
"actions": [
{
"actionGroupId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroup/providers/Microsoft.Insights/actionGroups/myActionGroup"
}
],
"actionProperties": {
"Email.Subject": "Prometheus alert - Container killed due to OOM in cluster: ${data.alertContext.condition.allOf[0].dimensions.cluster} in pod: ${data.alertContext.condition.allOf[0].dimensions.pod} container: ${data.alertContext.condition.allOf[0].dimensions.container}"
},
"customProperties": {
"Alert Summary": "Prometheus alert - Container killed due to OOM in cluster: ${data.alertContext.condition.allOf[0].dimensions.cluster} in pod: ${data.alertContext.condition.allOf[0].dimensions.pod} container: ${data.alertContext.condition.allOf[0].dimensions.container}"
}
}
}
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/metricAlerts/{ruleName}?api-version={apiVersion}
Authorization: Bearer {accessToken}
Content-Type: application/json
{
"location": "<location>",
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<userAssignedMiName>": {}
}
},
"properties": {
"enabled": true,
"description": "Sample query-based metric alert rule",
"severity": 3,
"targetResourceType": "microsoft.monitor/accounts",
"scopes": [
"/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.ContainerService/managedClusters/<clusterName>"
],
"evaluationFrequency": "PT1M",
"criteria": {
"allOf": [
{
"name": "KubeContainerOOMKilledCount",
"query": "sum by (cluster,container,controller,namespace)(kube_pod_container_status_last_terminated_reason{reason=\"OOMKilled\"} * on(cluster,namespace,pod) group_left(controller) label_replace(kube_pod_owner, \"controller\", \"$1\", \"owner_name\", \"(.*)\")) > 0",
"criterionType": "StaticThresholdCriterion"
}
],
"odata.type": "Microsoft.Azure.Monitor.PromQLCriteria",
"failingPeriods": {
"for": "PT5M"
}
},
"resolveConfiguration": {
"autoResolved": true,
"timeToResolve": "PT2M"
},
"actions": [
{
"actionGroupId": "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Insights/actionGroups/<actionGroupName>"
}
],
"actionProperties": {
"Email.Subject": "Prometheus alert - Container killed due to OOM in cluster: ${data.alertContext.condition.allOf[0].dimensions.cluster} in pod: ${data.alertContext.condition.allOf[0].dimensions.pod} container: ${data.alertContext.condition.allOf[0].dimensions.container}"
},
"customProperties": {
"Alert Summary": "Prometheus alert - Container killed due to OOM in cluster: ${data.alertContext.condition.allOf[0].dimensions.cluster} in pod: ${data.alertContext.condition.allOf[0].dimensions.pod} container: ${data.alertContext.condition.allOf[0].dimensions.container}"
}
}
}
In het volgende Bicep-voorbeeld wordt het resourcetype Microsoft.Insights metricAlerts gebruikt.
param subscriptionId string = 'aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e'
param resourceGroupName string = 'myResourceGroup'
param ruleName string = 'Sample query based alert rule'
param userAssignedMiName string = 'myUserAssignedIdentity'
param clusterName string = 'myCluster'
param actionGroupName string = 'myActionGroup'
param location string = 'eastus'
resource sampleQueryBasedAlertRule 'Microsoft.Insights/metricAlerts@2024-03-01-preview' = {
name: ruleName
location: location
identity: {
type: 'UserAssigned'
userAssignedIdentities: {
'/subscriptions/${subscriptionId}/resourceGroups/${resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/${userAssignedMiName}': {}
}
}
properties: {
enabled: true
description: 'Sample query-based metric alert rule'
severity: 3
targetResourceType: 'microsoft.monitor/accounts'
scopes: [
'/subscriptions/${subscriptionId}/resourceGroups/${resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/${clusterName}'
]
evaluationFrequency: 'PT1M'
criteria: {
allOf: [
{
name: 'KubeContainerOOMKilledCount'
query: 'sum by (cluster,container,controller,namespace)(kube_pod_container_status_last_terminated_reason{reason="OOMKilled"} * on(cluster,namespace,pod) group_left(controller) label_replace(kube_pod_owner, "controller", "$1", "owner_name", "(.*)")) > 0'
criterionType: 'StaticThresholdCriterion'
}
]
'odata.type': 'Microsoft.Azure.Monitor.PromQLCriteria'
failingPeriods: {
for: 'PT5M'
}
}
resolveConfiguration: {
autoResolved: true
timeToResolve: 'PT2M'
}
actions: [
{
actionGroupId: '/subscriptions/${subscriptionId}/resourceGroups/${resourceGroupName}/providers/Microsoft.Insights/actionGroups/${actionGroupName}'
}
]
actionProperties: {
'Email.Subject': 'Prometheus alert - Container killed due to OOM in cluster: \${data.alertContext.condition.allOf[0].dimensions.cluster} in pod: \${data.alertContext.condition.allOf[0].dimensions.pod} container: \${data.alertContext.condition.allOf[0].dimensions.container}'
}
customProperties: {
'Alert Summary': 'Prometheus alert - Container killed due to OOM in cluster: \${data.alertContext.condition.allOf[0].dimensions.cluster} in pod: \${data.alertContext.condition.allOf[0].dimensions.pod} container: \${data.alertContext.condition.allOf[0].dimensions.container}'
}
}
}
In het volgende ARM-voorbeeld (JSON) wordt het resourcetype Microsoft.Insights metricAlerts gebruikt.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"subscriptionId": {
"type": "string",
"defaultValue": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
},
"resourceGroupName": {
"type": "string",
"defaultValue": "myResourceGroup"
},
"ruleName": {
"type": "string",
"defaultValue": "Sample query based alert rule"
},
"userAssignedMiName": {
"type": "string",
"defaultValue": "myUserAssignedIdentity"
},
"clusterName": {
"type": "string",
"defaultValue": "myCluster"
},
"actionGroupName": {
"type": "string",
"defaultValue": "myActionGroup"
},
"location": {
"type": "string",
"defaultValue": "eastus"
}
},
"resources": [
{
"name": "[parameters('ruleName')]",
"type": "Microsoft.Insights/metricAlerts",
"apiVersion": "2024-03-01-preview",
"location": "[parameters('location')]",
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"[format('/subscriptions/{0}/resourceGroups/{1}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{2}', parameters('subscriptionId'), parameters('resourceGroupName'), parameters('userAssignedMiName'))]": {}
}
},
"properties": {
"enabled": true,
"description": "Sample query-based metric alert rule",
"severity": 3,
"targetResourceType": "microsoft.monitor/accounts",
"scopes": [
"[format('/subscriptions/{0}/resourceGroups/{1}/providers/Microsoft.ContainerService/managedClusters/{2}', parameters('subscriptionId'), parameters('resourceGroupName'), parameters('clusterName'))]"
],
"evaluationFrequency": "PT1M",
"criteria": {
"allOf": [
{
"name": "KubeContainerOOMKilledCount",
"query": "sum by (cluster,container,controller,namespace)(kube_pod_container_status_last_terminated_reason{reason=\"OOMKilled\"} * on(cluster,namespace,pod) group_left(controller) label_replace(kube_pod_owner, \"controller\", \"$1\", \"owner_name\", \"(.*)\")) > 0",
"criterionType": "StaticThresholdCriterion"
}
],
"odata.type": "Microsoft.Azure.Monitor.PromQLCriteria",
"failingPeriods": {
"for": "PT5M"
}
},
"resolveConfiguration": {
"autoResolved": true,
"timeToResolve": "PT2M"
},
"actions": [
{
"actionGroupId": "[format('/subscriptions/{0}/resourceGroups/{1}/providers/Microsoft.Insights/actionGroups/{2}', parameters('subscriptionId'), parameters('resourceGroupName'), parameters('actionGroupName'))]"
}
],
"actionProperties": {
"Email.Subject": "Prometheus alert - Container killed due to OOM in cluster: ${data.alertContext.condition.allOf[0].dimensions.cluster} in pod: ${data.alertContext.condition.allOf[0].dimensions.pod} container: ${data.alertContext.condition.allOf[0].dimensions.container}"
},
"customProperties": {
"Alert Summary": "Prometheus alert - Container killed due to OOM in cluster: ${data.alertContext.condition.allOf[0].dimensions.cluster} in pod: ${data.alertContext.condition.allOf[0].dimensions.pod} container: ${data.alertContext.condition.allOf[0].dimensions.container}"
}
}
}
]
}
| Variable |
Voorbeeldwaarde |
Purpose |
| host |
management.azure.com |
Impliciet ARM-eindpunt |
| subscriptionId |
aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e |
Gebruikersinvoer |
| resourceGroupName |
myResourceGroup |
Gebruikersinvoer |
| regelNaam |
myRule |
Gebruikersinvoer |
| plaats |
eastus |
Gebruikersinvoer |
| userAssignedMiName |
myUserAssignedIdentity |
Gebruikersinvoer |
| clusternaam |
myCluster |
Gebruikersinvoer |
| actionGroupName |
myActionGroup |
Gebruikersinvoer |
| apiVersion |
2024-03-01-voorbeeld |
Verwijzing |
Details van configuratie van metrische waarschuwingen op basis van query's
Opmerking
In de volgende secties zijn de JSON-voorbeelden van toepassing op ARM-sjablonen (JSON) en op de JSON-aanvraaginstanties die door REST worden gebruikt, Azure CLI met az rest en Azure PowerShell met Invoke-AzRestMethod. In de Bicep voorbeelden ziet u de equivalente configuratie in Bicep syntaxis.
Door de gebruiker toegewezen beheerde identiteit
Maak en configureer de door de gebruiker toegewezen beheerde identiteit met machtigingen voordat u deze opgeeft in de regelconfiguratie. Stel identity>type in op UserAssigned en neem de MI resource ID op in identity>userAssignedIdentities, zoals het volgende voorbeeld laat zien:
{
identity: {
type: 'UserAssigned',
userAssignedIdentities: {
'/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<userAssignedMiName>': {}
}
}
}
{
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<userAssignedMiName>": {}
}
}
}
Opmerking
Als de beheerde identiteit niet juist is geconfigureerd met de benodigde machtigingen/rol, kan de waarschuwingsregel worden gemaakt, maar de waarschuwingsevaluaties mislukken omdat de toegang tot de metrische gegevens niet mogelijk is.
Door het systeem toegewezen beheerde identiteit
Waarschuwingsregels voor metrische gegevens ondersteunen automatische roltoewijzing voor door het systeem toegewezen beheerde identiteiten.
Met deze functie wordt het proces voor het verlenen van machtigingen aan uw beheerde identiteiten vereenvoudigd en kan uw waarschuwingsregel direct na het maken operationeel zijn.
Voor een geslaagde automatische roltoewijzing moet u over een van de volgende rollen beschikken binnen de regelscope:
-
Owner
-
Beheerder voor gebruikerstoegang
- Een aangepaste rol met Microsoft.Authorization/roleAssignments/write-rechten
-
Gedelegeerde beheerdersmachtigingen voor het doelbereik. Als u een metrische alertering wilt maken met een door het systeem toegewezen beheerde identiteit, moet u de rol Bewakingslezer mogen toekennen aan het doeldomein.
Opmerking
Als u probeert een regel te maken met een door het systeem toegewezen beheerde identiteit en u geen machtigingen hebt voor automatische roltoewijzing, mislukt het maken van de regel.
Stel de identity eigenschap ->type in op SystemAssigned zoals in het volgende voorbeeld:
{
identity: {
type: 'SystemAssigned'
}
}
{
"identity": {
"type": "SystemAssigned"
}
}
Er wordt een nieuwe door het systeem toegewezen MI volgens de regel gemaakt.
Voorwaarden voor regels op basis van query's
Als u een waarschuwingsregel voor metrische gegevens op basis van query's wilt configureren, moet de eigenschap odata.type worden ingesteld op Microsoft.Azure.Monitor.PromQLCriteria.
Als u een regelvoorwaarde op basis van query's wilt maken, odata.type moet u deze instellen op Microsoft.Azure.Monitor.PromQLCriteria. In dit geval wordt de voorwaarde gedefinieerd met behulp van een PromQL-expressie in de nieuwe query-eigenschap.
De optionele eigenschap for zorgt ervoor dat de waarschuwingsregel wacht tot een bepaalde duur na de eerste keer dat aan de voorwaarde wordt voldaan voordat een waarschuwing wordt geactiveerd. Als for bijvoorbeeld op 10 minuten is ingesteld, moet aan de voorwaarde van de waarschuwing worden voldaan voor elke evaluatie van 10 minuten, voordat de waarschuwing daarna uiteindelijk wordt geactiveerd.
Opmerking
De query met metrische waarschuwingsregel en voor eigenschappen zijn gelijk aan de prometheus-waarschuwingsregelexpressie en voor componenten.
Resourcegerichte en werkruimtegerichte regelbereiktypen
Waarschuwingsregel op basis van metrische gegevens op basis van query's ondersteunt twee typen querybereik:
Resourcebereik (resourcegerichte regels)
U kunt query's uitvoeren op metrische gegevens die worden verzonden naar elke werkruimte door:
- een specifieke Azure-resource of door meerdere resources uit hetzelfde abonnement of
- een resourcegroep zoals Azure Kubernetes-clusters (AKS) of
- een virtuele machine (VM).
Voor resourcegerichte regels worden de volgende bereikopties ondersteund:
| Scope |
Voorbeeld |
| Eén bron |
scopes: ['/subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>/providers/microsoft.containerservice/managedclusters/<clusterName>'] |
| Resourcegroep |
scopes: ['/subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>'] |
| Subscription |
scopes: ['/subscriptions/<subscriptionId>'] |
| Scope |
Voorbeeld |
| Eén bron |
"scopes": ["/subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>/providers/microsoft.containerservice/managedclusters/<clusterName>"] |
| Resourcegroep |
"scopes": ["/subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>"] |
| Subscription |
"scopes": ["/subscriptions/<subscriptionId>"] |
Het systeem zoekt de werkruimte waar de metrische gegevens van de resource zich bevinden. De regelquery mag alleen verwijzen naar metrische gegevens die worden verzonden door de bereikresource.
Bereik van Azure Monitor-werkruimte (werkruimtegerichte regels)
U kunt query's uitvoeren op metrische gegevens die worden verzonden naar een specifieke Azure Monitor-werkruimte, ongeacht de resources die worden verzonden.
Neem voor werkruimtebereik de Azure Resource Manager-id van de werkruimte op in de lijst Scopes[].
Voorbeeld:scopes: ['/subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>/providers/microsoft.monitor/accounts/<azureMonitorWorkspaceName>']
Voorbeeld:"scopes": ["/subscriptions/<subscriptionId>/resourcegroups/<resourceGroupName>/providers/microsoft.monitor/accounts/<azureMonitorWorkspaceName>"]
De regelquery kan verwijzen naar metrische gegevens die zijn opgeslagen in de Azure Monitor-werkruimte.
Waarschuwingen op basis van query's weergeven in Azure Portal
Geactiveerde metrische waarschuwingen op query-basis weergeven
U kunt geactiveerde en opgeloste metrische waarschuwingen op basis van query's bekijken in Azure Portal, samen met alle andere waarschuwingstypen:
- Selecteer Waarschuwingen in het menu Monitor in Azure Portal.
- Als de Monitor-service niet wordt weergegeven als filteroptie, selecteert u Filter toevoegen en voegt u deze toe.
- Stel het monitorservicefilter in op metrische query.
- Selecteer de naam van de waarschuwing om de details van een specifieke geactiveerde of opgeloste waarschuwing weer te geven.
U kunt ook waarschuwingen weergeven die zijn geactiveerd voor een specifieke resource. Selecteer Waarschuwingen in het resourcemenu in Azure Portal. U kunt vervolgens filteren op de Metric Query Monitoring-service.
Details van waarschuwingsregel weergeven in Azure Portal
U kunt op query's gebaseerde waarschuwingsregels voor metrische gegevens weergeven in Azure Portal, samen met alle andere waarschuwingsregels. Filter op alleen op query's gebaseerde metrische regels en stel het filter Signaaltypen in op Metrische gegevens om alle metrische waarschuwingsregels te zien, inclusief regels op basis van query's.
Een waarschuwing op basis van query's wijzigen
Opmerking
Als u een bestaande regel in uw abonnement wilt wijzigen met BEHULP van ARM (JSON) of Bicep-sjablonen, bewerkt u het sjabloonbestand en herhaalt u de implementatieprocedure.
Een op een query gebaseerde metrische waarschuwingsregel bewerken in het Azure Portal:
- Zoek of selecteer Monitor in het startscherm in Azure Portal. Het startscherm van Azure Monitor wordt weergegeven.
- Selecteer Waarschuwingen. Er wordt een lijst weergegeven met alle waarschuwingen waarvoor u toegang hebt.
- Selecteer de waarschuwing waarmee u wilt werken. Het scherm met waarschuwingseigenschappen wordt weergegeven.
- Selecteer Ga naar waarschuwingsregel. Het waarschuwingsregelscherm verschijnt.
- Kies Bewerken. Het scherm voor het bewerken van waarschuwingen wordt weergegeven.
- Ga door zoals u zou doen bij het maken van een nieuwe alertregel.