Gestión de notificaciones utilizando la API de Monitoring

Puede gestionar las notificaciones de una instancia IBM Cloud Monitoring mediante la Monitoring API API.

Para aprender a utilizar cURL, consulte mandato cURL.

Captar todas las notificaciones de usuario

Puede utilizar el siguiente mandato cURL para obtener información sobre todos los canales de notificación:

curl -X GET <REST_API_ENDPOINT>/api/notificationChannels?from=<START_TIMESTAMP>&to=<END_TIMESTAMP> -H "Authorization: $AUTH_TOKEN" -H "IBMInstanceID: $GUID" -H "SysdigTeamID: $TEAM_ID" -H "content-type: application/json"

Donde

  • <REST_API_ENDPOINT> indica el punto final al que se dirige la llamada de API REST. Para obtener más información, consulte MonitoringPuntos finales de API REST. Por ejemplo, el punto final público de una instancia que está disponible en us-south es el siguiente: https://us-south.monitoring.cloud.ibm.com/api

  • Puede pasar varias cabeceras utilizando -H.

    Authorization e IBMInstanceID son cabeceras necesarias para la autenticación.

    SysdigTeamID es opcional. Al especificar esta cabecera, se limita la solicitud a los datos y los recursos disponibles para el equipo especificado.

    Para obtener una AUTH_TOKEN y el GUID consulte, Cabeceras para señales IAM.

  • to y from son parámetros de consulta que debe definir para configurar el periodo de tiempo durante el que desea información sobre las notificaciones.

Para obtener más información sobre el formato de respuesta, consulte Esquema de notificación.

Captar notificaciones de un usuario específico

Puede utilizar el siguiente mandato cURL para obtener información sobre un canal de notificación:

curl -X GET <REST_API_ENDPOINT>/api/notificationChannels/<NOTIFICATION_ID> -H "Authorization: $AUTH_TOKEN" -H "IBMInstanceID: $GUID" -H "SysdigTeamID: $TEAM_ID" -H "content-type: application/json"

Donde

  • <REST_API_ENDPOINT> indica el punto final al que se dirige la llamada de API REST. Para obtener más información, consulte MonitoringPuntos finales de API REST. Por ejemplo, el punto final público de una instancia que está disponible en us-south es el siguiente: https://us-south.monitoring.cloud.ibm.com/api

  • Puede pasar varias cabeceras utilizando -H.

    Authorization e IBMInstanceID son cabeceras necesarias para la autenticación.

    SysdigTeamID es opcional. Al especificar esta cabecera, se limita la solicitud a los datos y los recursos disponibles para el equipo especificado.

    Para obtener una AUTH_TOKEN y el GUID consulte, Cabeceras para señales IAM.

  • <NOTIFICATION_ID> define el ID de la notificación que desea modificar.

Por ejemplo, el cuerpo de respuesta para un canal de notificación de correo electrónico es el siguiente:

{
  "notificationChannel": {
    "id": 20,
    "version": 1,
    "createdOn": 1466023669000,
    "modifiedOn": 1466023669000,
    "type": "EMAIL",
    "enabled": true,
    "name": "emailChannel",
    "options": {
      "emailRecipients": [
        "abc@xyz.com"
      ],
      "notifyOnOk": false
    }
  }
}

Crear una notificación

Puede utilizar el siguiente mandato cURL para crear una notificación:

curl -X POST <REST_API_ENDPOINT>/api/notificationChannels -H "Authorization: $AUTH_TOKEN" -H "IBMInstanceID: $GUID" -H "SysdigTeamID: $TEAM_ID" -H "content-type: application/json" -d @notification.json

Donde

  • <REST_API_ENDPOINT> indica el punto final al que se dirige la llamada de API REST. Para obtener más información, consulte MonitoringPuntos finales de API REST. Por ejemplo, el punto final público de una instancia que está disponible en us-south es el siguiente: https://us-south.monitoring.cloud.ibm.com/api

  • Puede pasar varias cabeceras utilizando -H.

    Authorization e IBMInstanceID son cabeceras necesarias para la autenticación.

    SysdigTeamID es opcional. Al especificar esta cabecera, se limita la solicitud a los datos y los recursos disponibles para el equipo especificado.

    Para obtener una AUTH_TOKEN y el GUID consulte, Cabeceras para señales IAM.

  • Puede pasar datos para crear la notificación en el archivo notification.json utilizando -d.

    Los tipos válidos son " EMAIL" , " PAGER_DUTY, " SLACK y " VICTOROPS.

El ejemplo siguiente muestra los parámetros del cuerpo de solicitud que puede establecer para crear una notificación:

{
  "notificationChannel": {
      "type": "SLACK",
      "enabled": true,
      "name": "my-slack-channel",
      "options": {
        "notifyOnOk": true,
        "url": "https://hooks.slack.com/services/xxx",
        "channel": "myslack"
        "notifyOnResolve": true,
      }
    }
  }

