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.

    Authorization e IBMInstanceID sono 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_TOKEN e la GUID consultare, Intestazioni per i token IAM.

  • to e from sono 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.

    Authorization e IBMInstanceID sono 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_TOKEN e la GUID consultare, 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.

    Authorization e IBMInstanceID sono 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_TOKEN e la GUID consultare, Intestazioni per i token IAM.

  • Puoi passare i dati per creare la notifica nel file notification.json utilizzando -d.

    I tipi validi sono EMAIL, PAGER_DUTY, SLACK e VICTOROPS.

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.

    Authorization e IBMInstanceID sono 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_TOKEN e la GUID consultare, 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.

    Authorization e IBMInstanceID sono 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_TOKEN e la GUID consultare, 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.json utilizzando -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": ""
    }
Tipi di canali di notifica
Opzione EMAIL PAGER_DUTY SLACK VICTOROPS WEBHOOK OPSGENIE
name Icona segno di spunta Icona segno di spunta Icona segno di spunta Icona segno di spunta Icona segno di spunta Icona segno di spunta
notifyOnOk Icona segno di spunta Icona segno di spunta Icona segno di spunta Icona segno di spunta Icona segno di spunta Icona segno di spunta
notifyOnResolve Icona segno di spunta Icona segno di spunta Icona segno di spunta Icona segno di spunta Icona segno di spunta Icona segno di spunta
resolveOnOk Icona segno di spunta Icona segno di spunta Icona segno di spunta Icona segno di spunta Icona segno di spunta Icona segno di spunta
emailRecipients Icona segno di spunta
url Icona segno di spunta Icona segno di spunta
apiKey Icona segno di spunta Icona segno di spunta
routingKey Icona segno di spunta
account Icona segno di spunta
serviceKey Icona segno di spunta
serviceName Icona segno di spunta

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.

Tipi di canali di notifica
Tipo di notifica Valore
Email 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.