Scénario B : envoi de messages d'alarme sur Slack et SMS

Configurez des notifications automatiques sur un canal Slack et un numéro de téléphone mobile lorsque des alarmes sont déclenchées.

Ce scénario implique la configuration d'une adresse Slack pour un canal et d'une alarme qui envoie un message à la fois à ce canal et à un numéro de téléphone SMS. Lorsque l'alarme est déclenchée, le service Notifications envoie le message d'alarme au sujet de destination, qui le distribue à ses abonnements. Dans ce scénario, les abonnements du sujet incluent le canal Slack et le numéro de téléphone SMS, ainsi que votre adresse électronique.

Cette image présente Notifications dans le contexte d'un scénario qui envoie des messages d'alarme à Slack.

Stratégie IAM requise

Pour utiliser Oracle Cloud Infrastructure, un administrateur doit être membre d'un groupe disposant d'un accès sécurisé dans une stratégie par un administrateur de location. Cet accès est requis, que vous utilisiez la console ou l'API REST avec un kit SDK, une interface de ligne de commande ou un autre outil. Si un message vous indique que vous ne disposez pas des droits d'accès ou des autorisations nécessaires, vérifiez auprès de l'administrateur de location le type d'accès dont vous disposez et le compartiment dans lequel votre accès fonctionne.

Si vous êtes membre du groupe Administrateurs, vous disposez déjà de l'accès requis pour exécuter ce scénario. Dans le cas contraire, vous devez avoir accès à Monitoring et à Notifications.

Tâche 1 : configurer l'adresse Slack

Créez un webhook entrant dans votre application Slack.

Exemple de webhook entrant sur une application Slack (équivalent de l'adresse Slack pour l'abonnement) : https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX

Une fois l'adresse Slack configurée, vous pouvez effectuer toutes les autres étapes de scénario dans la console. Vous pouvez également utiliser l'interface de ligne de commande ou l'API Oracle Cloud Infrastructure, vous permettant d'exécuter les différentes opérations vous-même.

Tâche 2 : créer le sujet

Pour obtenir de l'aide sur le dépannage, reportez-vous à Dépannage de Notifications.

  • Remarque

    Un autre workflow de console pour ce scénario consiste à créer un sujet et le premier abonnement lorsque vous créez l'alarme, puis à créer des abonnements supplémentaires dans ce sujet.
    1. Ouvrez le panneau Créer un sujet : sur la page de liste Sujets, sélectionnez Créer un sujet. Si vous avez besoin d'aide pour trouver la page de liste, reportez-vous à la rubrique Liste des sujets.
    2. Pour Nom, saisissez les informations suivantes : Rubrique d'alarme
    3. Sélectionnez Créer.
  • Utilisez la commande oci ons topic create et les paramètres requis pour créer un sujet :

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

    Exemple :

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

    Afin d'obtenir la liste complète des paramètres et des valeurs des commandes d'interface de ligne de commande, reportez-vous à Référence de ligne de commande pour Notifications.

  • Exécutez l'opération CreateTopic pour créer un sujet.

    Exemple :

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

Tâche 3 : créer les abonnements

