Google Cloud Backup and DR 日志集成指南:事件日志与备份恢复作业日志的 Proto 结构解析
2026/9/16 18:55:47 网站建设 项目流程

Google Cloud Backup and DR 日志集成指南:事件日志与备份恢复作业日志的 Proto 结构解析

【免费下载链接】googleapisPublic interface definitions of Google APIs.项目地址: https://gitcode.com/GitHub_Trending/go/googleapis

Cloud Backup and DR(备份与灾难恢复)服务通过一组 proto 文件对外发布其日志数据的结构化格式,帮助运维与开发人员理解备份/恢复设备产生的事件、作业运行记录与合规报告。本文以 google/cloud/backupdr/logging/v1/README.md 为核心,结合同目录下三个日志定义文件与 Backup Plan 相关 proto,逐层拆解每类日志消息的字段语义、适用场景与底层关联,帮助读者掌握如何利用这些日志进行监控、排障与报表分析。

日志集成整体架构

根据 google/cloud/backupdr/logging/v1/README.md 的说明,该目录下的 proto 文件承担着"事件日志格式文档"的角色。事件日志(Event Logs)用于查看在 Backup and DR Service 中执行的操作,其数据来源与产生机制如下:

  • 备份/恢复设备(Backup/Recovery Appliance)产生带有事件 ID(Event ID)关联错误消息(Error Message)的事件;
  • 在很多情况下,底层组件在经历错误或告警时,会额外提供错误代码(Error Code)及其自带的错误消息,这些信息会被一并写入日志;
  • 因此,一条完整的事件日志通常由"设备事件"与"底层组件错误详情"两层信息构成。

日志定义集中在 google/cloud/backupdr/logging/v1 目录下三个 proto 文件中,按用途划分为三大类:

Proto 文件职责覆盖的日志消息
eventlog.proto设备产生的基础事件日志Event
bdr_log.proto基于 Backup Plan 保护体系的作业与资源日志BDRBackupRestoreJobLogBDRProtectedResourceLogBDRBackupVaultDetailsLogBDRBackupPlanJobLogBDRBackupPlanAssociationJobLog
reportlog.protoGCBDR 上报体系中的作业报告、合规与资源利用日志BackupRecoveryJobReportLogUnprotectedResourceReportLogDailyScheduleComplianceReportLogBackupStorageUtilizationReportLogProtectedResourceMountedImageConnectorVersionReportLog

三个文件统一声明package google.cloud.backupdr.logging.v1;,即所有消息的完整限定名都以该命名空间开头;其中 bdr_log.proto 与 reportlog.proto 还显式指定了go_package = "cloud.google.com/go/backupdr/logging/apiv1/loggingpb;loggingpb",供 Go 客户端导入使用。

设备事件日志:Event

eventlog.proto 中仅定义一个消息Event,它对应 README 所描述的"备份/恢复设备产生的事件",用于记录事件发生时刻、来源组件、关联应用与作业等信息:

字段类型说明
event_timestring事件被上报的时间
srcidint64事件在备份设备中发生的唯一 ID
error_messagestring与该事件关联的详细错误描述
event_idint32与错误关联的唯一事件 ID
componentstring事件来源组件
appliance_nameint64事件发生的设备唯一 ID
app_namestring与事件关联的应用名称
app_typestring与事件关联的应用类型
job_namestring与事件关联的作业名称

从字段设计可以看出Event覆盖了排障所需的完整上下文链:通过appliance_name定位设备,通过component定位组件,通过event_id/srcid精确对应设备侧错误码,再辅以app_namejob_name还原出错时的业务现场。

基于 Backup Plan 的作业与资源日志:bdr_log.proto

bdr_log.proto 面向使用 Backup Plan 保护的资源,定义了五类日志消息,覆盖"作业执行—资源保护状态—备份库容量—计划变更—计划关联变更"五条观测链路。

备份/恢复作业日志:BDRBackupRestoreJobLog

该消息记录基于 Backup Plan 保护的资源的备份与恢复作业(Backup and Restore Job),是排障与审计的核心消息,字段如下:

