Scenario B: invio di messaggi di allarme a Slack e SMS

Impostare le notifiche automatiche su un canale Slack e un numero di telefono SMS quando vengono attivati gli allarmi.

Questo scenario prevede l'impostazione di un endpoint Slack per un canale e la creazione di un allarme che invia un messaggio a tale canale e a un numero di telefono SMS. Quando l'allarme viene attivato, il servizio Notifiche invia il messaggio di allarme all'argomento di destinazione, che viene quindi visualizzato nelle sottoscrizioni dell'argomento. In questo scenario, le sottoscrizioni dell'argomento includono il canale Slack e il numero di telefono SMS, nonché l'indirizzo di posta elettronica.

Questa immagine mostra le notifiche nel contesto di uno scenario che invia messaggi di allarme a Slack.

Criterio IAM necessario

Per utilizzare Oracle Cloud Infrastructure, un amministratore deve essere un membro di un gruppo a cui è stato concesso l'accesso di sicurezza in un criterio da un amministratore della tenancy. Questo accesso è necessario se si utilizza la console o l'API REST con un SDK, un'interfaccia CLI o un altro strumento. Se viene visualizzato un messaggio che informa che non si dispone dell'autorizzazione o che non si è autorizzati, verificare con l'amministratore della tenancy il tipo di accesso di cui si dispone e il compartimento in cui funziona l'accesso.

Se si è membri del gruppo Administrators, si dispone già dell'accesso necessario per eseguire questo scenario. In caso contrario, è necessario accedere a Monitoraggio e Notifiche.

Task 1: Impostare l'endpoint Slack

Creare un webhook in entrata nell'applicazione Slack.

Esempio di webhook in entrata per un'applicazione Slack (equivalente all'endpoint Slack per la sottoscrizione): https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX

Dopo aver impostato l'endpoint Slack, è possibile completare tutti gli altri passi dello scenario nella console. In alternativa, puoi utilizzare l'interfaccia CLI o l'API di Oracle Cloud Infrastructure, che ti consente di eseguire manualmente le singole operazioni.

Task 2: Creare l'argomento

Per informazioni sulla risoluzione dei problemi, vedere Risoluzione dei problemi delle notifiche.

  • Nota

    Un altro workflow della console per questo scenario prevede la creazione di un nuovo argomento e la prima sottoscrizione quando si crea l'allarme, quindi si creano sottoscrizioni aggiuntive in tale argomento.
    1. Aprire il pannello Crea argomento: nella pagina di elenco Argomenti, selezionare Crea argomento. Per informazioni su come trovare la pagina dell'elenco, vedere Elenco di argomenti.
    2. Per Nome, digitare quanto segue: Argomento di allarme
    3. Selezionare Crea.
  • Per creare un argomento, utilizzare il comando oci ons topic create e i parametri necessari:

    oci ons topic create --name <name> --compartment-id <compartment_OCID>

    Ad esempio:

    oci ons topic create --name "Alarm Topic" --compartment-id "<compartment_OCID>"

    Per un elenco completo dei parametri e dei valori per i comandi CLI, vedere Command Line Reference for Notifications.

  • Eseguire l'operazione CreateTopic per creare un argomento.

    Ad esempio:

    POST /20181201/topics
    Host: notification.us-phoenix-1.oraclecloud.com
    <authorization and other headers>
    {
      "name": "Alarm Topic",
      "compartmentId": "<compartment_OCID>"
    }

Task 3: Creare le sottoscrizioni

