Gestion des notifications à l'aide de l'API Monitoring

Vous pouvez gérer les notifications dans une instance IBM Cloud Monitoring en utilisant l'Monitoring API.

Pour savoir comment utiliser cURL, voir Commande cURL.

Extraction de toutes les notifications utilisateur

Vous pouvez utiliser la commande cURL suivante pour obtenir des informations sur tous les canaux de notification :

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"

  • <REST_API_ENDPOINT>indique le noeud final ciblé par l'appel API REST. Pour plus d'informations, voir Noeuds finaux d'API REST Monitoring. Par exemple, le noeud final public d'une instance disponible dans la région us-south est le suivant : https://us-south.monitoring.cloud.ibm.com/api

  • Vous pouvez transmettre plusieurs en-têtes à l'aide de l'indicateur -H.

    Authorization et IBMInstanceID sont les en-têtes requis pour l'authentification.

    SysdigTeamID est facultatif. Lorsque vous spécifiez cet en-tête, vous limitez la demande aux données et aux ressources disponibles pour l'équipe spécifiée.

    Pour obtenir AUTH_TOKEN et GUID, voir En-têtes des jetons IAM.

  • to et from représentent les paramètres de requête que vous devez définir pour configure la période pendant laquelle vous souhaitez des informations sur les notifications.

Pour plus d'informations sur le format de réponse, voir Schéma des notifications.

Extraction d'une notification utilisateur spécifique

Vous pouvez utiliser la commande cURL suivante pour obtenir des informations sur un canal de notification :

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"

  • <REST_API_ENDPOINT>indique le noeud final ciblé par l'appel API REST. Pour plus d'informations, voir Noeuds finaux d'API REST Monitoring. Par exemple, le noeud final public d'une instance disponible dans la région us-south est le suivant : https://us-south.monitoring.cloud.ibm.com/api

  • Vous pouvez transmettre plusieurs en-têtes à l'aide de l'indicateur -H.

    Authorization et IBMInstanceID sont les en-têtes requis pour l'authentification.

    SysdigTeamID est facultatif. Lorsque vous spécifiez cet en-tête, vous limitez la demande aux données et aux ressources disponibles pour l'équipe spécifiée.

    Pour obtenir AUTH_TOKEN et GUID, voir En-têtes des jetons IAM.

  • <NOTIFICATION_ID> définit l'ID de la notification que vous souhaitez modifier.

Par exemple, le corps de la réponse d'un canal de notification par courrier électronique se présente comme suit :

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

Création d'une notification

Vous pouvez utiliser la commande cURL suivante pour créer une notification :

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

  • <REST_API_ENDPOINT>indique le noeud final ciblé par l'appel API REST. Pour plus d'informations, voir Noeuds finaux d'API REST Monitoring. Par exemple, le noeud final public d'une instance disponible dans la région us-south est le suivant : https://us-south.monitoring.cloud.ibm.com/api

  • Vous pouvez transmettre plusieurs en-têtes à l'aide de l'indicateur -H.

    Authorization et IBMInstanceID sont les en-têtes requis pour l'authentification.

    SysdigTeamID est facultatif. Lorsque vous spécifiez cet en-tête, vous limitez la demande aux données et aux ressources disponibles pour l'équipe spécifiée.

    Pour obtenir AUTH_TOKEN et GUID, voir En-têtes des jetons IAM.

  • Vous pouvez transmettre des données pour créer la notification dans le fichier notification.json à l'aide de l'indicateur -d.

    Les types valables sont " EMAIL, " PAGER_DUTY, " SLACK et " VICTOROPS.

L'exemple suivant illustre les paramètres de corps de demande que vous pouvez définir pour créer une notification :

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

Suppression d'une notification

Pour supprimer une notification existante, vous avez besoin de l'ID de cette notification.

Vous pouvez utiliser la commande cURL suivante pour supprimer une notification :

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"

  • <REST_API_ENDPOINT>indique le noeud final ciblé par l'appel API REST. Pour plus d'informations, voir Noeuds finaux d'API REST Monitoring. Par exemple, le noeud final public d'une instance disponible dans la région us-south est le suivant : https://us-south.monitoring.cloud.ibm.com/api

  • Vous pouvez transmettre plusieurs en-têtes à l'aide de l'indicateur -H.

    Authorization et IBMInstanceID sont les en-têtes requis pour l'authentification.

    SysdigTeamID est facultatif. Lorsque vous spécifiez cet en-tête, vous limitez la demande aux données et aux ressources disponibles pour l'équipe spécifiée.

    Pour obtenir AUTH_TOKEN et GUID, voir En-têtes des jetons IAM.

  • <NOTIFICATION_ID> définit l'ID de la notification que vous souhaitez modifier.

Mise à jour d'une notification

Pour mettre à jour une notification existante, vous avez besoin de l'ID de cette notification.

Vous pouvez utiliser la commande cURL suivante pour mettre à jour une notification :

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

  • <REST_API_ENDPOINT>indique le noeud final ciblé par l'appel API REST. Pour plus d'informations, voir Noeuds finaux d'API REST Monitoring. Par exemple, le noeud final public d'une instance disponible dans la région us-south est le suivant : https://us-south.monitoring.cloud.ibm.com/api

  • Vous pouvez transmettre plusieurs en-têtes à l'aide de l'indicateur -H.

    Authorization et IBMInstanceID sont les en-têtes requis pour l'authentification.

    SysdigTeamID est facultatif. Lorsque vous spécifiez cet en-tête, vous limitez la demande aux données et aux ressources disponibles pour l'équipe spécifiée.

    Pour obtenir AUTH_TOKEN et GUID, voir En-têtes des jetons IAM.

  • <NOTIFICATION_ID> définit l'ID de la notification que vous souhaitez modifier.

  • Vous pouvez transmettre des données pour créer la notification dans le fichier notification.json à l'aide de l'indicateur -d.

