查看自动备份的审核日志

本页面介绍如何查看 Cloud SQL 实例的自动备份的审核日志。

您可以使用审核日志执行以下操作:

  • 查看审核日志以验证备份是否成功完成。
  • 配置基于日志的提醒,以接收有关备份状态的通知。

查看审核日志

您可以使用 Google Cloud 控制台、gcloud CLI 或 API 查看审核日志,以验证备份是否在备份时段内成功完成。

  1. 在 Google Cloud 控制台中,选择日志记录,然后选择日志浏览器

    转到日志浏览器

  2. 如需过滤 Cloud SQL 实例的自动备份的审核日志,请运行以下查询:

    logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event"
    protoPayload.methodName="cloudsql.instances.automatedBackup"
    resource.type="cloudsql_database"

    PROJECT_ID 替换为您的 Google Cloud 项目的 ID。

    第一个表达式过滤系统事件审核日志。第二个表达式过滤自动备份的审核日志。最后一个表达式过滤 Cloud SQL 实例的审核日志。

    如需详细了解如何使用 Google Cloud 控制台查询审核日志,请参阅查看日志

  3. 查看在备份时段内创建的备份的状态。此状态显示在 windowStatus 字段中。如需查看此字段,请完成以下步骤:

    1. 点击审核日志。
    2. 点击 metadata 字段。
  1. 如需过滤 Cloud SQL 实例的自动备份的审核日志,请运行以下查询:

    gcloud logging read \
    "logName=projects/PROJECT_NAME/logs/cloudaudit.googleapis.com%2Fsystem_event
    AND protoPayload.methodName=cloudsql.instances.automatedBackup AND
    resource.type=cloudsql_database" \ 
        --project=PROJECT_NAME

    PROJECT_NAME 替换为您的 Google Cloud 项目的名称。

    第一个表达式过滤系统事件审核日志。第二个表达式过滤自动备份的审核日志。最后一个表达式过滤 Cloud SQL 实例的审核日志。

    如需详细了解如何使用 gcloud 查询审核日志,请参阅查看日志

  2. 查看在备份时段内创建的备份的状态。此状态显示在 windowStatus 字段中。

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_ID:您的 Google Cloud 项目的 ID。

对于请求 JSON 正文,第一个表达式过滤系统事件审核日志。第二个表达式过滤自动备份的审核日志。最后一个表达式过滤 Cloud SQL 实例的审核日志。

如需详细了解如何使用 API 查询审核日志,请参阅查看日志

HTTP 方法和网址:

POST https://logging.googleapis.com/v2/entries:list

请求 JSON 正文:

{
     "resourceNames": [
     "projects/PROJECT_ID"
      ],
     "pageSize": 5,
     "filter": "logName=projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event AND protoPayload.methodName = cloudsql.instances.automatedBackup AND resource.type=cloudsql_database",
     "orderBy": "timestamp desc"
} 

如需发送您的请求,请展开以下选项之一:

将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://logging.googleapis.com/v2/entries:list"

将请求正文保存在名为 request.json 的文件中,然后执行以下命令:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://logging.googleapis.com/v2/entries:list" | Select-Object -Expand Content

您应该收到类似以下内容的 JSON 响应:

{
  "entries": [
    {
      "protoPayload": {
        "@type": "type.googleapis.com/google.cloud.audit.AuditLog",
        "status": {
          "message": "OK"
        },
        "authenticationInfo": {},
        "requestMetadata": {
          "requestAttributes": {},
          "destinationAttributes": {}
        },
        "serviceName": "cloudsql.googleapis.com",
        "methodName": "cloudsql.instances.automatedBackup",
        "resourceName": "projects/PROJECT_ID/instances/INSTANCE_NAME",
        "metadata": {
          "windowStartTime": "2022-12-15T13:00:00Z",
          "message": "",
          "windowStatus": "STATUS_SUCCEEDED",
          "@type": "type.googleapis.com/speckle.AutomatedBackupEventLog",
          "windowEndTime": "2022-12-15T17:00:00Z",
          "backupCompletionTime": "2022-12-15T14:11:57.347Z",
          "backupStartTime": "2022-12-15T14:11:16.631Z"
        }
      },
      "insertId": "LOG_ENTRY_UNIQUE_IDENTIFIER",
      "resource": {
        "type": "cloudsql_database",
        "labels": {
          "region": "REGION_NAME",
          "project_id": "PROJECT_ID",
          "database_id": "DATABASE_ID"
        }
      },
      "timestamp": "2022-12-15T14:11:57.391565Z",
      "severity": "INFO",
      "logName": "projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event",
      "receiveTimestamp": "2022-12-15T14:11:57.785814800Z"
    },
 ],
}

如需详细了解 insertId 字段的 LOG_ENTRY_UNIQUE_IDENTIFIER,请参阅 LogEntry

查看在备份时段内创建的备份的状态。此状态显示在 windowStatus 字段中。

自动备份状态

  • STATUS_SUCCEEDED:自动备份已成功完成。
  • STATUS_ATTEMPT_FAILED:Cloud SQL 尝试创建备份,但备份未启动或失败。此状态的原因包括:

    • 实例正在运行另一个备份。
    • 备份位置受组织政策的限制。
    • 实例备份已完成,但出现错误。
    • 当 Cloud SQL 尝试创建备份时,实例未在运行。
  • STATUS_FAILED:实例的自动备份尚未成功完成或无法在备份时段内完成。

    例如,如果您启用了自动备份,并安排了凌晨 1:00 到 5:00 之间的备份时段,那么如果您在此时间范围内执行许多 EXPORT 操作,备份可能会失败。如果与长时间运行 EXPORT 操作之间的冲突过多,自动备份也可能会失败。

    如果 Cloud SQL 在备份时段内多次尝试创建备份,但因以下原因无法创建备份:STATUS_ATTEMPT_FAILED,Cloud SQL 会生成另一个审核日志,并将 windowStatus 字段设置为 STATUS_FAILED

  • STATUS_SKIPPED:自上次成功备份以来,Cloud SQL 实例已停止运行。因此,系统未创建新的自动备份。

配置基于日志的提醒

您可以配置基于日志的提醒,以接收有关备份状态的通知。

  • 如果备份的状态为 STATUS_SUCCEEDED,则您可以收到通知以进行跟踪。
  • 如果备份状态为 STATUS_FAILEDSTATUS_ATTEMPT_FAILED,您将会收到通知,让您根据日志条目中显示的消息采取纠正措施。您还可以在下一个预定备份时段之前进行按需备份
  • 如果备份的状态为 STATUS_SKIPPED,则您将会收到通知,让您重启 Cloud SQL 实例。

后续步骤