Caso B: Envío de Mensajes de Alarma a Slack y SMS

Configure notificaciones automáticas para un canal de Slack y un número de teléfono SMS cuando se disparen alarmas.

Este escenario implica la configuración de un punto final de Slack para un canal y la creación de una alarma que envíe un mensaje tanto a ese canal como a un número de teléfono SMS. Cuando se activa la alarma, el servicio de notificaciones envía el mensaje de alarma al tema de destino, que a continuación distribuye las suscripciones del tema. En este escenario, las suscripciones del tema incluyen el canal de Slack y el número de teléfono de SMS, así como la dirección de correo electrónico.

Esta imagen muestra las notificaciones en el contexto de un escenario que envía mensajes de alarma a Slack.

Política de IAM necesaria

Para utilizar Oracle Cloud Infrastructure, un administrador debe otorgarle acceso de seguridad en una política . Este acceso es necesario tanto si utiliza la Consola como la API de REST con un SDK, una CLI u otra herramienta. Si aparece un mensaje que le informa de que no tiene permiso o no tiene autorización, verifique con el administrador el tipo de acceso que tiene y en qué compartimento trabajar.

Si es miembro del grupo Administradores, ya tendrá el acceso necesario para ejecutar este escenario. De lo contrario, necesita acceso a los servicios Monitoring y Notifications.

Tarea 1: Configuración del punto final de Slack

Cree un webhook entrante en la aplicación Slack.

Ejemplo de un webhook entrante para una aplicación de Slack (equivalente al punto final de Slack para su suscripción): https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX

Una vez configurado el punto final de Slack, puede completar todos los demás pasos del escenario en la consola. También puede utilizar la CLI o API de Oracle Cloud Infrastructure, que le permite ejecutar las operaciones individuales.

Tarea 2: Crear el tema

Para obtener ayuda con la resolución de problemas, consulte Resolución de problemas de notificaciones.

  • Nota

    Otro flujo de trabajo de la consola de este escenario implica la creación de un nuevo tema y la primera suscripción al crear la alarma y, a continuación, la creación de suscripciones adicionales en ese tema.
    1. Abra el panel Crear Tema: en la página de lista Temas, seleccione Crear Tema. Si necesita ayuda para buscar la página de lista, consulte Lista de temas.
    2. Para Nombre, escriba lo siguiente: Tema de alarma
    3. Haga clic en Crear.
  • Utilice el comando oci ons topic create y los parámetros necesarios para crear un tema:

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

    Ejemplo:

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

    Para obtener una lista completa de parámetros y valores para los comandos de la CLI, consulte la Referencia de la línea de comandos para notificaciones.

  • Ejecute la operación CreateTopic para crear un tema.

    Ejemplo:

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

Tarea 3: Creación de suscripciones

Para obtener ayuda con la resolución de problemas, consulte Resolución de problemas de notificaciones.

    1. Seleccione el tema que ha creado anteriormente (el nombre de ejemplo era Tema de alarma): en la página de lista Temas, seleccione el tema con el que desea trabajar. Si necesita ayuda para buscar la página de lista o el tema, consulte Lista de temas.
    2. Cree la suscripción de Slack.
      1. Abra el panel Crear suscripción: en la página de detalles del tema, seleccione Crear suscripción.
        Se abrirá el panel Crear suscripción.
      2. En Protocolo, seleccione Slack.
      3. Rellene los campos restantes.
        Campo Descripción
        URL

        Escriba (o copie y pegue) el punto final de Slack que creó anteriormente. Incluya el token de webhook.

        Punto final de ejemplo:

        https://hooks.slack.com/services/<webhook-token>
      4. Haga clic en Crear.
      5. Confirmar la nueva suscripción de Slack: navegue a la URL de confirmación que se envió a Slack.
    3. Cree la suscripción de SMS.
      1. Abra el panel Crear suscripción: en la página de detalles del tema, seleccione Crear suscripción.
        Se abrirá el panel Crear suscripción.
      2. En Protocolo, seleccione SMS.
      3. Rellene los campos restantes.
        Campo Descripción
        País Seleccione el país para el número de teléfono. Consulte Antes de empezar.
        Número de teléfono Introduzca el número de teléfono con el formato E.164.
      4. Haga clic en Crear.
      5. Confirme la nueva suscripción de SMS: siga las instrucciones recibidas por teléfono.
    4. Cree la suscripción de correo electrónico.
      1. Abra el panel Crear suscripción: en la página de detalles del tema, seleccione Crear suscripción.
        Se abrirá el panel Crear suscripción.
      2. En Protocolo, seleccione Correo electrónico.
      3. Rellene los campos restantes.
        Campo Descripción
        Correo electrónico Escriba una dirección de correo electrónico.
      4. Haga clic en Crear.
      5. Confirmar la nueva suscripción de correo electrónico: abra el correo electrónico y navegue a la URL de confirmación.
  • Nota

    Después de crear las suscripciones, confírmelas.

    Utilice el comando oci ons subscription create y los parámetros necesarios para crear cada suscripción:

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

    Ejemplo de suscripción de Slack:

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

    Ejemplo de suscripción de SMS:

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

    Ejemplo de suscripción de correo electrónico:

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

    Para obtener una lista completa de parámetros y valores para los comandos de la CLI, consulte la Referencia de la línea de comandos para notificaciones.

  • Nota

    Después de crear las suscripciones, confírmelas.

    Ejecute la operación CreateSubscription para crear cada suscripción.

    Ejemplo de suscripción de 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>"
    }

    Ejemplo de suscripción de 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>"
    }

    Ejemplo de suscripción de correo electrónico:

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

Tarea 4: Creación de la alarma

Para obtener ayuda con la resolución de problemas, consulte Resolución de problemas de notificaciones.

    1. Abra la página Crear alarma.
      1. Abra el menú de navegación y haga clic en Observación y gestión. En Supervisión, haga clic en Definiciones de alarma.
      2. Seleccione Create Alarm.

    2. Para Nombre de alarma, escriba lo siguiente: Alarma de utilización
    3. En Descripción de métrica, seleccione la métrica, el intervalo y la estadística.

      Campo Valor de ejemplo para este escenario
      Compartimento Seleccione el compartimento que contiene la instancia que desea supervisar para un alto uso de CPU.
      Espacio de nombre de métrica oci_computeagent
      Nombre de la Métrica CpuUtilization
      Intervalo 1m
      Estadísticas Recuento
    4. En Regla de disparador, configure el umbral de alarma.

      Campo Valor de ejemplo para este escenario
      Operador mayor que
      Valor 90
      Minutos de retraso del disparador 1
    5. En Notificaciones, Destinos, seleccione el tema que ha creado anteriormente.
      Campo Valor de ejemplo para este escenario
      Servicio de destino Servicio Notificaciones
      compartimento Seleccione el compartimento que contiene el tema que ha creado anteriormente.
      Tema Seleccione el tema que ha creado anteriormente.
    6. Seleccione Save alarm.

  • Utilice el comando oci monitoring alarm create y los parámetros necesarios para crear una alarma:

    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>

    Ejemplo:

    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

    Para obtener una lista completa de parámetros y valores para los comandos de la CLI, consulte la Command Line Reference for Monitoring.

  • Ejecute la operación CreateAlarm para crear una alarma.

    Ejemplo:

    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
    }