L'exemple suivant illustre les paramètres de corps de demande que vous pouvez définir pour mettre à jour une notification :

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

Paramètres de corps de demande : tous les paramètres de corps de réponse spécifiés dans le canal de notification GET, à l'exception des suivants :

  • createdOn
  • modifiedOn

Remarque : La version des notifications peut passer par le corps de réponse de l'API notificationChannels. L'utilisateur peut également ajouter des customHeaders et customData aux notifications en fonction de ses besoins.

Schéma des notifications : corps de demande

Reportez-vous au schéma permettant d'obtenir des informations sur un ou plusieurs canaux de notification :

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

Reportez-vous au schéma lorsque vous créez, mettez à jour ou supprimez un canal de notification :

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

Schéma des notifications : corps de réponse

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

Paramètres du corps

id (entier)

ID d'un canal de notification.

createdOn (entier)

Définit l'heure de création d'une notification en millisecondes.

Ce paramètre renvoie l'horodatage Unix de la création de la notification.

description (chaîne)

Ce paramètre décrit la notification.

La description est disponible lorsque vous affichez une notification dans la section Notifications de l'interface utilisateur de surveillance et elle est incluse dans les courriers électroniques de notification.

enabled (valeur booléenne)

Définit le statut d'un canal de notification.

Définissez ce paramètre sur true si le canal de notification est activé pour envoyer des événements et notifier l'utilisateur lorsqu'une notification est déclenchée.

Définissez ce paramètre sur false pour désactiver le canal de notification afin qu'il ne puisse pas envoyer d'événements de notification.

name (chaîne)

Nom de la notification. Doit être unique.

Le nom d'un canal de notification doit être unique et ne doit pas comporter plus de 255 caractères.

modifiedOn (entier)

Définit à quel moment une notification a été modifiée pour la dernière fois, en millisecondes.

Ce paramètre définit l'horodatage Unix de la dernière modification de la notification.

Options (json)

Les options sont différentes selon le type de canal de notification.

Le JSON suivant présente le modèle de schéma :

"options": {
      "notifyOnOk": false,
      "notifyOnResolve": true,
      "resolveOnOk": true,
      "channel": "",
      "emailRecipients": "",
      "url" : "",
      "apiKey": "",
      "routingKey": "",
      "account": "",
      "serviceKey": "",
      "serviceName": ""
    }
Types de canaux de notification
Option EMAIL PAGER_DUTY SLACK VICTOROPS WEBHOOK OPSGENIE
name Icône de coche Icône de coche Icône de coche Icône de coche Icône de coche Icône de coche
notifyOnOk Icône de coche Icône de coche Icône de coche Icône de coche Icône de coche Icône de coche
notifyOnResolve Icône de coche Icône de coche Icône de coche Icône de coche Icône de coche Icône de coche
resolveOnOk Icône de coche Icône de coche Icône de coche Icône de coche Icône de coche Icône de coche
emailRecipients Icône de coche
url Icône de coche Icône de coche
apiKey Icône de coche Icône de coche
routingKey Icône de coche
account Icône de coche
serviceKey Icône de coche
serviceName Icône de coche

apiKey (chaîne)

Clé d'API de VictorOps. Vous devez vous procurer cette clé à partir de votre page de paramètres d'intégration VictorOps.

channel (chaîne)

Nom du canal.

emailRecipients (chaîne)

Liste des adresses électroniques.

notifyOnOk (valeur booléenne)

Indicateur spécifiant le statut d'envoi d'une notification lorsque l'état de notification passe d'ACTIVE à OK et que la notification est reconnue manuellement par un utilisateur.

Spécifiez true pour envoyer une notification.

notifyOnResolve (valeur booléenne)

Indicateur spécifiant le statut d'envoi d'une notification lorsque l'état de notification passe d'ACTIVE à OK, que la condition n'est plus déclenchée car elle est résolue et que la notification est changée manuellement en résolue par un utilisateur.

Spécifiez true pour envoyer une notification.

resolveOnOk (valeur booléenne)

Indicateur spécifiant le statut d'envoi d'une notification lorsque l'état de notification passe d'ACTIVE à OK et que la condition n'est plus déclenchée car elle est résolue.

Spécifiez true pour envoyer une notification.

routingKey (chaîne)

Clé de routage de VictorOps. Vous devez vous procurer cette clé à partir de votre page de paramètres d'intégration VictorOps.

url (chaîne)

Noeud final d'URL.

type

Définit le canal de notification.

Types de canaux de notification
Type de notification Valeur
Adresse électronique EMAIL
PagerDuty PAGER_DUTY
Slack SLACK
VictorOps VICTOROPS
Webhook WEBHOOK
OpsGenie OPSGENIE

version (entier)

Version d'une notification.

La version change chaque fois que vous mettez à jour une notification.

La version est utilisée pour le verrouillage optimiste.

Paramètres de requête

notificationId (entier)

ID d'une notification.

from (long)

Définit l'horodatage de début, en microsecondes, utilisé lorsque vous demandez des informations sur les notifications définies.

to (long)

Définit l'horodatage de fin, en microsecondes, utilisé lorsque vous demandez des informations sur les notifications définies.