字段类型说明
job_idoptional string被记录作业的标识符
job_categoryoptional string作业类别
job_statusoptional string作业状态
source_resource_nameoptional string被保护资源的完整资源名
source_resource_idoptional string源资源 ID
restore_resource_nameoptional string恢复目标资源的完整资源名,仅在恢复作业中填充
backup_nameoptional string备份作业中创建的备份、恢复作业中使用的备份的完整资源名
resource_typeoptional string被保护资源的类型
start_timeoptional google.protobuf.Timestamp作业开始时间
end_timeoptional google.protobuf.Timestamp作业结束时间
backup_plan_nameoptional string作业所属 Backup Plan 的完整资源名,仅计划备份与临时备份(Adhoc Backup)填充
backup_ruleoptional string备份规则名称,仅计划备份与临时备份填充
backup_retention_daysoptional int32备份保留天数
backup_vault_nameoptional string备份库(Backup Vault)完整资源名
incremental_backup_size_giboptional double增量备份数据拷贝量(GiB)
error_codeoptional int32错误代码,仅在错误场景填充
error_typeoptional string错误类型名称,如PERMISSION_DENIED,仅在错误场景填充
error_messageoptional string用户可读的错误消息,仅在错误场景填充
backup_consistency_timeoptional google.protobuf.Timestamp备份一致性时间
source_resource_locationoptional string源资源位置
restore_resource_locationoptional string恢复资源位置
recovery_point_timegoogle.protobuf.Timestamp恢复点时间(必填)
data_source_namestring规范数据源名称(Canonical Data Source Name,必填)

值得注意的两点:一是recovery_point_timedata_source_name为必填字段(非optional),是关联恢复点与数据源的锚点;二是错误类字段(error_codeerror_typeerror_message)与 README 描述的"错误代码+错误消息"机制一一对应,其中error_type给出的PERMISSION_DENIED等值可直接映射到 Google API 的标准错误模型。

被保护资源日志:BDRProtectedResourceLog

该消息记录被保护资源的当前保护状态,可用于构建"资源—Backup Plan—Backup Vault"的当前快照:

字段类型说明
source_resource_nameoptional string源资源完整规范名
source_resource_idoptional string源资源 ID(GCE 场景为实例 ID)
resource_typeoptional string资源类型,如Compute Engine
source_resource_data_size_giboptional double被保护源资源大小(GiB),四舍五入保留 2 位小数
current_backup_plan_nameoptional string当前关联源资源的 Backup Plan 完整规范名
current_backup_rule_detailsrepeated BackupRuleDetail当前关联 Backup Plan 的备份规则详情(可重复)
last_protected_onoptional google.protobuf.Timestamp资源最后一次受保护的时间戳
current_backup_vault_nameoptional string当前关联源资源的 Backup Vault 完整资源名
source_resource_locationoptional string源资源位置

其中current_backup_rule_details引用内嵌消息BackupRuleDetail,将计划中的规则展开为可读描述:

字段类型说明
rule_nameoptional string备份规则名称
retention_daysoptional int32备份保留天数
recurrenceoptional string重复类型,如WeeklyMonthlyDaily
recurrence_scheduleoptional string重复调度描述,如"每月 1 日和 25 日"
backup_windowoptional string备份窗口,如00:00 to 06:00
backup_window_timezoneoptional string备份窗口时区(IANA 格式),如America/Los_Angeles