Suprimir una notificación

Para suprimir una notificación existente, necesita el ID de la notificación.

Puede utilizar el siguiente mandato cURL para suprimir una notificación:

curl -X DELETE <REST_API_ENDPOINT>/api/notificationChannels/<NOTIFICATION_ID> -H "Authorization: $AUTH_TOKEN" -H "IBMInstanceID: $GUID" -H "SysdigTeamID: $TEAM_ID" -H "content-type: application/json"

Donde

  • <REST_API_ENDPOINT> indica el punto final al que se dirige la llamada de API REST. Para obtener más información, consulte MonitoringPuntos finales de API REST. Por ejemplo, el punto final público de una instancia que está disponible en us-south es el siguiente: https://us-south.monitoring.cloud.ibm.com/api

  • Puede pasar varias cabeceras utilizando -H.

    Authorization e IBMInstanceID son cabeceras necesarias para la autenticación.

    SysdigTeamID es opcional. Al especificar esta cabecera, se limita la solicitud a los datos y los recursos disponibles para el equipo especificado.

    Para obtener una AUTH_TOKEN y el GUID consulte, Cabeceras para señales IAM.

  • <NOTIFICATION_ID> define el ID de la notificación que desea modificar.

Actualizar una notificación

Para actualizar una notificación existente, necesita el ID de la notificación.

Puede utilizar el siguiente mandato cURL para actualizar una notificación:

curl -X PUT <REST_API_ENDPOINT>/api/notificationChannels/<NOTIFICATION_ID> -H "Authorization: $AUTH_TOKEN" -H "IBMInstanceID: $GUID" -H "SysdigTeamID: $TEAM_ID" -H "content-type: application/json" -d @notification.json

Donde

  • <REST_API_ENDPOINT> indica el punto final al que se dirige la llamada de API REST. Para obtener más información, consulte MonitoringPuntos finales de API REST. Por ejemplo, el punto final público de una instancia que está disponible en us-south es el siguiente: https://us-south.monitoring.cloud.ibm.com/api

  • Puede pasar varias cabeceras utilizando -H.

    Authorization e IBMInstanceID son cabeceras necesarias para la autenticación.

    SysdigTeamID es opcional. Al especificar esta cabecera, se limita la solicitud a los datos y los recursos disponibles para el equipo especificado.

    Para obtener una AUTH_TOKEN y el GUID consulte, Cabeceras para señales IAM.

  • <NOTIFICATION_ID> define el ID de la notificación que desea modificar.

  • Puede pasar datos para crear la notificación en el archivo notification.json utilizando -d.

El ejemplo siguiente muestra los parámetros del cuerpo de solicitud que puede establecer para actualizar una notificación:

{
  "notificationChannel": {
    "id": 9,
    "version": 2,
    "type": "WEBHOOK",
    "enabled": true,
    "name": "test-tip-webhook",
    "options": {
      "notifyOnOk": false,
      "url": "https://test-tip.endpoint.com",
      "notifyOnResolve": true
    }
  }
}

Parámetros del cuerpo de solicitud: Todos los parámetros del cuerpo de respuesta especificados en el canal de notificación GET excepto:

  • createdOn
  • modifiedOn

Noto: Se puede obtener la versión de la notificación a través del cuerpo de respuesta de la API notificationChannels. El usuario también puede añadir customHeaders y customData a las notificaciones en función de sus necesidades.

Esquema de notificaciones: cuerpo de solicitud

Esquema para obtener información sobre 1 o más canales de notificación:

{
  "notificationChannel": {
    "id": 20,
    "version": 1,
    "type": "",
    "enabled": true,
    "name": "",
    "options": {
      "notifyOnOk": false,
      "notifyOnResolve": true,
      "resolveOnOk": true,
      "channel": "",
      "emailRecipients": "",
      "url" : "",
      "apiKey": "",
      "routingKey": "",
      "account": "",
      "serviceKey": "",
      "serviceName": ""
    }
  }
}

Esquema para crear, actualizar o suprimir un canal de notificación:

{
  "notificationChannel": {
    "id": 20,
    "version": 1,
    "type": "",
    "enabled": true,
    "name": "",
    "options": {
      "notifyOnOk": false,
      "notifyOnResolve": true,
      "resolveOnOk": true,
      "channel": "",
      "emailRecipients": "",
      "url" : "",
      "apiKey": "",
      "routingKey": "",
      "account": "",
      "serviceKey": "",
      "serviceName": ""
    }
  }
}

Esquema de notificaciones: cuerpo de respuesta

