Storage Transfer Service の Cloud Logging

このページでは、Storage Transfer Service ログの Cloud Logging を構成して表示する方法について説明します。

Storage Transfer Service の Cloud Logging は、すべてのエージェントレス転送と S3 互換ストレージからの転送でサポートされています。ファイル システム転送ログの詳細については、ファイル システム転送ログをご覧ください。

始める前に

始める前に、Cloud Logging にアクセスできることを確認してください。ログ閲覧者(roles/logging.viewer)の Identity and Access Management ロールを使用することをおすすめします。Logging のアクセスの詳細については、IAM によるアクセス制御をご覧ください。

以下では、IAM アクセス権を確認して付与する方法を説明します。

ログに記録可能なアクション

ログに記録可能なアクションは次のとおりです。

  • FIND: 検索(ディレクトリ内のファイルの一覧表示やバケット内のオブジェクトの一覧表示など)。S3 互換ストレージからの転送ではサポートされていません。
  • COPY: Cloud Storage へのファイルまたはオブジェクトのコピー。
  • DELETE: ソースまたは宛先のファイルまたはオブジェクトの削除。

アクションごとに、成功、失敗、またはその両方の状態を記録するように選択できます。

ロギングを有効にする

ロギングを有効にするには、ロギングの対象となるアクションと状態を指定します。

gcloud CLI

gcloud transfer jobs create を使用して転送ジョブを作成する際に、次のフラグを使用してロギングを有効にします。

gcloud transfer jobs create SOURCE DESTINATION \
  --log-actions=copy,delete,find \
  --log-action-states=succeeded,failed

それぞれのフラグに少なくとも 1 つの値を指定する必要があります。

REST

ロギング構成を作成するには、transferJobs.create を使用して LoggingConfig を指定します。

{
  "name":"transferJobs/myFirstTransfer",
  "status": "ENABLED",
  "projectId": "test-id-001",
  "loggingConfig": {
     "logActions": ["FIND", "DELETE", "COPY"],
     "logActionStates": ["SUCCEEDED", "FAILED"],
  },
  "transferSpec": {
      "awsS3DataSource": {
          "bucketName": "AWS_SOURCE_NAME",
          "awsAccessKey": {
              "accessKeyId": "AWS_ACCESS_KEY_ID",
              "secretAccessKey": "AWS_SECRET_ACCESS_KEY"
          }
      },
      "gcsDataSink": {
           "bucketName": "destination_bucket"
           "path": "foo/bar/"
      },
   }
}

loggingConfig を編集して、ロギングする特定の logActionslogActionStates を指定します。たとえば、コピーと検索のアクションが失敗した場合にロギングするには、loggingConfig を次のように指定します。

"loggingConfig": {
  "logActions": ["COPY", "FIND"],
  "logActionStates": ["FAILED"],
}

ロギング構成を更新する

gcloud CLI

既存のジョブのロギング構成を更新するには、gcloud transfer jobs update コマンドを使用して目的のフラグを指定します。

gcloud transfer jobs update NAME \
  --log-actions=copy,delete,find \
  --log-action-states=succeeded,failed

このジョブのロギングを無効にするには、--clear-log-config を指定します。

gcloud transfer jobs update NAME --clear-log-config

REST

既存の転送ジョブのロギング構成を更新するには、transferJobs.patch を使用して LoggingConfig を指定します。

{
  "projectId: "test-id-001",
  "transferJob": {
    "loggingConfig": {
       "logActions": ["FIND", "DELETE", "COPY"],
       "logActionStates": ["SUCCEEDED", "FAILED"],
    },
  },
  "updateTransferJobFieldMask": "loggingConfig"
}

updateTransferJobFieldMask は、このリクエストで更新されるフィールドを指定するもので、必須です。

このジョブのロギングを無効にするには、logActionslogActionStates に空のリストを指定して loggingConfig を送信します。

{
  "projectId: "test-id-001",
  "transferJob": {
    "loggingConfig": {
       "logActions": [],
       "logActionStates": [],
    },
  },
  "updateTransferJobFieldMask": "loggingConfig"
}

ログを表示する

転送ログを表示する方法は次のとおりです。

Google Cloud コンソール

  1. Google Cloud のナビゲーション メニュー に移動し、[Logging] > [ログ エクスプローラ] の順に選択します。<br\></br\>

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

  2. Google Cloud プロジェクトを選択します。

  3. [アップグレード] メニューで、[以前のログビューア] から [ログ エクスプローラ] に切り替えます。

  4. ログをフィルタリングして Storage Transfer Service のエントリのみを表示するには、クエリ フィールドに「storage_transfer_job」と入力して [クエリを実行] をクリックします。

  5. [クエリ結果] ペインで [日時を編集する] をクリックし、結果を返す期間を変更します。

ログ エクスプローラの使用方法については、ログ エクスプローラの使用をご覧ください。

gcloud CLI

gcloud CLI を使用して Storage Transfer Service ログを検索するには、gcloud logging read コマンドを使用します。

結果を Storage Transfer Service のログに限定するフィルタを指定します。

gcloud logging read "resource.type=storage_transfer_job"

Cloud Logging API

entries.list Cloud Logging API メソッドを使用します。

Storage Transfer Service 関連のエントリのみが含まれるように結果をフィルタするには、filter フィールドを使用します。JSON リクエスト オブジェクトのサンプルは次のとおりです。

{
"resourceNames":
  [
    "projects/my-project-name"
  ],
  "orderBy": "timestamp desc",
  "filter": "resource.type=\"storage_transfer_job\""
}

転送ログの形式

次のセクションに、Storage Transfer Service ログのフィールドを示します。

