使用 Monitoring API 來管理通知

您可以使用 Monitoring API 來管理 IBM Cloud Monitoring 實例中的通知。

若要了解如何使用cURL,請參閱 cURL指令

提取所有使用者通知

您可以使用下列 cURL 指令來取得所有通知頻道的相關資訊:

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> 指出 REST API 呼叫所設定的端點目標。 如需相關資訊,請參閱 Monitoring REST API 端點。 例如,us-south 中可用實例的公用端點如下: https://us-south.monitoring.cloud.ibm.com/api

  • 您可以使用 -H 來傳遞多個標頭。

    AuthorizationIBMInstanceID 是鑑別所需的標頭。

    SysdigTeamID 是選用項目。 當您指定此標頭時,會將要求限制為指定團隊可用的資料和資源。

    若要取得 AUTH_TOKENGUID,請參閱 IAM 記號的標頭

  • tofrom 是您必須定義的查詢參數,用來配置您想要取得通知相關資訊的時段。

如需回應格式的相關資訊,請參閱 通知綱目

提取特定的使用者通知

您可以使用下列 cURL 指令來取得通知頻道的相關資訊:

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> 指出 REST API 呼叫所設定的端點目標。 如需相關資訊,請參閱 Monitoring REST API 端點。 例如,us-south 中可用實例的公用端點如下: https://us-south.monitoring.cloud.ibm.com/api

  • 您可以使用 -H 來傳遞多個標頭。

    AuthorizationIBMInstanceID 是鑑別所需的標頭。

    SysdigTeamID 是選用項目。 當您指定此標頭時,會將要求限制為指定團隊可用的資料和資源。

    若要取得 AUTH_TOKENGUID,請參閱 IAM 記號的標頭

  • <NOTIFICATION_ID> 定義您要修改之通知的 ID。

例如,電子郵件通知通道的回應內文如下所示:

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

建立通知

您可以使用下列 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

其中

  • <REST_API_ENDPOINT> 指出 REST API 呼叫所設定的端點目標。 如需相關資訊,請參閱 Monitoring REST API 端點。 例如,us-south 中可用實例的公用端點如下: https://us-south.monitoring.cloud.ibm.com/api

  • 您可以使用 -H 來傳遞多個標頭。

    AuthorizationIBMInstanceID 是鑑別所需的標頭。

    SysdigTeamID 是選用項目。 當您指定此標頭時,會將要求限制為指定團隊可用的資料和資源。

    若要取得 AUTH_TOKENGUID,請參閱 IAM 記號的標頭

  • 您可以使用 -d 來傳遞資料,以在 notification.json 檔案中建立通知。

    有效類型為 EMAILPAGER_DUTYSLACKVICTOROPS

下列範例顯示您可以設定以建立通知的要求內文參數:

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

刪除通知

若要刪除現有通知,您需要該通知的 ID。

您可以使用下列 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"

其中

  • <REST_API_ENDPOINT> 指出 REST API 呼叫所設定的端點目標。 如需相關資訊,請參閱 Monitoring REST API 端點。 例如,us-south 中可用實例的公用端點如下: https://us-south.monitoring.cloud.ibm.com/api

  • 您可以使用 -H 來傳遞多個標頭。

    AuthorizationIBMInstanceID 是鑑別所需的標頭。

    SysdigTeamID 是選用項目。 當您指定此標頭時,會將要求限制為指定團隊可用的資料和資源。

    若要取得 AUTH_TOKENGUID,請參閱 IAM 記號的標頭

  • <NOTIFICATION_ID> 定義您要修改之通知的 ID。

更新通知

若要更新現有通知,您需要該通知的 ID。

您可以使用下列 cURL 指令來更新通知:

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> 指出 REST API 呼叫所設定的端點目標。 如需相關資訊,請參閱 Monitoring REST API 端點。 例如,us-south 中可用實例的公用端點如下: https://us-south.monitoring.cloud.ibm.com/api

  • 您可以使用 -H 來傳遞多個標頭。

    AuthorizationIBMInstanceID 是鑑別所需的標頭。

    SysdigTeamID 是選用項目。 當您指定此標頭時,會將要求限制為指定團隊可用的資料和資源。

    若要取得 AUTH_TOKENGUID,請參閱 IAM 記號的標頭

  • <NOTIFICATION_ID> 定義您要修改之通知的 ID。

  • 您可以使用 -d 來傳遞資料,以在 notification.json 檔案中建立通知。

