Gestione della notifica utilizzando l'API Monitoring
Puoi gestire le notifiche in un'istanza IBM Cloud Monitoring utilizzando la API Monitoring.
Per imparare a usare cURL, vedere il comandocURL.
Richiama tutte le notifiche utente
È possibile utilizzare il seguente comando cURL per ottenere informazioni su tutti i canali di notifica:
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"
Dove
-
<REST_API_ENDPOINT>indica l'endpoint di destinazione della chiamata API REST. Per ulteriori informazioni, vedi Monitoring endpoint API REST. Ad esempio, l'endpoint pubblico per un'istanza disponibile in us - south è il seguente:https://us-south.monitoring.cloud.ibm.com/api -
Puoi passare più intestazioni utilizzando
-H.AuthorizationeIBMInstanceIDsono intestazioni richieste per l'autenticazione.SysdigTeamIDè facoltativo. Quando si specifica questa intestazione, si limita la richiesta ai dati e alle risorse disponibili per il team specificato.Per ottenere un
AUTH_TOKENe laGUIDconsultare, Intestazioni per i token IAM. -
toefromsono parametri di query che devi definire per configurare il periodo di tempo per cui vuoi informazioni sulle notifiche.
Per ulteriori informazioni sul formato della risposta, vedi schema di notifica.
Richiama notifica utente specifica
Puoi utilizzare il seguente comando cURL per ottenere informazioni su un canale di notifica:
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"
Dove
-
<REST_API_ENDPOINT>indica l'endpoint di destinazione della chiamata API REST. Per ulteriori informazioni, vedi Monitoring endpoint API REST. Ad esempio, l'endpoint pubblico per un'istanza disponibile in us - south è il seguente:https://us-south.monitoring.cloud.ibm.com/api -
Puoi passare più intestazioni utilizzando
-H.AuthorizationeIBMInstanceIDsono intestazioni richieste per l'autenticazione.SysdigTeamIDè facoltativo. Quando si specifica questa intestazione, si limita la richiesta ai dati e alle risorse disponibili per il team specificato.Per ottenere un
AUTH_TOKENe laGUIDconsultare, Intestazioni per i token IAM. -
<NOTIFICATION_ID>definisce l'ID della notifica che vuoi modificare.
Ad esempio, il corpo della risposta per un canale di notifica email è simile al seguente:
{
"notificationChannel": {
"id": 20,
"version": 1,
"createdOn": 1466023669000,
"modifiedOn": 1466023669000,
"type": "EMAIL",
"enabled": true,
"name": "emailChannel",
"options": {
"emailRecipients": [
"abc@xyz.com"
],
"notifyOnOk": false
}
}
}
Crea una notifica
Per creare una notifica, puoi utilizzare il seguente comando cURL:
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
Dove
-
<REST_API_ENDPOINT>indica l'endpoint di destinazione della chiamata API REST. Per ulteriori informazioni, vedi Monitoring endpoint API REST. Ad esempio, l'endpoint pubblico per un'istanza disponibile in us - south è il seguente:https://us-south.monitoring.cloud.ibm.com/api -
Puoi passare più intestazioni utilizzando
-H.AuthorizationeIBMInstanceIDsono intestazioni richieste per l'autenticazione.SysdigTeamIDè facoltativo. Quando si specifica questa intestazione, si limita la richiesta ai dati e alle risorse disponibili per il team specificato.Per ottenere un
AUTH_TOKENe laGUIDconsultare, Intestazioni per i token IAM. -
Puoi passare i dati per creare la notifica nel file
notification.jsonutilizzando-d.I tipi validi sono
EMAIL,PAGER_DUTY,SLACKeVICTOROPS.
Il seguente esempio mostra i parametri del corpo della richiesta che è possibile impostare per la creazione di una notifica:
{
"notificationChannel": {
"type": "SLACK",
"enabled": true,
"name": "my-slack-channel",
"options": {
"notifyOnOk": true,
"url": "https://hooks.slack.com/services/xxx",
"channel": "myslack"
"notifyOnResolve": true,
}
}
}
Elimina una notifica
Per eliminare una notifica esistente, hai bisogno dell'ID di tale notifica.
Per eliminare una notifica, puoi utilizzare il seguente comando cURL:
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"
Dove
-
<REST_API_ENDPOINT>indica l'endpoint di destinazione della chiamata API REST. Per ulteriori informazioni, vedi Monitoring endpoint API REST. Ad esempio, l'endpoint pubblico per un'istanza disponibile in us - south è il seguente:https://us-south.monitoring.cloud.ibm.com/api -
Puoi passare più intestazioni utilizzando
-H.AuthorizationeIBMInstanceIDsono intestazioni richieste per l'autenticazione.SysdigTeamIDè facoltativo. Quando si specifica questa intestazione, si limita la richiesta ai dati e alle risorse disponibili per il team specificato.Per ottenere un
AUTH_TOKENe laGUIDconsultare, Intestazioni per i token IAM. -
<NOTIFICATION_ID>definisce l'ID della notifica che vuoi modificare.
Aggiorna una notifica
Per aggiornare una notifica esistente, hai bisogno dell'ID di tale notifica.
È possibile utilizzare il comando cURL per aggiornare una notifica:
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
Dove
-
<REST_API_ENDPOINT>indica l'endpoint di destinazione della chiamata API REST. Per ulteriori informazioni, vedi Monitoring endpoint API REST. Ad esempio, l'endpoint pubblico per un'istanza disponibile in us - south è il seguente:https://us-south.monitoring.cloud.ibm.com/api -
Puoi passare più intestazioni utilizzando
-H.AuthorizationeIBMInstanceIDsono intestazioni richieste per l'autenticazione.SysdigTeamIDè facoltativo. Quando si specifica questa intestazione, si limita la richiesta ai dati e alle risorse disponibili per il team specificato.Per ottenere un
AUTH_TOKENe laGUIDconsultare, Intestazioni per i token IAM. -
<NOTIFICATION_ID>definisce l'ID della notifica che vuoi modificare. -
Puoi passare i dati per creare la notifica nel file
notification.jsonutilizzando-d.
Il seguente esempio mostra i parametri del corpo della richiesta che è possibile impostare per aggiornare una notifica:
{
"notificationChannel": {
"id": 9,
"version": 2,
"type": "WEBHOOK",
"enabled": true,
"name": "test-tip-webhook",
"options": {
"notifyOnOk": false,
"url": "https://test-tip.endpoint.com",
"notifyOnResolve": true
}
}
}
Parametri corpo della richiesta: Tutti i parametri del corpo della risposta specificati nel canale di notifica GET tranne:
- createdOn
- modifiedOn
Nota: la versione della notifica può passare attraverso il corpo della risposta dell'API notificationChannels. L'utente può anche aggiungere customHeaders & customData alle notazioni in base ai requisiti.
Schema di notifiche: corpo della richiesta
Consultare lo schema per ottenere informazioni su 1 o più canali di notifica:
{
"notificationChannel": {
"id": 20,
"version": 1,
"type": "",
"enabled": true,
"name": "",
"options": {
"notifyOnOk": false,
"notifyOnResolve": true,
"resolveOnOk": true,
"channel": "",
"emailRecipients": "",
"url" : "",
"apiKey": "",
"routingKey": "",
"account": "",
"serviceKey": "",
"serviceName": ""
}
}
}
Schema Sww quando crei, aggiorni o elimini un canale di notifica:
{
"notificationChannel": {
"id": 20,
"version": 1,
"type": "",
"enabled": true,
"name": "",
"options": {
"notifyOnOk": false,
"notifyOnResolve": true,
"resolveOnOk": true,
"channel": "",
"emailRecipients": "",
"url" : "",
"apiKey": "",
"routingKey": "",
"account": "",
"serviceKey": "",
"serviceName": ""
}
}
}
Schema delle notifiche: corpo della risposta
{
"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": ""
}
}
}
Parametri del corpo
id (intero)
ID di un canale di notifica.
createdOn (numero intero)
Definisce l'ora di creazione di una notifica in millesimi di secondo.
Questo parametro restituisce la data / ora Unix quando la notifica è stata creata.
descrizione (stringa)
Questo parametro descrive la notifica.
La descrizione è disponibile quando visualizzi una notifica nella sezione notifications della IU di monitoraggio e viene inclusa nelle e-mail di notifica.
abilitato (booleano)
Definisce lo stato di un canale di notifica.
Impostare questo parametro su true se il canale di notifica è abilitato per inviare eventi e notificare quando viene attivata una notifica.
Impostare su false per disabilitare il canale di notifica in modo che non possa inviare eventi di notifica.
name (stringa)
Nome della notifica. Deve essere univoco.
Il nome di un canale di notifica deve essere univoco e non deve contenere più di 255 caratteri.
modifiedOn (numero intero)
Definisce l'ultima modifica di una notifica in millisecondi.
Questo parametro definisce la data / ora Unix in cui la notifica è stata modificata l'ultima volta.
Opzioni (json)
Le opzioni sono diverse per tipo di canale di notifica.
Il seguente JSON mostra il modello di schema:
"options": {
"notifyOnOk": false,
"notifyOnResolve": true,
"resolveOnOk": true,
"channel": "",
"emailRecipients": "",
"url" : "",
"apiKey": "",
"routingKey": "",
"account": "",
"serviceKey": "",
"serviceName": ""
}
| Opzione | EMAIL |
PAGER_DUTY |
SLACK |
VICTOROPS |
WEBHOOK |
OPSGENIE |
|---|---|---|---|---|---|---|
name |
||||||
notifyOnOk |
||||||
notifyOnResolve |
||||||
resolveOnOk |
||||||
emailRecipients |
||||||
url |
||||||
apiKey |
||||||
routingKey |
||||||
account |
||||||
serviceKey |
||||||
serviceName |
apiKey (stringa)
Chiave API VictorOps's. Devi ottenere questa chiave dalla pagina delle impostazioni di integrazione VictorOps.
canale (stringa)
Nome del canale.
emailRecipients (stringa)
Elenco di indirizzi e-mail.
notifyOnOk (booleano)
Indicatore che indica lo stato per l'invio di una notifica quando lo stato della notifica cambia da ACTIVE a OK e la notifica viene confermata manualmente da un utente.
Impostare su true per inviare una notifica.
notifyOnResolve (booleano)
Indicatore che indica lo stato per inviare una notifica quando lo stato della notifica cambia da ACTIVE a OK, la condizione non è più attivata perché è risolta e la notifica viene modificata manualmente in risolta
da un utente.
Impostare su true per inviare una notifica.
resolveOnOk (booleano)
Indicatore che indica lo stato per inviare una notifica quando lo stato di notifica cambia da ACTIVE a OK e la condizione non viene più attivata perché è risolta.
Impostare su true per inviare una notifica.
routingKey (stringa)
Chiave di routing VictorOps's. Devi ottenere questa chiave dalla pagina delle impostazioni di integrazione VictorOps.
url (stringa)
Endpoint URL.
Immettere
Definisce il canale di notifica.
| Tipo di notifica | Valore |
|---|---|
EMAIL |
|
| PagerDuty | PAGER_DUTY |
| Slack | SLACK |
| VictorOps | VICTOROPS |
| Webhook | WEBHOOK |
| OpsGenie | OPSGENIE |
versione (intero)
Versione di una notifica.
La versione cambia ogni volta che si aggiorna una notifica.
La versione viene utilizzata per il blocco ottimistico.
Parametri di query
notificationId (numero intero)
ID di una notifica.
da (lungo)
Definisce la data / ora di inizio, in microsecondi, utilizzata quando si richiedono informazioni sulle notifiche definite.
a (lungo)
Definisce la data / ora di fine, in microsecondi, utilizzata quando si richiedono informazioni sulle notifiche definite.