Pour obtenir de l'aide sur le dépannage, reportez-vous à Dépannage de Notifications.

    1. Sélectionnez le sujet que vous avez créé précédemment (par exemple, Rubrique d'alarme) : sur la page de liste Rubriques, sélectionnez le sujet à utiliser. Si vous avez besoin d'aide pour rechercher la page de liste ou le sujet, reportez-vous à Liste des sujets.
    2. Créez l'abonnement Slack.
      1. Ouvrez le panneau Créer un abonnement : sur la page de détails du sujet, sélectionnez Créer un abonnement.
        Le panneau Créer un abonnement apparaît.
      2. Pour Protocole, sélectionnez Slack.
      3. Renseignez les autres champs.
        Champ Description
        URL

        Saisissez (ou copiez-collez) l'adresse Slack que vous avez créée précédemment. Incluez le jeton webhook.

        Exemple d'adresse :

        https://hooks.slack.com/services/<webhook-token>
      4. Sélectionnez Créer.
      5. Confirmez le nouvel abonnement Slack : accédez à l'URL de confirmation envoyée à Slack.
    3. Créez l'abonnement par SMS.
      1. Ouvrez le panneau Créer un abonnement : sur la page de détails du sujet, sélectionnez Créer un abonnement.
        Le panneau Créer un abonnement apparaît.
      2. Pour Protocole, sélectionnez SMS.
      3. Renseignez les autres champs.
        Champ Description
        Pays Sélectionnez le pays du numéro de téléphone. Reportez-vous à Avant de commencer.
        Numéro de téléphone Saisissez le numéro de téléphone au format E.164.
      4. Sélectionnez Créer.
      5. Confirmez le nouvel abonnement SMS : suivez les instructions reçues au téléphone.
    4. Créez l'abonnement e-mail.
      1. Ouvrez le panneau Créer un abonnement : sur la page de détails du sujet, sélectionnez Créer un abonnement.
        Le panneau Créer un abonnement apparaît.
      2. Pour Protocol, sélectionnez Email.
      3. Renseignez les autres champs.
        Champ Description
        Courriel Saisissez une adresse électronique.
      4. Sélectionnez Créer.
      5. Confirmer le nouvel abonnement par courriel : ouvrez le courriel et accédez à l'URL de confirmation.
  • Remarque

    Après avoir créé les abonnements, confirmez-les.

    Utilisez la commande oci ons subscription create et les paramètres requis pour créer chaque abonnement :

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

    Exemple d'abonnement Slack :

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

    Exemple d'abonnement par SMS :

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

    Exemple d'abonnement aux courriels :

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

    Afin d'obtenir la liste complète des paramètres et des valeurs des commandes d'interface de ligne de commande, reportez-vous à Référence de ligne de commande pour Notifications.

  • Remarque

    Après avoir créé les abonnements, confirmez-les.

    Exécutez l'opération CreateSubscription pour créer chaque abonnement.

    Exemple d'abonnement 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>"
    }

    Exemple d'abonnement par 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>"
    }

    Exemple d'abonnement aux courriels :

    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"
    }

Tâche 4 : création de l'alarme

Pour obtenir de l'aide sur le dépannage, reportez-vous à Dépannage de Notifications.

    1. Ouvrez la page Créer une alarme.
      1. Ouvrez le menu de navigation et sélectionnez Observation et gestion. Sous Surveillance, sélectionnez Définitions d'alarme.
      2. Sélectionnez Créer une alarme.

    2. Pour Nom de l'alarme, saisissez ce qui suit : Alarme d'utilisation
    3. Sous Description de mesure, sélectionnez la mesure, l'intervalle et la statistique.

      Champ Exemple de valeur pour ce scénario
      Compartiment Sélectionnez le compartiment qui contient l'instance à surveiller pour une utilisation élevée de l'UC.
      Espace de noms de mesure oci_computeagent
      Nom de mesure CpuUtilization
      Intervalle 1m
      Statistique Compte
    4. Sous Règle de déclencheur, configurez le seuil d'alarme.

      Champ Exemple de valeur pour ce scénario
      Opérateur supérieur à
      Valeur 90
      Délai de déclenchement en minutes 1
    5. Sous Notifications, Destinations, sélectionnez le sujet que vous avez créé précédemment.
      Champ Exemple de valeur pour ce scénario
      Service de destination Service Notifications
      Compartiment Sélectionnez le compartiment contenant le sujet créé précédemment.
      Sujet Sélectionnez le sujet que vous avez créé précédemment.
    6. Sélectionnez Enregistrer l'alarme.

  • Utilisez la commande oci monitoring alarm create et les paramètres requis pour créer une alarme :

    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>

    Exemple :

    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

    Afin d'obtenir la liste complète des paramètres et des valeurs des commandes d'interface de ligne de commande, reportez-vous à Référence de ligne de commande pour Monitoring.

  • Exécutez l'opération CreateAlarm pour créer une alarme.

    Exemple :

    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
    }