Storage Transfer Service 固有のフィールドはすべて、jsonPayload フィールドに格納されます。

FIND アクション

jsonPayload: {
  @type: "type.googleapis.com/google.storagetransfer.logging.TransferActivityLog"
  action: "FIND"
  completeTime: "2021-12-16T18:58:49.344509695Z"
  destinationContainer: {
    gcsBucket: {
      bucket: "my-bucket-2"
    }
    type: "GCS"
  }
  operation: "transferOperations/transferJobs-7876027868280507149--3019866490856027148"
  sourceContainer: {
    gcsBucket: {
      bucket: "my-bucket-1"
    }
    type: "GCS"
  }
  status: {
    statusCode: "OK"
  }
}

COPY および DELETE アクション

jsonPayload: {
  @type: "type.googleapis.com/google.storagetransfer.logging.TransferActivityLog"
  action: "COPY"
  completeTime: "2021-12-16T18:59:00.510509049Z"
  destinationObject: {
    gcsObject: {
      bucket: "my-bucket-2"
      objectKey: "README.md"
    }
    type: "GCS"
  }
  operation: "transferOperations/transferJobs-7876027868280507149--3019866490856027148"
  sourceObject: {
    gcsObject: {
      bucket: "my-bucket-1"
      lastModifiedTime: "2021-12-07T16:41:09.456Z"
      md5: "WgnCOIdfCXNTUDpQJSKb2w=="
      objectKey: "README.md"
    }
    type: "GCS"
  }
  status: {
    statusCode: "OK"
  }
}
ログフィールド 説明
@type 値は常に type.googleapis.com/google.storagetransfer.logging.TransferActivityLog です。
action

このタスクの操作を表します。次のいずれかです。

  • FIND: 検索(ディレクトリ内のファイルの一覧表示やバケット内のオブジェクトの一覧表示など)。S3 互換ストレージからの転送では記録されません。
  • COPY: Cloud Storage へのファイルまたはオブジェクトのコピー。
  • DELETE: ソースまたは宛先のファイルまたはオブジェクトの削除。
completeTime オペレーションの完了時間を表す ISO 8601 準拠のタイムスタンプ。
destinationContainer

FIND オペレーションでのみ存在します。

この転送の転送先コンテナ。ロギングは Cloud Storage バケットのみでサポートされています。次の 2 つのサブフィールドがあります。

  • gcsBucket.bucket: 転送先の Cloud Storage のバケット名。
  • type: 常に GCS
destinationObject

COPY および DELETE オペレーションの場合にのみ存在します。

Cloud Storage に書き込まれたときのオブジェクトに関する情報。次の 2 つのサブフィールドがあります。

  • gcsObject: bucketobjectKey の 2 つのサブフィールドがあります。これらを組み合わせて、オブジェクトの Cloud Storage パスを定義します。
  • type は常に GCS です。

例:


destinationObject: {
  gcsObject: {
    bucket: "my-bucket-2"
    objectKey: "README.md"
  }
  type: "GCS"
}
operation 完全修飾の transferOperations 名。
sourceContainer

FIND オペレーションでのみ存在します。

この転送のソースコンテナ。次の 2 つのサブフィールドがあります。

  • ソースの場所を指定するエントリ。このフィールドには、ソースの種類に応じて名前が付けられます。使用できるフィールドは次のとおりです。
    • awsS3Bucket.bucket: AWS S3 バケット名。
    • azureBlobContainer: account および container サブフィールドが含まれます。これらを組み合わせて、Microsoft Azure Blob ストレージ URI を定義します。
    • gcsBucket.bucket: Cloud Storage バケット名。
    • httpManifest.url: URL リストの URL。このリストには、HTTP(S) サーバーからダウンロードする一般公開ファイルを指定します。
  • type は、AWS_S3AZURE_BLOBGCS、または HTTP のいずれかです。

例:


sourceContainer: {
  gcsBucket: {
    bucket: "my-bucket-1"
  }
  type: "GCS"
}
sourceObject

COPY および DELETE オペレーションの場合にのみ存在します。

ソース オブジェクトに関する情報。次の 2 つのサブフィールドがあります。

  • ソース オブジェクトのホスト固有のエントリ。このフィールドにはソースタイプに応じて名前が付けられます。メタデータ用のサブフィールドが含まれます。使用できるフィールドは次のとおりです。
    • awsS3Object: AWS S3 オブジェクト。
    • azureBlob: Azure Blob Storage 内のファイル。
    • gcsObject: Cloud Storage オブジェクト。
    • httpFile: URL リストで指定されたファイル。
  • type は、AWS_S3AZURE_BLOBGCS、または HTTP のいずれかです。

例:


sourceObject: {
  gcsObject: {
    bucket: "my-bucket-1"
    lastModifiedTime: "2021-12-07T16:41:09.456Z"
    md5: "WgnCOIdfCXNTUDpQJSKb2w=="
    objectKey: "README.md"
  }
  type: "GCS"
}
status

アクションのステータス。status.statusCodeOK である場合、アクションは成功しています。それ以外の場合、アクションは失敗しています。status.errorType フィールドと status.errorMessage フィールドは、ステータスが OK でない場合にのみ入力されます。

また、最上位の resource フィールドには以下のフィールドが含まれます。

resource: {
  labels: {
    job_id: "transferJobs/7876027868280507149"
    project_id: "my-project-id"
  }
  type: "storage_transfer_job"
}
ログフィールド 説明
resource.labels.job_id このログが属する Storage Transfer Service のジョブ名。
resource.labels.project_id この転送の Google Cloud プロジェクト ID。