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"
Où
-
<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.AuthorizationetIBMInstanceIDsont les en-têtes requis pour l'authentification.SysdigTeamIDest 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_TOKENetGUID, voir En-têtes des jetons IAM. -
toetfromrepré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"
Où
-
<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.AuthorizationetIBMInstanceIDsont les en-têtes requis pour l'authentification.SysdigTeamIDest 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_TOKENetGUID, 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
Où
-
<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.AuthorizationetIBMInstanceIDsont les en-têtes requis pour l'authentification.SysdigTeamIDest 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_TOKENetGUID, 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, "SLACKet "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"
Où
-
<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.AuthorizationetIBMInstanceIDsont les en-têtes requis pour l'authentification.SysdigTeamIDest 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_TOKENetGUID, 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
Où
-
<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.AuthorizationetIBMInstanceIDsont les en-têtes requis pour l'authentification.SysdigTeamIDest 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_TOKENetGUID, 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": ""
}
| Option | EMAIL |
PAGER_DUTY |
SLACK |
VICTOROPS |
WEBHOOK |
OPSGENIE |
|---|---|---|---|---|---|---|
name |
||||||
notifyOnOk |
||||||
notifyOnResolve |
||||||
resolveOnOk |
||||||
emailRecipients |
||||||
url |
||||||
apiKey |
||||||
routingKey |
||||||
account |
||||||
serviceKey |
||||||
serviceName |
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.
| 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.