BackupRuleDetail中的recurrencebackup_window等语义可在服务端 proto google/cloud/backupdr/v1/backupplan.proto 中找到对应定义:StandardSchedule.RecurrenceType枚举了HOURLYDAILYWEEKLYMONTHLYYEARLY五种周期(见 backupplan.proto#L186-L206),而BackupWindow通过start_hour_of_day(0-23)与end_hour_of_day(1-24)界定每日窗口,并约定0 <= start_hour_of_day < end_hour_of_day <= 24、结束时刻不包含在窗口内(见 backupplan.proto#L273-L288)。日志中的recurrence/backup_window字符串即是对上述结构化配置的人读化摘要。

备份库详情日志:BDRBackupVaultDetailsLog

该消息从 Backup Vault 维度汇总备份库中数据的可恢复性、容量与保护约束:

字段类型说明
backup_vault_nameoptional stringBackup Vault 的相对资源名
source_resource_nameoptional string源资源相对名
resource_typeoptional string资源类型,如Compute Engine
current_backup_plan_nameoptional string当前用于保护资源的 Backup Plan 名称
first_available_restore_pointoptional google.protobuf.Timestamp首个(最旧)备份的时间戳
last_available_restore_pointoptional google.protobuf.Timestamp最近一次备份的时间戳
stored_bytes_giboptional double备份占用的存储空间(GiB)
minimum_enforced_retention_daysoptional int32备份库中备份免于删除的最短保护时限(天)
source_resource_locationoptional string源资源位置

first_available_restore_pointlast_available_restore_point组成可恢复时间区间,minimum_enforced_retention_days对应备份库的强制保留策略——该字段与服务端 Backup Vault 定义(见 google/cloud/backupdr/v1/backupvault.proto)中的最小强制保留期语义一致,可用于审计数据是否处于删除保护期内。

备份计划变更作业日志:BDRBackupPlanJobLog

该消息记录 Backup Plan 的更新类作业(如UPDATE_BACKUP_PLAN),支持对计划修订的审计追踪:

字段类型说明
job_idstring被上报作业的标识符(必填)
job_categorystring作业类别,可取UPDATE_BACKUP_PLAN
job_statusstring作业状态,可取RUNNINGSUCCESSFULFAILED
resource_typestring被保护资源类型
backup_plan_namestring作业对应的 Backup Plan 规范资源名
previous_backup_plan_revision_idstring旧修订的友好 ID,如v0v1
previous_backup_plan_revision_namestring旧修订的完整资源名
new_backup_plan_revision_idstring新修订的友好 ID
new_backup_plan_revision_namestring新修订的完整资源名
start_timegoogle.protobuf.Timestamp作业开始时间
end_timegoogle.protobuf.Timestamp作业结束时间
workloads_affected_countint32受作业影响的工作负载总数
previous_backup_rulesrepeated BackupRuleDetail旧 Backup Plan 的规则列表
revised_backup_rulesrepeated BackupRuleDetail修订后 Backup Plan 的规则列表
error_codeint32错误代码,仅在错误场景填充
error_typestring错误类型名称,如PERMISSION_DENIED
error_messagestring用户可读错误消息

修订机制与服务端 proto 中 Backup Plan 的版本化设计呼应:Backup Plan 消息中定义了revision_idrevision_namerevision_etag等修订字段(见 backupplan.proto),日志通过previous_*/new_*成对字段完整记录"从哪个修订改到哪个修订",配合前后规则列表即可精确还原一次计划变更的内容。

备份计划关联变更日志:BDRBackupPlanAssociationJobLog

该消息记录 Backup Plan 与资源之间关联(Backup Plan Association,BPA)的创建与更新作业:

字段类型说明
job_idoptional string作业标识符
job_categoryoptional string作业类别,可取UPDATE
job_statusoptional string作业状态,可取RUNNINGQUEUEDSUCCESSFULFAILEDSKIPPED
source_resource_nameoptional string被保护资源完整资源名
source_resource_idoptional string被保护资源 ID
source_resource_locationoptional string被保护资源位置
resource_typeoptional string被保护资源类型
backup_plan_association_nameoptional string作业对应的 BPA 完整资源名
previous_backup_plan_nameoptional string旧 Backup Plan 完整资源名,仅在更新 BPA 时填充
previous_backup_plan_revision_id/previous_backup_plan_revision_nameoptional string旧 Backup Plan 修订 ID / 完整资源名
new_backup_plan_nameoptional string新 Backup Plan 完整资源名,更新与创建 BPA 时填充
new_backup_plan_revision_id/new_backup_plan_revision_nameoptional string新 Backup Plan 修订 ID / 完整资源名
start_time/end_timeoptional google.protobuf.Timestamp作业开始 / 结束时间
error_code/error_type/error_messageoptional错误代码 / 类型 / 消息,仅在错误场景填充

注意job_status多出的QUEUEDSKIPPED状态,反映了关联变更作业会被排队执行、且可能在条件不满足时被跳过的实际行为,排查时应结合该状态字段判断作业"未成功"是失败、排队超时还是被主动跳过。

GCBDR 上报体系日志:reportlog.proto

reportlog.proto 定义了作为 GCBDR Reporting 发布的多类报告日志,覆盖作业执行报告、未保护资源、计划合规、存储利用、受保护资源清单、挂载镜像与连接器版本等主题。

备份/恢复作业报告:BackupRecoveryJobReportLog

该消息是作业级报告的核心载体,字段数量最多(40 个),按语义可归纳为五组:

  • 作业身份与调度job_namejob_idjob_category(Backup 或 Recovery Job)、job_typejob_statuslog_backup(日志备份是仅日志、仅 DB 还是两者)、backup_type(Log、Incremental 或 Full Copy);
  • 时间维度job_start_timejob_end_timejob_queued_timejob_duration_in_hoursrecovery_pointbackup_consistency(crash consistent 或 application consistent);
  • 资源与策略归属resource_nameresource_idresource_typebackup_rule_policy_namebackup_rule_policy_idbackup_plan_policy_template
  • 执行环境hostnamehost_idappliance_nametarget_host_nametarget_host_idtarget_appliance_nametarget_appliance_idtarget_pool_nametarget_pool_id
  • 容量与性能指标resource_data_size_in_gibdata_copied_in_gibonvault_pool_storage_consumed_in_gibpre_compress_in_gibcompression_ratiodata_change_ratesnapshot_disk_size_in_gibdata_written_in_gibdata_sent_in_gib
  • 失败归因error_codeerror_messagejob_initiation_failure_reason(作业未运行时给出未启动原因)。

其中compression_ratio定义为压缩后大小与压缩前大小的比值、data_change_rate为备份拷贝数据量占应用数据量的百分比,data_written_in_gibdata_sent_in_gib分别刻画远程写入量与网络发送量,可用于容量规划与网络带宽分析。字符串型时间字段(如job_start_time)与 bdr_log.proto 中的google.protobuf.Timestamp类型形成对比,使用者在做时间过滤与排序时需注意两种表示方式的差异。

未保护资源报告:UnprotectedResourceReportLog

该消息上报被发现但尚未纳入保护的资源,除必填的资源归属信息外,还提供发现溯源:

  • 必填字段:host_nameresource_nameresource_typediscovered_on(首次发现日期)、discovered_by(发现设备名称)、appliance_idresource_idhost_id
  • 可选字段:instance_name(针对数据库实例成员的实例名)。

对运维团队而言,该日志可直接用于生成"保护覆盖率"报表,识别遗漏保护的高风险资源。

每日调度合规报告:DailyScheduleComplianceReportLog

该消息按天评估策略是否在备份窗口内按期执行,是 SLA 合规审计的关键数据源:

  • 必填字段:resource_nameresource_typebackup_rule_policy_namebackup_plan_policy_templatehost_nameappliance_namedate(上报合规的日期)、backup_window_start_timejob_typestatus(策略合规状态)、comment(状态原因描述)、resource_idhost_idbackup_plan_policy_template_idbackup_rule_policy_idappliance_id

结合backup_window_start_time与 backupplan.proto 中BackupWindow的定义可做交叉验证:若作业未在窗口内启动,日志会记录对应状态与comment说明原因。

备份存储利用报告:BackupStorageUtilizationReportLog

该消息按存储池维度上报容量使用情况,用于容量监控与扩容决策:

字段类型说明
appliance_nameoptional string设备名称
storage_typestring存储资源类型(必填)
pool_namestring存储池名称(必填)
total_capacity_in_gibdouble存储池总容量(GiB,必填)
used_capacity_in_gibdouble存储池已用容量(GiB,必填)
utilization_percentagedouble存储池利用率百分比(必填)
appliance_idstring设备 ID(必填)

利用utilization_percentage = used_capacity_in_gib / total_capacity_in_gib的关系可对上报数据的自洽性做校验。

受保护资源清单:ProtectedResource

该消息以扁平字段承载受保护资源的完整档案,覆盖保护策略、数据量与流式快照(streamsnap)场景下的跨设备信息:

  • 身份与策略resource_nameresource_typeresource_idbackup_inclusion_or_exclusion(备份包含/排除)、backup_plan_policy_template_idbackup_plan_policy_templatesla_idbackup_plan_restrictionspolicy_overrides
  • 宿主与设备host_idhost_nameappliance_nameappliance_id
  • 保护时间与数据量protected_onprotected_data_in_gibonvault_in_gibrecovery_point
  • streamsnap 相关(可选)source_appliancesource_appliance_idremote_applianceremote_appliance_id

挂载镜像日志:MountedImage

该消息记录恢复演练与数据挂载场景,一条记录描述一个被挂载的镜像,字段覆盖源资源、挂载目标、镜像属性、时间与容量:

  • 源与镜像source_resource_namesource_resource_idsource_image_namesource_image_typemounted_image_namerecovery_point_dateresource_typerestorable_object(可恢复对象)、read_mode(只读模式)、image_expiration_date(镜像过期日期);
  • 设备与集群appliance_nameappliance_id
  • 挂载目标source_host_namesource_host_idmounted_host_namemounted_host_idmounted_resource_namemounted_resource_labeluser_name
  • 时间与容量last_mount_datemounted_image_age_in_daysresource_virtual_size_in_gibstorage_consumed_in_gibresource_size_in_gib

连接器版本报告:ConnectorVersionReportLog

该消息上报备份代理(Connector)的安装与升级状态,用于版本合规管理:

字段类型说明
appliance_name/appliance_idstring设备名称 / ID(必填)
host_name/host_idstring主机名称 / ID(必填)
host_os_typeoptional string主机操作系统类型
host_ip_addressstring主机 IP 地址(必填)
db_authenticationoptional string数据库认证方式
installed_versionstring已安装版本(必填)
available_versionoptional string可用版本
version_checkstring版本检查结果(必填)
disk_preferencestring磁盘偏好(必填)
transportstring传输方式(必填)

通过对比installed_versionavailable_version即可快速筛选出需要升级的连接器主机。

日志 proto 的构建与多语言产出

日志定义以 Bazel 目标的形式组织在 google/cloud/backupdr/logging/v1/BUILD.bazel 中:proto_library("logging_proto")聚合三个 proto 源文件,并依赖@com_google_protobuf//:timestamp_proto(对应google.protobuf.Timestamp的引入);随后通过java_proto_librarygo_grpc_librarypy_gapic_libraryphp_proto_libraryruby_proto_librarycsharp_proto_librarycc_proto_library等规则生成各语言的 proto 代码与客户端库,产物命名形如google-cloud-backupdr-logging-v1-javagoogle-cloud-backupdr-logging-v1-gogoogle-cloud-backupdr-logging-v1-py等。这意味着无论使用 Java、Go、Python、PHP、Ruby、C# 还是 C++,都可以从同一份 proto 定义获得类型安全的日志结构体,便于在各自的数据管道中解析与建模。

从构建配置还能看到:Go 库的 import path 为cloud.google.com/go/backupdr/logging/apiv1/loggingpb,与 proto 内go_package声明一致;Python 客户端通过py_gapic_library生成,传输方式配置为grpc+rest

日志消费与排障实践建议

综合上述消息定义,在实际使用中可参考以下实践:

  1. 排障路径:按Event.event_id/srcid定位设备侧原始事件,再以job_id关联BDRBackupRestoreJobLogBackupRecoveryJobReportLog中的error_codeerror_typeerror_message,即可形成"设备事件 → 作业状态 → 底层错误"的完整证据链;
  2. 审计变更:利用BDRBackupPlanJobLogprevious_*/new_*修订对与规则列表,还原每次 Backup Plan 变更;利用BDRBackupPlanAssociationJobLog追踪资源与计划的关联变更;
  3. 合规与容量DailyScheduleComplianceReportLog提供按日合规状态,BackupStorageUtilizationReportLog提供存储池利用率,UnprotectedResourceReportLog暴露保护盲区,三者组合即可构建覆盖"是否按期备份、容量是否充足、资源是否漏保护"的运维仪表盘;
  4. 恢复能力评估BDRBackupVaultDetailsLogfirst/last_available_restore_pointminimum_enforced_retention_days决定可恢复区间与数据删除保护,MountedImage则记录恢复演练的实际情况。

需要说明的是,本目录 proto 定义的仅是日志的数据格式契约,日志的实际产生、投递与查询依赖 Backup and DR Service 运行时及其日志导出通道;本文所有字段语义均直接取自 bdr_log.proto、eventlog.proto、reportlog.proto 中的注释与类型声明,并与 google/cloud/backupdr/v1/backupplan.proto 等服务端定义相互印证,可作为二次开发与日志解析的权威依据。

【免费下载链接】googleapisPublic interface definitions of Google APIs.项目地址: https://gitcode.com/GitHub_Trending/go/googleapis

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询