{
  "notificationChannel": {
    "id": 20,
    "version": 1,
    "createdOn": 1466023669000,
    "modifiedOn": 1466023669000,
    "type": "",
    "enabled": true,
    "name": "",
    "options": {
      "notifyOnOk": false,
      "notifyOnResolve": true,
      "resolveOnOk": true,
      "channel": "",
      "emailRecipients": "",
      "url" : "",
      "apiKey": "",
      "routingKey": "",
      "account": "",
      "serviceKey": "",
      "serviceName": ""
    }
  }
}

Parámetros del cuerpo

id (entero)

ID de un canal de notificación.

createdOn (entero)

Define la hora de creación de una notificación en milisegundos.

Este parámetro devuelve la indicación de fecha y hora de Unix en que se ha creado la notificación.

description (serie)

Este parámetro describe la notificación.

La descripción está disponible cuando se visualiza una notificación en la sección notificaciones de la interfaz de usuario de supervisión y se incluye en los correos electrónicos de notificación.

enabled (booleano)

Define el estado de un canal de notificación.

Establezca este parámetro en true si el canal de notificación está habilitado para enviar sucesos y notificar cuando se desencadena una notificación.

Establézcalo en false para inhabilitar el canal de notificación de forma que no pueda enviar sucesos de notificación.

name (serie)

Nombre de la notificación. Debe ser exclusivo.

El nombre de un canal de notificación debe ser exclusivo y no puede tener más de 255 caracteres.

modifiedOn (entero)

Define cuándo se ha modificado por última vez una notificación en milisegundos.

Este parámetro devuelve la indicación de fecha y hora de Unix en que se ha modificado por última vez la notificación.

Options (json)

Las opciones son distintas según el tipo de canal de notificación.

El siguiente JSON muestra el modelo de esquema:

"options": {
      "notifyOnOk": false,
      "notifyOnResolve": true,
      "resolveOnOk": true,
      "channel": "",
      "emailRecipients": "",
      "url" : "",
      "apiKey": "",
      "routingKey": "",
      "account": "",
      "serviceKey": "",
      "serviceName": ""
    }
Tipos de canales de notificación
Opción EMAIL PAGER_DUTY SLACK VICTOROPS WEBHOOK OPSGENIE
name Icono de marca de selección Icono de marca de selección Icono de marca de selección Icono de marca de selección Icono de marca de selección Icono de marca de selección
notifyOnOk Icono de marca de selección Icono de marca de selección Icono de marca de selección Icono de marca de selección Icono de marca de selección Icono de marca de selección
notifyOnResolve Icono de marca de selección Icono de marca de selección Icono de marca de selección Icono de marca de selección Icono de marca de selección Icono de marca de selección
resolveOnOk Icono de marca de selección Icono de marca de selección Icono de marca de selección Icono de marca de selección Icono de marca de selección Icono de marca de selección
emailRecipients Icono de marca de selección
url Icono de marca de selección Icono de marca de selección
apiKey Icono de marca de selección Icono de marca de selección
routingKey Icono de marca de selección
account Icono de marca de selección
serviceKey Icono de marca de selección
serviceName Icono de marca de selección

apiKey (serie)

Clave de API de VictorOps. Debe obtener esta clave de la página de valores de integración de VictorOps.

channel (serie)

Nombre del canal.

emailRecipients (serie)

Lista de direcciones de correo electrónico.

notifyOnOk (booleano)

Distintivo que indica el estado para enviar una notificación cuando el estado de la notificación cambia de ACTIVE a OK y un usuario acusa recibo de la notificación manualmente.

Establezca el valor en true para enviar una notificación.

notifyOnResolve (booleano)

Distintivo que indica el estado para enviar una notificación cuando el estado de la notificación cambia de ACTIVE a OK, la condición ya no se desencadena porque se ha resuelto y un usuario cambia manualmente la notificación a Resolved.

Establezca el valor en true para enviar una notificación.

resolveOnOk (booleano)

Distintivo que indica el estado para enviar una notificación cuando el estado de la notificación cambia de ACTIVE a OK y la condición ya no se desencadena porque se ha resuelto.

Establezca el valor en true para enviar una notificación.

routingKey (serie)

Clave de direccionamiento de VictorOps. Debe obtener esta clave de la página de valores de integración de VictorOps.

url (serie)

Punto final de URL.

tipo

Define el canal de notificación.

Tipos de canales de notificación
Tipo de notificación Valor
Correo electrónico EMAIL
PagerDuty PAGER_DUTY
Slack SLACK
VictorOps VICTOROPS
Webhook WEBHOOK
OpsGenie OPSGENIE

version (entero)

Versión de una notificación.

La versión cambia cada vez que actualiza una notificación.

La versión se utiliza para el bloqueo optimista.

Parámetros de consulta

notificationId (entero)

ID de una notificación.

from (largo)

Define la indicación de fecha y hora de inicio, en microsegundos, que se utiliza cuando se solicita información sobre las notificaciones definidas.

to (largo)

Define la indicación de fecha y hora de finalización, en microsegundos, que se utiliza cuando se solicita información sobre las notificaciones definidas.