Aggiungere azioni alle regole di avviso in Log Analytics

Quando viene creato un avviso in Log Analytics, è possibile scegliere di configurare la regola di avviso per eseguire una o più azioni. Questo articolo descrive le diverse azioni disponibili e offre informazioni sulla configurazione di ogni tipologia di azione.

Azione Descrizione
Indirizzo di posta elettronica Inviare un messaggio di posta elettronica con i dettagli dell'avviso a uno o più destinatari.
Webhook Richiamare un processo esterno tramite una singola richiesta HTTP POST.
Runbook Avviare un runbook in Automazione di Azure.

Azioni di posta elettronica

Le azioni di posta elettronica inviano un messaggio di posta elettronica con i dettagli dell'avviso a uno o più destinatari. È possibile specificare l'oggetto del messaggio, ma il contenuto è un formato standard creato da Log Analytics. Include informazioni di riepilogo, come il nome dell'avviso, oltre ai dettagli di un massimo di dieci record restituiti dalla ricerca nei log. Include anche un collegamento a una ricerca nei log in Log Analytics che restituirà l'intero set di record dalla query. Il mittente del messaggio è Team di Microsoft Operations Management Suite <noreply@oms.microsoft.com>.

Le azioni di posta elettronica includono le proprietà elencate nella tabella seguente.

Proprietà Descrizione
Oggetto Oggetto nel messaggio di posta elettronica. È possibile modificare il corpo del messaggio.
Destinatari Indirizzi di tutti i destinatari di posta elettronica. Se si specifica più di un indirizzo, separare ognuno con un punto e virgola (;).

Azioni webhook

Le azioni Webhook consentono di richiamare un processo esterno tramite una singola richiesta HTTP POST. Il servizio chiamato deve supportare i webhook e determinare come usare gli eventuali payload che riceve. È anche possibile chiamare un'API REST che non supporta in modo specifico i webhook, purché la richiesta sia in un formato l'API riconosce. Esempi di utilizzo di un webhook in risposta a un avviso sono l'invio di un messaggio in Slack o la creazione di un evento imprevisto in PagerDuty. Una procedura dettagliata completa della creazione di una regola di avviso con un webhook per chiamare Slack è disponibile nell'articolo relativo ai webhook negli avvisi di Log Analytics.

Le azioni webhook includono le proprietà elencate nella tabella seguente.

Proprietà Descrizione
URL webhook URL del webhook.
Payload JSON personalizzato Payload personalizzato da inviare insieme al webhook. Vedere di seguito per altri dettagli.

I webhook includono un URL e un payload in fermato JSON che corrisponde ai dati inviati al servizio esterno. Per impostazione predefinita, il payload include i valori riportati nella tabella seguente. È possibile scegliere di sostituire questo payload con un payload personalizzato. In questo caso è possibile usare le variabili nella tabella per ognuno dei parametri per includerne il valore nel payload personalizzato.

Parametro Variabile Descrizione
AlertRuleName #AlertRuleName Nome della regola di avviso.
AlertThresholdOperator #thresholdoperator Operatore di soglia per la regola di avviso. Maggiore di o Minore di.
AlertThresholdValue #thresholdvalue Valore di soglia per la regola di avviso.
LinkToSearchResults #LinkToSearchResults Collegamento alla ricerca nei log di Log Analytics che restituisce i record della query che ha creato l'avviso.
ResultCount #searchresultcount Numero di record nei risultati della ricerca.
SearchIntervalEndtimeUtc #SearchIntervalEndtimeUtc Ora di fine per la query in formato UTC.
SearchIntervalInSeconds #searchinterval Intervallo di tempo per la regola di avviso.
SearchIntervalStartTimeUtc #SearchIntervalStartTimeUtc Ora di inizio per la query in formato UTC.
SearchQuery #SearchQuery Query di ricerca nei log usata dalla regola di avviso.
SearchResults Vedere di seguito Record restituiti dalla query in formato JSON. Limitati ai primi 5.000 record.
WorkspaceID #WorkspaceID ID dell'aea di lavoro di OMS.

