IBM Cloud Docs
使用监控 API 标记

使用监控 API 标记

当您使用 Python 脚本或 IBM Cloud Monitoring REST API 自动执行例行任务和监控通知时,可以使用监控 API 标记来验证 IBM Cloud Monitoring 服务。

请考虑 IBM Cloud Monitoring 服务的每个实例的以下信息:

  • 每个团队都有一个监控器 API 令牌。
  • 如果令牌泄漏或组织的安全策略需要在特定条件后重置令牌,那么具有管理许可权的用户可以重置 API 令牌。

通过监控 UI 获取监控 API 令牌

完成以下步骤获取监控 API 令牌:

  1. 通过导航栏中的选择器按钮,选择设置
  2. 监控器 API 部分,复制监控器 API 令牌

获取令牌后,您可以运行 API 调用并在 Authorization 標軸。

复制令牌时请包含 Bearer 关键词:Authorization: Bearer MONITOR_API_TOKEN

通过监控 UI 重置监控 API 令牌

完成以下步骤来重置监控 API 令牌:

  1. 通过导航栏中的选择器按钮,选择设置
  2. “监控 API”部分,单击“重置令牌”重置 API 令牌。

使用 API 获取监控 API 令牌

您可以使用Token API来获取Monitor API token。

例如,您可以使用以下内容cURL获取监控 API 令牌的命令:

curl -X GET <MONITORING_REST_API_ENDPOINT>/api/token -H "Authorization: $AUTH_TOKEN" -H "IBMInstanceID: $GUID" -H "SysdigTeamID: $TEAM_ID" -H "content-type: application/json"
GET <MONITORING_REST_API_ENDPOINT>/api/token -H "Authorization: $AUTH_TOKEN" -H "IBMInstanceID: $GUID" -H "SysdigTeamID: $TEAM_ID" -H "content-type: application/json"

位置

  • <MONITORING_REST_API_ENDPOINT> 表示 REST API 调用的目标端点。 有关详细信息,请参阅For more information, see REST API 端点。 例如,在美国南部可用的实例的公共端点如下:https://us-south.monitoring.cloud.ibm.com/api

  • 您可以使用以下方式传递多个标头 -H

    AuthorizationIBMInstanceID 是身份验证所需的标题。

    SysdigTeamID 定义您想要获取监控 API 令牌的团队。

    要获得 AUTH_TOKENGUID 看,IAM 令牌的标头

当监控实例中允许的授权设置为 IAM_ONLY,您会收到以下响应 {"errors":[{"reason":"Not enough privileges to complete the action","message":"Access is denied"}]} 当您尝试获取监控 API 令牌时。

示例 JSON 代码

您可以使用以下示例 JSON 代码来获取监控 API 令牌:

def get_sysdig_api_token(self, instance_guid):
   """ Get the Monitor API token  by calling the /api/token endpoint """
   if self.access_token == None:
       self.get_iam_token()
   if self.access_token == None:
       # If the token is still None we have problems ....
       return None
   headers = { "Authorization": self.access_token,
               "Accept": "application/json",
               "IBMInstanceID": instance_guid }
   url = self.sysdig_endpoint + "/api/token"
   response = requests.get(url, headers=headers)
   if response.status_code == 200:
       data = response.json()
       return data["token"]["key"]
   else:
       print_error("Error getting Monitor API token  - {}".format(response.text))
       return None