为 Backup for VPC 启用事件通知
作为 IBM Cloud Backup for VPC 的管理员,您可能希望通过电子邮件、SMS 或其他支持的交付渠道,将 IBM Cloud Backup for VPC 中的事件通知发送给其他用户或人类目的地。 此外,您可能希望将这些事件通知发送到其他应用程序,以便通过使用 Webhooks 等事件驱动编程来构建逻辑。 IBM Cloud Backup for VPC 和 IBM Cloud® Event Notifications 之间的集成使其成为可能。
要向 Event Notifications 发送信息,您必须将 IBM Cloud Backup for VPC 实例连接到 Event Notifications。 有关使用 Event Notifications 的更多信息,请参阅 开始使用 Event Notifications。
IBM Cloud Backup for VPC 如何收集和发送事件
备份工作可完成 2 类任务。 一个任务负责按计划拍摄备份快照,另一个任务负责管理现有备份并对备份应用保留规则。 如果备份作业失败,IBM Cloud Backup for VPC 会与连接的 Event Notifications 实例通信,将通知转发到 支持的目标。
IBM Cloud Backup for VPC 的事件
下表列出了 IBM Cloud Backup for VPC 事件。
事件类型 | 描述 |
---|---|
Volume backup job creation failure
|
当备份任务因授权缺失、现有快照过多或源卷繁忙而无法创建备份快照时,就会创建这些事件。 有关更多信息,请参阅 快照限制、快照生命周期状态 和 服务对服务授权。 |
卷备份工作保留失败
|
当备份任务因缺少授权或快照处于 pending 或 bad 状态而无法删除备份快照时,就会创建这些事件。 有关更多信息,请参阅 napshot 生命周期状态 和 服务到服务授权。 |
Instance backup job creation failure
|
当备份作业由于各种原因无法创建一致性组的快照时,就会创建这些事件。 例如,授权缺失、卷所连接的实例不可用、加密密钥无法访问,或者达到了卷大小或快照数量的服务限制。 有关更多信息,请参阅 napshot 生命周期状态 和 服务到服务授权。 |
实例备份工作保留失败
|
当备份作业因缺少授权而无法删除属于一致性组的备份快照,或快照处于 pending 状态时,就会创建这些事件。 有关更多信息,请参阅 快照生命周期状态 和 服务对服务授权。 |
看到这些警报时,您可以使用 API 或 CLI 确认失败状态的原因。
有关如何解决问题的详细信息,请参阅 故障排除 Backup for VPC。
启用通知
IBM Cloud Backup for VPC 服务实例生成的事件可转发到同一帐户中的 Event Notifications 服务实例。 您只能为一个 Event Notifications 服务实例配置一个备份服务源。
如果您的帐户中还不存在 IBM Cloud Backup for VPC 和 Event Notifications 之间的 IAM 授权,请使用事件源管理器角色创建一个授权。 有关详细信息,请参阅 建立服务对服务授权。
在为 IBM Cloud Backup for VPC 启用通知之前,请确保您有一个 Event Notifications 服务实例,该实例与您的 IBM Cloud Backup for VPC 实例位于同一帐户中。
然后,您可以使用 IBM Cloud Backup 策略详细信息页面中的 Actions > Event notifications 部分来连接服务。
然后,您就可以通过调用事件通知 API,以编程方式连接到 Event Notifications。
在控制台中连接到 Event Notifications
-
在 IBM Cloud 控制台中,单击 导航菜单 图标
> 基础架构
备份策略。
-
单击策略名称。
-
单击 Actions
并选择 Event notifications。
-
在连接到 Event Notifications 侧面板中,查看连接的源详细信息,并提供说明。
-
选择资源组和要连接的 Event Notifications 服务实例。
如果您的账户中不存在 IBM Cloud Backup for VPC 和 Event Notifications 之间的 IAM 授权,请按照 为 Event Notifications 启用服务对服务 授权中的步骤进行设置。 设置授权需要 AIM 管理员角色。
-
要确认连接,请单击 保存。
从 CLI 连接到 Event Notifications
要从 CLI 连接 IBM Cloud Backup for VPC 源,请使用 ibmcloud event-notifications sources-create
命令。
ibmcloud event-notifications sources-create --instance-id INSTANCE-ID --name NAME --source BACKUP POLICY CRN --description DESCRIPTION [--enabled ENABLED]
有关详细信息,请参阅 事件通知 CLI 参考。
使用 API 连接 Event Notifications
下面的示例显示了一个查询,您可以使用该查询以 Event Notifications 注册 IBM Cloud Backup for VPC 源详细信息。 调用 API 时,请使用 IBM Cloud Backup for VPC 实例的特定值替换 ID 变量和 IAM 令牌。
进入资源列表页面,单击 Event Notifications 实例行,即可在控制台中找到 event_notifications_instance_crn
值。
curl -X POST "{base_url}/v1/instances/{instance_id}/sources"
-H "Authorization: Bearer {iam_token}"
-H "Content-Type: application/json"
-d '{
"name":"Event Notification Source - Backup policy",
"source" : "crn:v1:bluemix:public:is:us-south:a/{{account_id}}::backup-policy:",
"description":"Backup policy service registration. This source provides notifications for backup job failures.",
"enabled":true,
"event_notifications_instance_crn": "crn:v1:bluemix:public:event-notifications:<region>:a/<account-id>:<service-instance>::"
}'
成功响应将返回已连接的 Event Notifications 服务实例的 CRN 值。 有关必填和可选请求参数的更多信息,请参阅 Event Notification API 文档。
使用 Terraform 连接到 Event Notifications
要将 IBM Cloud Backup for VPC 服务连接到 Event Notifications,请使用 ibm_en_source
资源。 有关参数和属性的更多信息,请参见 ibm_en_source 资源的 Terraform 参考资料。
resource "ibm_en_source" "en_source" {
instance_guid = ibm_resource_instance.en_terraform_test_resource.guid
name = "EN Source for Backup jobs"
source = "crn:v1:bluemix:public:is:us-south:a/{{account_id}}::backup-policy:"
description = "API source for Event notification destinations"
enabled = true
}
有关更多信息,请参见 在 Event Notifications 中使用 Terraform。
向选定目的地发送通知
启用 IBM Cloud Backup for VPC 的通知后,请在 Event Notifications 中创建主题和订阅,以便将警报转发和交付到所选目的地。
有关支持的目的地的完整列表,请参阅 Event Notifications 文档。
电子邮件通知
您可以使用 IBM Cloud 电子邮件服务 作为 IBM Cloud Backup for VPC 事件通知的交付渠道。 在现有主题和 IBM Cloud 电子邮件服务之间创建 Event Notifications 订阅,通过电子邮件将警报转发给不同的接收者。
来自 IBM Cloud 的电子邮件包含有关 IBM Cloud Backup for VPC 事件的信息,类似于下面的示例:
Email Title: Volume Backup Job Creation Failure
Email Body:
Volume Backup Job Creation Failure. Resource: crn:v1:staging:public:is:us-south-1:a/be09dae34250437f96fc8b27ae7d233b::volume:r134-f6583aac-8ba9-4d04-ab7a-acfe7b420016. BackupJobID: r134-899ab8fb-3b71-4fc8-bca5-1544cb425e4f. Reason: Snapshot quota per volume reached.
Notification details:
{
"backup_policy": "r134-306fd8f6-b14c-410d-8f29-f05282b6daa9",
"backup_policy_job": "r134-899ab8fb-3b71-4fc8-bca5-1544cb425e4f",
"backup_policy_plan": "r134-444bb07f-3399-42d5-b895-febcaca8d1bc",
"match_resource_type" : "volume",
"job_type" : "creation",
"reasons": [
{
"more_info": "https://cloud.ibm.com/docs/vpc?topic=vpc-troubleshooting-backup-for-vpc",
"status": "source_volume_too_large"
}
],
"resource": "crn:v1:staging:public:is:us-south-1:a/be09dae34250437f96fc8b27ae7d233b::volume:r134-f6583aac-8ba9-4d04-ab7a-acfe7b420016"
}
要在电子邮件中接收事件通知的详细信息,请在创建 Event Notifications 订阅时选择 添加通知有效载荷选项。 您的电子邮件将显示与事件相关联的 通知有效载荷详细信息。
Webhook
您可以配置 Webhook 目的地,以便应用程序或服务能以编程方式使用收到的通知。 有关设置 webhooks 的更多信息,请查看 Event Notifications 文档。
通知有效载荷详情
IBM Cloud Backup for VPC 生成的成功事件包含多个字段,可帮助您确定事件的来源和详细信息。
来自 IBM Cloud Backup for VPC 的事件通知仅包含元数据属性,例如资源的名称或标识符。 敏感数据(如 API 密钥或密码)不会包含在生成的事件中。
发送到 Event Notifications 的属性因事件类型而异。 例如,如果发生 Backup job creation failed
事件,IBM Cloud Backup for VPC 将向 Event Notifications 发送与以下示例类似的通知有效载荷。
{
"ibmendefaultlong": "{\"status\":\"Backup job creation / retention failed\",
\"backup_policy\": r134-6da51cfe-6f7b-4638-a6ba-00e9c327b178,
\"backup_policy_plan\":\"r134-076191ba-49c2-4763-94fd-c70de73ee2e6\",
\"status_reason\": \"source_volume_busy: The source volume has busy set (after multiple retries)\",
\"match_resource_type\": \"instance\",
\"job_type\": \"creation\",
\"more_info\": \"https://cloud.ibm.com/docs/vpc?topic=vpc-baas-troubleshoot\"}",
"ibmendefaultshort": "Backup Job creation / retention failed",
"id": "b2198eb8-04b1-48ec-a78c-ee87694dd845",
"time": "2024-04-22T20:59:34Z",
"ibmenseverity": "medium",
"type": "com.ibm.cloud.is.backup-policy.backup-volume-creation",
"source": "com.ibm.cloud.is.backup-policy",
"specversion": "1.0",
"ibmensourceid": "41cdb7d4-db3e-496b-b7df-d4ead362c412:api"
}