自動バックアップの監査ログを表示する

このページでは、Cloud SQL インスタンスの自動バックアップの監査ログを表示する方法について説明します。

監査ログを使用すると、次のことができます。

  • 監査ログを表示して、バックアップが正常に完了したかどうかを確認する。
  • バックアップのステータスを通知するログベースのアラートを構成する。

監査ログを表示する

Google Cloud コンソール、gcloud CLI、または API を使用して監査ログを表示し、バックアップの時間枠内でバックアップが正常に完了したかどうかを確認できます。

ConsolegcloudAPI
  1. Google Cloud コンソールで [Logging] を選択してから、[ログ エクスプローラ] を選択します。

    [ログ エクスプローラ] に移動

  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 に置き換えます。

    最初の式は、システム イベント監査ログをフィルタします。2 番目の式は、自動バックアップの監査ログをフィルタします。最後の式は、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

    最初の式は、システム イベント監査ログをフィルタします。2 番目の式は、自動バックアップの監査ログをフィルタします。最後の式は、Cloud SQL インスタンスの監査ログをフィルタします。

    gcloud を使用して監査ログのクエリを行う方法については、ログを表示をご覧ください。

  2. バックアップの時間枠内に作成されたバックアップのステータスを表示します。このステータスは windowStatus フィールドに表示されます。

リクエストのデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: Google Cloud プロジェクトの ID。

リクエスト JSON 本文の最初の式は System Event 監査ログをフィルタします。2 番目の式は、自動バックアップの監査ログをフィルタします。最後の式は、Cloud SQL インスタンスの監査ログをフィルタします。

API を使用して監査ログのクエリを行う方法については、ログを表示をご覧ください。

HTTP メソッドと URL:

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 時から午前 5 時の間にバックアップ時間枠をスケジュールした場合、その時間内に EXPORT オペレーションが多数あると、バックアップが失敗することがあります。また、長時間実行される EXPORT オペレーションとの競合が多すぎると、自動バックアップが失敗する可能性があります。

    バックアップ時間枠内に Cloud SQL がバックアップを複数回作成しようとしても、STATUS_ATTEMPT_FAILED に示す理由によりバックアップを作成できない場合、Cloud SQL は STATUS_FAILED に設定された windowStatus フィールドで別の監査ログを生成します。

  • STATUS_SKIPPED: 前回の正常なバックアップ以降、Cloud SQL インスタンスは実行を停止しました。そのため、新しい自動バックアップは作成されませんでした。

ログベースのアラートを構成する

バックアップのステータスを通知するログベースのアラートを構成できます。

  • バックアップのステータスが STATUS_SUCCEEDED の場合は、トラッキングの目的で通知を受けることができます。
  • バックアップのステータスが STATUS_FAILED または STATUS_ATTEMPT_FAILED の場合、ログエントリに表示されるメッセージに基づいて是正措置を講じるように通知を受けることができます。次にスケジュールされたバックアップの時間枠の前にオンデマンド バックアップを行うこともできます。
  • バックアップのステータスが STATUS_SKIPPED の場合、Cloud SQL インスタンスを再起動するように通知を受けることができます。

次のステップ