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.AuthorizationeIBMInstanceIDson cabeceras necesarias para la autenticación.SysdigTeamIDes opcional. Al especificar esta cabecera, se limita la solicitud a los datos y los recursos disponibles para el equipo especificado.Para obtener una
AUTH_TOKENy elGUIDconsulte, Cabeceras para señales IAM. -
toyfromson 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.AuthorizationeIBMInstanceIDson cabeceras necesarias para la autenticación.SysdigTeamIDes opcional. Al especificar esta cabecera, se limita la solicitud a los datos y los recursos disponibles para el equipo especificado.Para obtener una
AUTH_TOKENy elGUIDconsulte, 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.AuthorizationeIBMInstanceIDson cabeceras necesarias para la autenticación.SysdigTeamIDes opcional. Al especificar esta cabecera, se limita la solicitud a los datos y los recursos disponibles para el equipo especificado.Para obtener una
AUTH_TOKENy elGUIDconsulte, Cabeceras para señales IAM. -
Puede pasar datos para crear la notificación en el archivo
notification.jsonutilizando-d.Los tipos válidos son "
EMAIL" , "PAGER_DUTY, "SLACKy "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.AuthorizationeIBMInstanceIDson cabeceras necesarias para la autenticación.SysdigTeamIDes opcional. Al especificar esta cabecera, se limita la solicitud a los datos y los recursos disponibles para el equipo especificado.Para obtener una
AUTH_TOKENy elGUIDconsulte, 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.AuthorizationeIBMInstanceIDson cabeceras necesarias para la autenticación.SysdigTeamIDes opcional. Al especificar esta cabecera, se limita la solicitud a los datos y los recursos disponibles para el equipo especificado.Para obtener una
AUTH_TOKENy elGUIDconsulte, 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.jsonutilizando-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": ""
}
| Opción | EMAIL |
PAGER_DUTY |
SLACK |
VICTOROPS |
WEBHOOK |
OPSGENIE |
|---|---|---|---|---|---|---|
name |
||||||
notifyOnOk |
||||||
notifyOnResolve |
||||||
resolveOnOk |
||||||
emailRecipients |
||||||
url |
||||||
apiKey |
||||||
routingKey |
||||||
account |
||||||
serviceKey |
||||||
serviceName |
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.
| 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.