Per informazioni sulla risoluzione dei problemi, vedere Risoluzione dei problemi delle notifiche.

    1. Selezionare l'argomento creato in precedenza (il nome di esempio era Argomento di allarme): nella pagina di elenco Argomenti, selezionare l'argomento da utilizzare. Per informazioni su come trovare la pagina dell'elenco o l'argomento, vedere Elenco di argomenti.
    2. Creare la sottoscrizione Slack.
      1. Aprire il pannello Crea sottoscrizione: nella pagina dei dettagli dell'argomento, selezionare Crea sottoscrizione.
        Viene visualizzato il pannello Crea sottoscrizione.
      2. Per Protocollo, selezionare Slack.
      3. Completare gli altri campi.
        Campo descrizione;
        URL

        Digitare (o copiare e incollare) l'endpoint Slack creato in precedenza. Includere il token webhook.

        Endpoint di esempio:

        https://hooks.slack.com/services/<webhook-token>
      4. Selezionare Crea.
      5. Confermare la nuova sottoscrizione Slack: passare all'URL di conferma inviato a Slack.
    3. Creare la sottoscrizione SMS.
      1. Aprire il pannello Crea sottoscrizione: nella pagina dei dettagli dell'argomento, selezionare Crea sottoscrizione.
        Viene visualizzato il pannello Crea sottoscrizione.
      2. Per Protocollo, selezionare SMS.
      3. Completare gli altri campi.
        Campo descrizione;
        Paese Selezionare il paese per il numero di telefono. Vedere Before You Begin.
        Numero di telefono Immettere il numero di telefono utilizzando il formato E.164.
      4. Selezionare Crea.
      5. Confermare la nuova sottoscrizione SMS: seguire le istruzioni ricevute telefonicamente.
    4. Creare la sottoscrizione e-mail.
      1. Aprire il pannello Crea sottoscrizione: nella pagina dei dettagli dell'argomento, selezionare Crea sottoscrizione.
        Viene visualizzato il pannello Crea sottoscrizione.
      2. Per Protocollo, selezionare E-mail.
      3. Completare gli altri campi.
        Campo descrizione;
        E-mail Digitare un indirizzo di posta elettronica.
      4. Selezionare Crea.
      5. Conferma la nuova sottoscrizione e-mail: aprire il messaggio e-mail e passare all'URL di conferma.
  • Nota

    Dopo aver creato le sottoscrizioni, confermarle.

    Per creare ogni sottoscrizione, utilizzare il comando oci ons subscription create e i parametri necessari.

    oci ons subscription create --protocol <subscription_type> --subscription-endpoint <endpoint> --compartment-id <compartment_OCID> --topic-id <topic_OCID>

    Esempio di sottoscrizione Slack:

    oci ons subscription create --protocol "SLACK" --subscription-endpoint "<slack-endpoint>" --compartment-id "<compartment_OCID>" --topic-id "<topic_OCID>"

    Esempio di sottoscrizione SMS:

    oci ons subscription create --protocol "SMS" --subscription-endpoint "<sms-endpoint>" --compartment-id "<compartment_OCID>" --topic-id "<topic_OCID>"

    Esempio di sottoscrizione e-mail:

    oci ons subscription create --protocol "EMAIL" --subscription-endpoint "john.smith@example.com" --compartment-id "<compartment_OCID>" --topic-id "<topic_OCID>"

    Per un elenco completo dei parametri e dei valori per i comandi CLI, vedere Command Line Reference for Notifications.

  • Nota

    Dopo aver creato le sottoscrizioni, confermarle.

    Eseguire l'operazione CreateSubscription per creare ogni sottoscrizione.

    Esempio di sottoscrizione Slack:

    POST /20181201/subscriptions
    Host: notification.us-phoenix-1.oraclecloud.com
    <authorization and other headers>
    {
      "topicId": "<topic_OCID>",
      "compartmentId": "<compartment_OCID>",
      "protocol": "SLACK",
      "endpoint": "<slack-endpoint>"
    }

    Esempio di sottoscrizione SMS:

    POST /20181201/subscriptions
    Host: notification.us-phoenix-1.oraclecloud.com
    <authorization and other headers>
    {
      "topicId": "<topic_OCID>",
      "compartmentId": "<compartment_OCID>",
      "protocol": "SMS",
      "endpoint": "<sms-endpoint>"
    }

    Esempio di sottoscrizione e-mail:

    POST /20181201/subscriptions
    Host: notification.us-phoenix-1.oraclecloud.com
    <authorization and other headers>
    {
      "topicId": "<topic_OCID>",
      "compartmentId": "<compartment_OCID>",
      "protocol": "EMAIL",
      "endpoint": "john.smith@example.com"
    }

Task 4: Creare l'allarme

Per informazioni sulla risoluzione dei problemi, vedere Risoluzione dei problemi delle notifiche.

    1. Aprire la pagina Crea allarme.
      1. Aprire il menu di navigazione e selezionare Osservabilità e gestione. In Monitoraggio, selezionare Definizioni allarmi.
      2. Selezionare Crea allarme.

    2. Per Nome allarme, digitare quanto segue: Allarme utilizzo
    3. In Descrizione metrica selezionare la metrica, l'intervallo e la statistica.

      Campo Valore di esempio per questo scenario
      Compartimento Selezionare il compartimento contenente l'istanza da monitorare per un utilizzo elevato della CPU.
      Spazio di nomi metrica oci_computeagent
      Nome metrica CpuUtilization
      Intervallo 1m
      Statistiche Conteggio
    4. In Regola trigger impostare la soglia di allarme.

      Campo Valore di esempio per questo scenario
      Operatore maggiore di
      Valore 90
      Minuti di ritardo trigger 1
    5. In Notifiche, Destinazioni, selezionare l'argomento creato in precedenza.
      Campo Valore di esempio per questo scenario
      Servizio di destinazione Servizio notifiche
      Compartimento Selezionare il compartimento che contiene l'argomento creato in precedenza.
      Argomento Selezionare l'argomento creato in precedenza.
    6. Selezionare Salva allarme.

  • Utilizzare il comando oci monitoring Alarm create e i parametri richiesti per creare un allarme.

    oci monitoring alarm create --display-name <name> --compartment-id <compartment_OCID> --metric-compartment-id <compartment_OCID> --namespace <metric_namespace> --query-text <mql_expression> --severity <level> --destinations <file_or_text> --is-enabled <true_or_false>

    Ad esempio:

    oci monitoring alarm create --display-name "Utilization Alarm" --compartment-id "<compartment_OCID>" --metric-compartment-id "<compartment_OCID>" --namespace "oci_computeagent" --query-text "CpuUtilization[1m].count() > 90" --severity "CRITICAL" --destinations "<topic_OCID>" --is-enabled true

    Per un elenco completo dei parametri e dei valori per i comandi CLI, vedere Command Line Reference for Monitoring.

  • Eseguire l'operazione CreateAlarm per creare un allarme.

    Ad esempio:

    POST /20180401/alarms
    Host: telemetry.us-phoenix-1.oraclecloud.com
    <authorization and other headers>
    {
      "displayName": "Utilization Alarm",
      "compartmentId": "<compartment_OCID>",
      "metricCompartmentId": "<compartment_OCID>",
      "namespace": "oci_computeagent",
      "query": "CpuUtilization[1m].count() > 90",
      "severity": "CRITICAL",
      "destinations":
      [
        "<topic_OCID>"
      ],
      "isEnabled": true
    }