このページでは、Storage Transfer Service ログの Cloud Logging を構成して表示する方法について説明します。
Storage Transfer Service の Cloud Logging は、すべての転送でサポートされています。エージェント ベースの転送では、FIND
オペレーションはログに記録されません。
ファイル システム転送では、ファイル システム転送ログを構成することもできます。
始める前に
始める前に、Cloud Logging にアクセスできることを確認してください。ログ閲覧者(roles/logging.viewer)の Identity and Access Management ロールを使用することをおすすめします。Logging のアクセスの詳細については、IAM によるアクセス制御をご覧ください。
以下では、IAM アクセス権を確認して付与する方法を説明します。
- 現在のアクセス権を表示して、各プリンシパルのアクセス権を確認します。
- プロジェクトの関連するプリンシパルにロールを付与します。
ログに記録可能なアクション
ログに記録可能なアクションは次のとおりです。
FIND
: 検索(ディレクトリ内のファイルの一覧表示やバケット内のオブジェクトの一覧表示など)。エージェント ベースの転送ではサポートされていません。COPY
: Cloud Storage へのファイルまたはオブジェクトのコピー。DELETE
: ソースまたは宛先のファイルまたはオブジェクトの削除。 2 つのファイル システム間の転送の場合は、中間の Cloud Storage バケットからのファイル削除もログに記録します。
アクションごとに、成功、失敗、またはその両方の状態を記録するように選択できます。
ロギングを有効にする
ロギングを有効にするには、ロギングの対象となるアクションと状態を指定します。
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
を編集して、ロギングする特定の logActions
と logActionStates
を指定します。たとえば、コピーと検索のアクションが失敗した場合にロギングするには、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
は、このリクエストで更新されるフィールドを指定するもので、必須です。
このジョブのロギングを無効にするには、logActions
と logActionStates
に空のリストを指定して loggingConfig
を送信します。
{
"projectId": "test-id-001",
"transferJob": {
"loggingConfig": {
"logActions": [],
"logActionStates": [],
},
},
"updateTransferJobFieldMask": "loggingConfig"
}
ログを表示する
転送ログを表示する方法は次のとおりです。
Google Cloud コンソール
Google Cloud のナビゲーション メニュー menu に移動し、[Logging] > [ログ エクスプローラ] の順に選択します。<br\></br\>
Google Cloud プロジェクトを選択します。
[アップグレード] メニューで、[以前のログビューア] から [ログ エクスプローラ] に切り替えます。
ログをフィルタリングして Storage Transfer Service のエントリのみを表示するには、クエリ フィールドに「
storage_transfer_job
」と入力して [クエリを実行] をクリックします。[クエリ結果] ペインで [日時を編集する] をクリックし、結果を返す期間を変更します。
ログ エクスプローラの使用方法については、ログ エクスプローラの使用をご覧ください。
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 |
このタスクの操作を表します。次のいずれかです。
|
completeTime |
オペレーションの完了時間を表す ISO 8601 準拠のタイムスタンプ。 |
destinationContainer |
この転送の転送先コンテナ。次の 2 つのサブフィールドがあります。
|
destinationObject |
転送先にあるオブジェクトに関する情報。次の 2 つのサブフィールドがあります。
次に例を示します。 "destinationObject": { "type": "POSIX_FS", "posixFile": { "crc32c": "0", "path": "/tmp/data/filename.txt", "lastModifiedTime": "2022-09-22T04:33:45Z" } } |
operation |
完全修飾の transferOperations 名。 |
sourceContainer |
この転送のソースコンテナ。次の 2 つのサブフィールドがあります。
例: "sourceContainer": { "gcsBucket": { "bucket": "my-bucket-1" } type: "GCS" } |
sourceObject |
ソース オブジェクトに関する情報。次の 2 つのサブフィールドがあります。
次に例を示します。 "sourceObject": { "gcsObject": { "bucket": "my-bucket-1" "lastModifiedTime": "2021-12-07T16:41:09.456Z" "md5": "WgnCOIdfCXNTUDpQJSKb2w==" "objectKey": "README.md" } type: "GCS" } |
status |
アクションのステータス。 |
また、最上位の 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。 |