このページでは、Storage Transfer Service ログの Cloud Logging を構成して表示する方法について説明します。
Storage Transfer Service の Cloud Logging は、すべてのエージェントレス転送と S3 互換ストレージからの転送でサポートされています。ファイル システム転送ログの詳細については、ファイル システム転送ログをご覧ください。
始める前に
始める前に、Cloud Logging にアクセスできることを確認してください。ログ閲覧者(roles/logging.viewer)の Identity and Access Management ロールを使用することをおすすめします。Logging のアクセスの詳細については、IAM によるアクセス制御をご覧ください。
以下では、IAM アクセス権を確認して付与する方法を説明します。
- 現在のアクセス権を表示して、各プリンシパルのアクセス権を確認します。
- プロジェクトの関連するプリンシパルにロールを付与します。
ロギングを有効にする
ロギングを有効にするには、ロギングの対象となるアクションと状態を指定します。
- ロギングできるアクションは、検索、削除、コピーです。
各アクションでロギングできる状態は、成功と失敗です。
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 |
この転送の転送先コンテナ。ロギングは Cloud Storage バケットのみでサポートされています。次の 2 つのサブフィールドがあります。
|
destinationObject |
Cloud Storage に書き込まれたときのオブジェクトに関する情報。次の 2 つのサブフィールドがあります。
例: destinationObject: { gcsObject: { bucket: "my-bucket-2" objectKey: "README.md" } type: "GCS" } |
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。 |