Delen via


Uw logische apps en runbooks voorbereiden voor de migratie van klassieke waarschuwingsregels

Notitie

Zoals eerder aangekondigd, worden klassieke waarschuwingen in Azure Monitor buiten gebruik gesteld voor gebruikers van de openbare cloud, maar nog steeds beperkt gebruikt tot 31 mei 2021. Klassieke waarschuwingen voor Azure Government cloud en Microsoft Azure beheerd door 21Vianet worden op 29 februari 2024 buiten gebruik gesteld.

Als u ervoor kiest om uw klassieke waarschuwingsregels vrijwillig te migreren naar nieuwe waarschuwingsregels, zijn er enkele verschillen tussen de twee systemen. In dit artikel worden deze verschillen uitgelegd en wordt uitgelegd hoe u zich kunt voorbereiden op de wijziging.

API-wijzigingen

De API's die klassieke waarschuwingsregels maken en beheren (microsoft.insights/alertrules) verschillen van de API's waarmee nieuwe metrische waarschuwingen () worden gemaakt en beheerd.microsoft.insights/metricalerts Als u vandaag nog programmatisch klassieke waarschuwingsregels maakt en beheert, werkt u uw implementatiescripts bij om te werken met de nieuwe API's.

De volgende tabel bevat een verwijzing naar de programmatische interfaces voor zowel klassieke als nieuwe waarschuwingen:

Type implementatiescript Klassieke waarschuwingen Nieuwe waarschuwingen voor metrische gegevens
REST-API microsoft.insights/alertrules microsoft.insights/metricalerts
Azure CLI az monitor alert waarschuwing az monitor metrics
PowerShell Verwijzing Verwijzing
Azure Resource Manager-sjabloon Voor klassieke waarschuwingen Voor nieuwe metrische waarschuwingen

Wijzigingen in nettolading van meldingen

De indeling van de nettolading van meldingen verschilt enigszins tussen klassieke waarschuwingsregels en nieuwe metrische waarschuwingen. Als u klassieke waarschuwingsregels met webhook-, logische app- of runbookacties hebt, moet u de doelen bijwerken om de nieuwe nettoladingindeling te accepteren.

Gebruik de volgende tabel om de nettoladingvelden van de webhook toe te wijzen van de klassieke indeling aan de nieuwe indeling:

Type meldingseindpunt Klassieke waarschuwingen Nieuwe waarschuwingen voor metrische gegevens
Is de waarschuwing geactiveerd of opgelost? status data.status
Contextuele informatie over de waarschuwing Context data.context
Tijdstempel waarop de waarschuwing is geactiveerd of opgelost context.timestamp data.context.timestamp
Waarschuwingsregel-id context.id data.context.id
Naam van waarschuwingsregel context.name data.context.name
Beschrijving van de waarschuwingsregel context.description data.context.description
Voorwaarde voor waarschuwingsregel context.condition data.context.condition
Naam van metrische gegevens context.condition.metricName data.context.condition.allOf[0].metricName
Tijdaggregatie (hoe de metrische gegevens worden geaggregeerd via het evaluatievenster) context.condition.timeAggregation context.condition.timeAggregation
Evaluatieperiode context.condition.windowSize data.context.condition.windowSize
Operator (hoe de geaggregeerde metrische waarde wordt vergeleken met de drempelwaarde) context.condition.operator data.context.condition.operator
Drempelwaarde context.condition.threshold data.context.condition.allOf[0].threshold
Metrische waarde context.condition.metricValue data.context.condition.allOf[0].metricValue
Abonnements-id context.subscriptionId data.context.subscriptionId
Resourcegroep van de betrokken resource context.resourceGroup data.context.resourceGroup
Naam van de betrokken resource context.resourceName data.context.resourceName
Type van de betrokken resource context.resourceType data.context.resourceType
Resource-id van de betrokken resource context.resourceId data.context.resourceId
Directe koppeling naar de overzichtspagina van de portalresource context.portalLink data.context.portalLink
Aangepaste nettoladingvelden die moeten worden doorgegeven aan de webhook of logische app properties data.properties