下列範例顯示您可以設定來更新通知的要求內文參數:

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

要求內文參數: GET 通知通道中指定的所有回應內文參數,但下列除外:

  • createdOn
  • modifiedOn

附註: 通知版本可以透過 notificationChannels API 的回應內文取得。 使用者也可以根據其需求,將 customHeaders & customData 新增至附註。

通知綱目: 要求內文

如需 1 個以上通知通道的相關資訊,請參閱綱目:

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

建立、更新或刪除通知頻道時切換綱目:

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

通知綱目: 回應主體

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

主體參數

id (整數)

通知通道的 ID。

createdOn (整數)

定義通知的建立時間 (毫秒)。

此參數會傳回建立通知時的 Unix 時間戳記。

description (string)

此參數描述了通知。

當您在監視使用者介面的 notifications 區段中檢視通知時,即會提供此說明,而且它會包含在通知電子郵件中。

enabled (boolean)

定義通知頻道的狀態。

如果已啟用通知通道來傳送事件並在觸發通知時通知,請將此參數設為 true

設為 false 可停用通知頻道,讓它無法傳送通知事件。

名稱(字串)

通知的名稱。 必須是唯一的。

通知通道的名稱必須是唯一的,且不得超過 255 個字元。

modifiedOn (整數)

定義前次修改通知的時間 (毫秒)。

此參數定義前次修改通知時的 Unix 時間戳記。

選項 (json)

每個通知通道類型的選項都不同。

下列 JSON 顯示綱目模型:

"options": {
      "notifyOnOk": false,
      "notifyOnResolve": true,
      "resolveOnOk": true,
      "channel": "",
      "emailRecipients": "",
      "url" : "",
      "apiKey": "",
      "routingKey": "",
      "account": "",
      "serviceKey": "",
      "serviceName": ""
    }
通知頻道類型
選項 EMAIL PAGER_DUTY SLACK VICTOROPS WEBHOOK OPSGENIE
name 勾號圖示 勾號圖示 勾號圖示 勾號圖示 勾號圖示 勾號圖示
notifyOnOk 勾號圖示 勾號圖示 勾號圖示 勾號圖示 勾號圖示 勾號圖示
notifyOnResolve 勾號圖示 勾號圖示 勾號圖示 勾號圖示 勾號圖示 勾號圖示
resolveOnOk 勾號圖示 勾號圖示 勾號圖示 勾號圖示 勾號圖示 勾號圖示
emailRecipients 勾號圖示
url 勾號圖示 勾號圖示
apiKey 勾號圖示 勾號圖示
routingKey 勾號圖示
account 勾號圖示
serviceKey 勾號圖示
serviceName 勾號圖示

apiKey (字串)

VictorOps'sAPI 金鑰。 您必須從 VictorOps 整合設定頁面取得此金鑰。

channel (string)

通道的名稱。

emailRecipients (字串)

電子郵件位址清單。

notifyOnOk(布林值)

此旗標指出當通知狀態從 ACTIVE 變更為 OK 且使用者手動確認通知時傳送通知的狀態。

設為 true 以傳送通知。

notifyOnResolve(布林值)

此旗標指出當通知狀態從 ACTIVE 變更為 OK 時傳送通知的狀態,因為條件已解決而不再觸發,且通知由使用者手動變更為已解決。

設為 true 以傳送通知。

resolveOnOk(布林值)

此旗標指出當通知狀態從 ACTIVE 變更為 OK 且條件因為已解決而不再觸發時傳送通知的狀態。

設為 true 以傳送通知。

routingKey (字串)

VictorOps's路由金鑰。 您必須從 VictorOps 整合設定頁面取得此金鑰。

url (string)

URL 端點。

類型

定義通知通道。

通知頻道類型
通知類型
電子郵件 EMAIL
PagerDuty PAGER_DUTY
Slack SLACK
VictorOps VICTOROPS
Webhook WEBHOOK
OpsGenie OPSGENIE

版本 (整數)

通知的版本。

每次更新通知時,版本都會變更。

版本用於樂觀鎖定。

查詢參數

notificationId (整數)

通知的 ID。

從 (long)

定義當您要求所定義通知的相關資訊時所使用的開始時間戳記 (以微秒為單位)。

至 (long)

定義當您要求所定義通知的相關資訊時所使用的結束時間戳記 (以微秒為單位)。