Ad esempio, è possibile specificare il payload personalizzato seguente che include un singolo parametro denominato text. Il servizio chiamato da questo webhook si aspetta questo parametro.

{
    "text":"#alertrulename fired with #searchresultcount over threshold of #thresholdvalue."
}

Il payload di esempio viene risolto in una stringa di simile alla seguente quando viene inviato al webhook.

{
    "text":"My Alert Rule fired with 18 records over threshold of 10 ."
}

Per includere i risultati della ricerca in un payload personalizzato, aggiungere la riga seguente come proprietà di primo livello nel payload JSON.

"IncludeSearchResults":true

Ad esempio, per creare un payload personalizzato che include solo il nome dell'avviso e i risultati della ricerca, è possibile usare quanto segue.

{
   "alertname":"#alertrulename",
   "IncludeSearchResults":true
}

Per un esempio completo di creazione di una regola di avviso con un webhook per avviare un servizio esterno, vedere l'articolo su come creare un'azione webhook di avviso in Log Analytics di OMS per inviare messaggi a Slack.

Azioni runbook

Le azioni runbook avviano un runbook in Automazione di Azure. Per usare questo tipo di azione, è necessario che la soluzione di automazione sia installata e configurata nell'area di lavoro di OMS. È possibile selezionare i runbook nell'account di automazione che è stato configurato nella soluzione di automazione.

Le azioni runbook includono le proprietà elencate nella tabella seguente.

Proprietà Descrizione
Runbook Runbook da avviare quando viene creato un avviso.
Esegui in Specificare Azure per eseguire il runbook nel cloud. Specificare Ruolo di lavoro ibrido per eseguire il runbook in un agente in cui è installato un ruolo di lavoro ibrido per runbook.

Le azioni runbook avviano il runbook tramite un webhook. Quando si crea la regola di avviso, viene creato automaticamente un nuovo webhook per il runbook con il nome OMS Alert Remediation seguito da un GUID.

Non è possibile popolare direttamente alcun parametro del runbook, ma il parametro $WebhookData includerà i dettagli dell'avviso, inclusi i risultati della ricerca nei log che lo ha creato. Il runbook dovrà definire $WebhookData come parametro per consentire l'accesso alle proprietà dell'avviso. I dati dell'avviso sono disponibili in formato JSON in una singola proprietà denominata SearchResults nella proprietà RequestBody di $WebhookData. Saranno incluse le proprietà riportate nella tabella seguente.

Nodo Description
id Percorso e GUID della ricerca.
__metadata Informazioni sull'avviso, inclusi il numero di record e lo stato dei risultati della ricerca.
value Voce separata per ogni record nei risultati della ricerca. I dettagli della voce corrisponderanno alle proprietà e ai valori del record.

Ad esempio, il runbook seguente estrae i record restituiti dalla ricerca nel log e assegna proprietà diverse in base al tipo di ogni record. Si noti che il runbook converte prima di tutto RequestBody da JSON, in modo che possa essere usato come oggetto in PowerShell.

param ( 
    [object]$WebhookData
)

$RequestBody = ConvertFrom-JSON -InputObject $WebhookData.RequestBody
$Records     = $RequestBody.SearchResults.value

foreach ($Record in $Records)
{
    $Computer = $Record.Computer

    if ($Record.Type -eq 'Event')
    {
        $EventNo    = $Record.EventID
        $EventLevel = $Record.EventLevelName
        $EventData  = $Record.EventData
    }

    if ($Record.Type -eq 'Perf')
    {
        $Object    = $Record.ObjectName
        $Counter   = $Record.CounterName
        $Instance  = $Record.InstanceName
        $Value     = $Record.CounterValue
    }
}

Passaggi successivi