このページでは、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
ロギング構成を作成するには、LoggingConfig
で transferJobs.create
を使用します。
{
"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 |
このタスクの操作を表します。次のいずれかです。
|
findAction |
検索アクションの対象がオブジェクトかマネージド フォルダかを指定します。 |
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。 |