Chiamare un webhook per un avviso del log attività di AzureCall a webhook on an Azure activity log alert

I webhook consentono di instradare le notifiche di avviso di Azure ad altri sistemi per la post-elaborazione o per le azioni personalizzate.You can use webhooks to route an Azure alert notification to other systems for post-processing or for custom actions. È possibile usare un webhook in un avviso per instradarlo a servizi che inviano SMS, registrano bug, inviano notifiche a un team tramite chat o servizi di messaggistica oppure per varie altre azioni.You can use a webhook on an alert to route it to services that send SMS messages, to log bugs, to notify a team via chat or messaging services, or for various other actions. È anche possibile impostare un avviso del log attività per l'invio di un messaggio di posta all'attivazione di un avviso.You can also set up an activity log alert to send email when an alert is activated.

Questo articolo descrive come impostare un webhook da chiamare quando viene generato un avviso del log attività di Azure.This article describes how to set a webhook to be called when an Azure activity log alert fires. L'articolo illustra anche il modo in cui il payload per il protocollo HTTP POST viene percepito da un webhook.It also shows what the payload for the HTTP POST to a webhook looks like. Per informazioni sulla configurazione e lo schema di un avviso della metrica di Azure, vedere Configurare un webhook per un avviso della metrica di Azure.For information about the setup and schema of an Azure metric alert, see Configure a webhook on an Azure metric alert.

Nota

Attualmente, la funzionalità che supporta la chiamata di un webhook per un avviso del log attività di Azure è in anteprima.Currently, the feature that supports calling a webhook on an Azure activity log alert is in preview.

È possibile configurare un avviso del log attività tramite i cmdlet di Azure PowerShell, l'interfaccia della riga di comando multipiattaforma o l'API REST di Monitoraggio di Azure.You can set up an activity log alert by using Azure PowerShell cmdlets, a cross-platform CLI, or Azure Monitor REST APIs. Attualmente, non è possibile usare il portale di Azure per configurare un avviso del log attività.Currently, you can't use the Azure portal to set up an activity log alert.

Autenticazione del webhookAuthenticate the webhook

L'autenticazione del webhook può essere eseguita con uno di questi metodi:The webhook can authenticate by using either of these methods:

  • Autorizzazione basata su token.Token-based authorization. L'URI del webhook viene salvato con un ID token.The webhook URI is saved with a token ID. Ad esempio: https://mysamplealert/webcallback?tokenid=sometokenid&someparameter=somevalueFor example: https://mysamplealert/webcallback?tokenid=sometokenid&someparameter=somevalue
  • Autorizzazione di base.Basic authorization. L'URI del webhook viene salvato con nome utente e password.The webhook URI is saved with a username and password. Ad esempio: https://userid:password@mysamplealert/webcallback?someparamater=somevalue&foo=barFor example: https://userid:password@mysamplealert/webcallback?someparamater=somevalue&foo=bar

Schema del payloadPayload schema

L'operazione POST contiene il seguente payload e schema JSON per tutti gli avvisi basati sul log attività.The POST operation contains the following JSON payload and schema for all activity log-based alerts. Questo schema è simile a quello usato per gli avvisi basati su metriche.This schema is similar to the one used for metric-based alerts.