De nettoladingen zijn vergelijkbaar, zoals u kunt zien. In de volgende sectie vindt u het volgende:

  • Details over het wijzigen van logische apps zodat deze werken met de nieuwe indeling.
  • Een runbookvoorbeeld waarmee de nettolading van de melding voor nieuwe waarschuwingen wordt geparseerd.

Een logische app wijzigen om een waarschuwing voor metrische gegevens te ontvangen

Als u logische apps met klassieke waarschuwingen gebruikt, moet u de code van de logische app wijzigen om de nieuwe nettolading voor metrische waarschuwingen te parseren. Volg deze stappen:

  1. Maak een nieuwe logische app.

  2. Gebruik de sjabloon Azure Monitor - Metrics Alert Handler. Deze sjabloon heeft een HTTP-aanvraagtrigger met het juiste schema gedefinieerd.

    Schermopname van twee knoppen, Lege logische app en Azure Monitor - Handler voor waarschuwingen voor metrische gegevens.

  3. Voeg een actie toe om uw verwerkingslogica te hosten.

Een automation-runbook gebruiken dat een waarschuwingsmelding voor metrische gegevens ontvangt

In het volgende voorbeeld ziet u PowerShell-code voor gebruik in uw runbook. Met deze code kunnen de nettoladingen voor zowel klassieke waarschuwingsregels voor metrische gegevens als nieuwe metrische waarschuwingsregels worden geparseerd.

## Example PowerShell code to use in a runbook to handle parsing of both classic and new metric alerts.

[OutputType("PSAzureOperationResponse")]

param
(
    [Parameter (Mandatory=$false)]
    [object] $WebhookData
)

$ErrorActionPreference = "stop"

if ($WebhookData)
{
    # Get the data object from WebhookData.
    $WebhookBody = (ConvertFrom-Json -InputObject $WebhookData.RequestBody)

    # Determine whether the alert triggering the runbook is a classic metric alert or a new metric alert (depends on the payload schema).
    $schemaId = $WebhookBody.schemaId
    Write-Verbose "schemaId: $schemaId" -Verbose
    if ($schemaId -eq "AzureMonitorMetricAlert") {

        # This is the new metric alert schema.
        $AlertContext = [object] ($WebhookBody.data).context
        $status = ($WebhookBody.data).status

        # Parse fields related to alert rule condition.
        $metricName = $AlertContext.condition.allOf[0].metricName
        $metricValue = $AlertContext.condition.allOf[0].metricValue
        $threshold = $AlertContext.condition.allOf[0].threshold
        $timeAggregation = $AlertContext.condition.allOf[0].timeAggregation
    }
    elseif ($schemaId -eq $null) {
        # This is the classic metric alert schema.
        $AlertContext = [object] $WebhookBody.context
        $status = $WebhookBody.status

        # Parse fields related to alert rule condition.
        $metricName = $AlertContext.condition.metricName
        $metricValue = $AlertContext.condition.metricValue
        $threshold = $AlertContext.condition.threshold
        $timeAggregation = $AlertContext.condition.timeAggregation
    }
    else {
        # The schema is neither a classic metric alert nor a new metric alert.
        Write-Error "The alert data schema - $schemaId - is not supported."
    }

    # Parse fields related to resource affected.
    $ResourceName = $AlertContext.resourceName
    $ResourceType = $AlertContext.resourceType
    $ResourceGroupName = $AlertContext.resourceGroupName
    $ResourceId = $AlertContext.resourceId
    $SubId = $AlertContext.subscriptionId

    ## Your logic to handle the alert here.
}
else {
    # Error
    Write-Error "This runbook is meant to be started from an Azure alert webhook only."
}

Zie de Azure Automation documenation voor een volledig voorbeeld van een runbook waarmee een virtuele machine wordt gestopt wanneer een waarschuwing wordt geactiveerd.

Partnerintegratie via webhooks

De meeste van onze partners die integreren met klassieke waarschuwingen ondersteunen al nieuwere metrische waarschuwingen via hun integraties. Bekende integraties die al werken met nieuwe metrische waarschuwingen zijn:

Als u een partnerintegratie gebruikt die hier niet wordt vermeld, controleert u bij de provider of deze werkt met nieuwe metrische waarschuwingen.

Volgende stappen