Creare un'azione di avviso webhook in Log Analytics di OMS per inviare messaggi a SlackCreate an alert webhook action in OMS Log Analytics to send message to Slack

Una delle azioni che è possibile eseguire in risposta a un avviso di Log Analytics è la creazione di un webhook, che consente di richiamare un processo esterno tramite una singola richiesta HTTP.One of the actions you can run in response to a Log Analytics alert is a webhook, which allows you to invoke an external process through a single HTTP request. Per informazioni dettagliate su avvisi e webhook, vedere Avvisi in Log AnalyticsYou can read about details of alerts and webhooks in Alerts in Log Analytics

Questo articolo illustra un esempio di creazione di un'azione webhook in un avviso di Log Analytics tramite il servizio di messaggistica Slack.In this article, we’ll walk through an example of creating a webhook action in a Log Analytics alert using Slack which is a messaging service.

Nota

Per completare l'esempio è necessario disporre di un account Slack.You must have a Slack account to complete this sample. È possibile iscriversi per ottenere un account gratuito nel sito Web slack.com.You can sign up for a free account at slack.com.

Passaggio 1: Abilitare gli webhook in SlackStep 1 - Enable webhooks in Slack

  1. Accedere al sito Web Slack all'indirizzo slack.com.Sign in to Slack at slack.com.
  2. Selezionare un canale nella sezione Channels (Canali) del riquadro a sinistra,Select a channel in the Channels section in the left pane. che costituirà il canale a cui verrà inviato il messaggio.This is the channel that the message will be sent to. È possibile selezionare uno dei canali predefiniti, ad esempio general o random.You can select one of the default channels such as general or random. In uno scenario di produzione sarà probabilmente necessario creare un canale speciale, ad esempio criticalservicealerts.In a production scenario, you would most likely create a special channel such as criticalservicealerts.

    Canali Slack

  3. Fare clic su Add an app or custom integration (Aggiungi un'app o l'integrazione personalizzata) per aprire la directory dell'app.Click Add an app or custom integration to open the App Directory.
  4. Digitare webhooks nella casella di ricerca e quindi selezionare Incoming WebHooks(Webhook in ingresso).Type webhooks into the search box and then select Incoming WebHooks.

    Canali Slack

  5. Fare clic su Install (Installa) vicino al nome del proprio team.Click Install next to your team name.
  6. Fare clic su Add Configuration(Aggiungi configurazione).Click Add Configuration.
  7. Selezionare il canale che si intende usare in questo esempio e quindi fare clic su Add Incoming WebHooks integration(Aggiungi integrazione webhook in ingresso).Select the the channel that you're going to use for this example, and then click Add Incoming WebHooks integration.
  8. Copiare l'indirizzo contenuto in Webhook URL (URL webhook),Copy the Webhook URL. che dovrà essere incollato nella configurazione dell'avviso.You'll be pasting this into the Alert configuration.

    Canali Slack

Passaggio 2: Creare una regola di avviso in Log AnalyticsStep 2 - Create alert rule in Log Analytics

  1. Creare una regola di avviso con le impostazioni seguenti.Create an alert rule with the following settings.
    • Query: Type=Event EventLevelName=errorQuery: Type=Event EventLevelName=error
    • Check for this alert every: 5 minutes (Verifica la presenza di questo avviso ogni: 5 minuti)Check for this alert every: 5 minutes
    • The number of results is: greater than 10 (Il numero di risultati è: maggiore di 10)The number of results is: greater than 10
    • Over this time window: 60 minutes (Finestra temporale: 60 minuti)Over this time window: 60 minutes
    • Selezionare Yes (Sì) per Webhook e No per le altre azioni.Select Yes for Webhook and No for the other actions.
  2. Incollare l'URL del sito Slack nel campo Webhook URL (URL webhook).Paste the Slack URL into the Webhook URL field.
  3. Selezionare l'opzione che consente di includere un payload JSON personalizzato.Select the option to include a custom JSON payload.
  4. Slack prevede un payload in formato JSON con un parametro denominato text.Slack expects a payload formatted in JSON with a parameter named text. che costituisce il testo visualizzato nel messaggio che verrà creato.This is the text that it will display in the message it creates. Usando il simbolo # è possibile includere più di un parametro di avviso.You can use one or more of the alert parameters using the # symbol such as in the following example.

    {
    "text":"#alertrulename fired with #searchresultcount records which exceeds the over threshold of #thresholdvalue ."
    }
    

    payload JSON di esempio

  5. Fare clic su Save (Salva) per salvare la regola di avviso.Click Save to save the alert rule.
  6. Attendere il tempo necessario alla creazione dell'avviso. In Slack apparirà un messaggio simile al seguente.Wait sufficient time for an alert to be created and then check Slack for a message which will be similar to the following.

    webhook di esempio in Slack

Payload di un webhook avanzato per SlackAdvanced webhook payload for Slack

Con Slack è possibile personalizzare in maniera significativa i messaggi in ingresso.You can extensively customize inbound messages with Slack. Per altre informazioni, vedere la sezione Incoming Webhooks (Webhook in ingresso) del sito Web Slack.For more information, see Incoming Webhooks on the Slack website. Di seguito è riportato un payload complesso che consente la creazione di un messaggio avanzato con formattazione:Following is a more complex payload to create a rich message with formatting:

{
    "attachments": [
        {
            "title":"OMS Alerts Custom Payload",
            "fields": [
                {
                    "title": "Alert Rule Name",
                    "value": "#alertrulename"},
                {
                    "title": "Link To SearchResults",
                    "value": "<#linktosearchresults|OMS Search Results>"},
                {
                    "title": "Search Interval",
                    "value": "#searchinterval"},
                {
                    "title": "Threshold Operator",
                    "value": "#thresholdoperator"},
                {
                    "title": "Threshold Value",
                    "value": "#thresholdvalue"}
            ],
            "color": "#F35A00"
        }
    ]
}

In Slack viene visualizzato un messaggio simile al seguente.This would generate a message in Slack similar to the following.

messaggio di esempio in Slack

RiepilogoSummary

Con l'attivazione di questa regola, ogni volta che vengono soddisfatti determinati criteri viene inviato un messaggio a Slack.With this alert rule in place, you would have a message sent to Slack every time the criteria is met.

Questo è solo un esempio delle varie azioni che è possibile creare in risposta a un avviso.This is only one example of an action that you can create in response to an alert. È possibile ad esempio creare un'azione webhook per chiamare un altro servizio esterno, un'azione runbook per avviare un runbook in Automazione di Azure o un'azione di posta elettronica per inviare un messaggio di posta a se stessi o ad altri destinatari.You could create a webhook action that calls another external service, a runbook action to start a runbook in Azure Automation, or an email action to send a mail to yourself or other recipients.

Passaggi successiviNext Steps