{
    "WebhookName": "Alert1515526229589",
    "RequestBody": {
        "schemaId": "Microsoft.Insights/activityLogs",
        "data": {
            "status": "Activated",
            "context": {
                "activityLog": {
                    "authorization": {
                        "action": "Microsoft.Compute/virtualMachines/deallocate/action",
                        "scope": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ContosoVM/providers/Microsoft.Compute/virtualMachines/ContosoVM1"
                    },
                    "channels": "Operation",
                    "claims": {
                        "aud": "https://management.core.windows.net/",
                        "iss": "https://sts.windows.net/00000000-0000-0000-0000-000000000000/",
                        "iat": "1234567890",
                        "nbf": "1234567890",
                        "exp": "1234567890",
                        "aio": "Y2NgYBD8ZLlhu27JU6WZsXemMIvVAAA=",
                        "appid": "00000000-0000-0000-0000-000000000000",
                        "appidacr": "2",
                        "e_exp": "262800",
                        "http://schemas.microsoft.com/identity/claims/identityprovider": "https://sts.windows.net/00000000-0000-0000-0000-000000000000/",
                        "http://schemas.microsoft.com/identity/claims/objectidentifier": "00000000-0000-0000-0000-000000000000",
                        "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier": "00000000-0000-0000-0000-000000000000",
                        "http://schemas.microsoft.com/identity/claims/tenantid": "00000000-0000-0000-0000-000000000000",
                        "uti": "XnCk46TrDkOQXwo49Y8fAA",
                        "ver": "1.0"
                    },
                    "caller": "00000000-0000-0000-0000-000000000000",
                    "correlationId": "00000000-0000-0000-0000-000000000000",
                    "description": "",
                    "eventSource": "Administrative",
                    "eventTimestamp": "2018-01-09T20:11:25.8410967+00:00",
                    "eventDataId": "00000000-0000-0000-0000-000000000000",
                    "level": "Informational",
                    "operationName": "Microsoft.Compute/virtualMachines/deallocate/action",
                    "operationId": "00000000-0000-0000-0000-000000000000",
                    "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/ContosoVM/providers/Microsoft.Compute/virtualMachines/ContosoVM1",
                    "resourceGroupName": "ContosoVM",
                    "resourceProviderName": "Microsoft.Compute",
                    "status": "Succeeded",
                    "subStatus": "",
                    "subscriptionId": "00000000-0000-0000-0000-000000000000",
                    "submissionTimestamp": "2018-01-09T20:11:40.2986126+00:00",
                    "resourceType": "Microsoft.Compute/virtualMachines"
                }
            },
            "properties": {}
        }
    },
    "RequestHeader": {
        "Expect": "100-continue",
        "Host": "s1events.azure-automation.net",
        "User-Agent": "IcMBroadcaster/1.0",
        "X-CorrelationContext": "RkkKACgAAAACAAAAEADlBbM7x86VTrHdQ2JlmlxoAQAQALwazYvJ/INPskb8S5QzgDk=",
        "x-ms-request-id": "00000000-0000-0000-0000-000000000000"
    }
}
Nome dell'elementoElement name DESCRIZIONEDescription
statusstatus Usato per avvisi relativi alle metriche.Used for metric alerts. Sempre impostato su "Activated" per gli avvisi del log attività.For activity log alerts, always set to Activated.
contextcontext Contesto dell'evento.The context of the event.
activityLogactivityLog Proprietà del log dell'evento.The log properties of the event.
autorizzazioneauthorization Proprietà di controllo degli accessi in base al ruolo per l'evento.The Role-Based Access Control (RBAC) properties of the event. Queste proprietà includono in genere action, role e scope.These properties usually include action, role, and scope.
actionaction Azione acquisita dall'avviso.The action captured by the alert.
scopescope Ambito dell'avviso (ovvero, la risorsa).The scope of the alert (that is, the resource).
channelschannels Operazione.The operation.
claimsclaims Raccolta di informazioni correlate alle attestazioni.A collection of information as it relates to the claims.
callercaller GUID o nome dell'utente che ha eseguito l'operazione, attestazione UPN o attestazione SPN, a seconda della disponibilità.The GUID or username of the user who performed the operation, the UPN claim, or the SPN claim based on availability. Può essere un valore Null per determinate chiamate di sistema.Can be a null value for certain system calls.
correlationIdcorrelationId In genere un GUID in formato stringa.Usually a GUID in string format. Gli eventi con correlationId appartengono alla stessa azione di livello superiore.Events with correlationId belong to the same larger action. In genere presentano lo stesso valore correlationId.They usually have the same correlationId value.
descriptiondescription Descrizione dell'avviso impostata al momento della creazione dell'avviso.The alert description that was set when the alert was created.
eventSourceeventSource Nome del servizio o dell'infrastruttura di Azure che ha generato l'evento.The name of the Azure service or infrastructure that generated the event.
eventTimestampeventTimestamp Data e ora in cui si è verificato l'evento.The time the event occurred.
eventDataIdeventDataId Identificatore univoco dell'evento.The unique identifier of the event.
levellevel Uno dei valori seguenti: Critical, Error, Warning, Informational o Verbose.One of the following values: Critical, Error, Warning, Informational, or Verbose.
operationNameoperationName Nome dell'operazione.The name of the operation.
operationIdoperationId In genere un GUID condiviso tra gli eventi.Usually a GUID that's shared among the events. Il GUID corrisponde di solito a una singola operazione.The GUID usually corresponds to a single operation.
ResourceIdresourceId ID della risorsa interessata.The resource ID of the affected resource.
resourceGroupNameresourceGroupName Nome del gruppo di risorse per la risorsa interessata.The name of the resource group for the affected resource.
resourceProviderNameresourceProviderName Provider della risorsa interessata.The resource provider of the affected resource.
statusstatus Valore stringa che indica lo stato dell'operazione.A string value that indicates the status of the operation. I valori comuni includono: Started, In Progress, Succeeded, Failed, Active e Resolved.Common values include Started, In Progress, Succeeded, Failed, Active, and Resolved.
subStatussubStatus In genere include il codice di stato HTTP della chiamata REST corrispondente.Usually includes the HTTP status code of the corresponding REST call. Può includere anche altre stringhe che descrivono uno stato secondario.It might also include other strings that describe a substatus. I valori di stato secondario comuni includono OK (codice di stato HTTP: 200), Created (codice di stato HTTP: 201), Accepted (codice di stato HTTP: 202), No Content (codice di stato HTTP: 204), Bad Request (codice di stato HTTP: 400), Not Found (codice di stato HTTP: 404), Conflict (codice di stato HTTP: 409), Internal Server Error (codice di stato HTTP: 500), Service Unavailable (codice di stato HTTP: 503), Gateway Timeout (codice di stato HTTP: 504).Common substatus values include OK (HTTP Status Code: 200), Created (HTTP Status Code: 201), Accepted (HTTP Status Code: 202), No Content (HTTP Status Code: 204), Bad Request (HTTP Status Code: 400), Not Found (HTTP Status Code: 404), Conflict (HTTP Status Code: 409), Internal Server Error (HTTP Status Code: 500), Service Unavailable (HTTP Status Code: 503), and Gateway Timeout (HTTP Status Code: 504).
subscriptionIdsubscriptionId ID della sottoscrizione di Azure.The Azure Subscription ID.
submissionTimestampsubmissionTimestamp Data e ora in cui l'evento è stato generato dal servizio di Azure che ha elaborato la richiesta.The time at which the event was generated by the Azure service that processed the request.
resourceTyperesourceType Tipo di risorsa che ha generato l'evento.The type of resource that generated the event.
propertiesproperties Set di coppie chiave/valore contenente i dettagli sull'evento.A set of key/value pairs that has details about the event. Ad esempio, Dictionary<String, String>.For example, Dictionary<String, String>.

Passaggi successiviNext steps