本页面介绍如何配置和查看适用于 Storage Transfer Service 日志的 Cloud Logging。
所有转移均支持适用于 Storage Transfer Service 的 Cloud Logging。系统不会记录基于代理的转移的 FIND
操作。
文件系统转移还可以配置文件系统转移日志。
准备工作
在开始之前,请验证您是否有权访问 Cloud Logging。我们建议使用 Logs Viewer (roles/logging.viewer) Identity and Access Management 角色。如需详细了解 Logging 访问权限,请参阅使用 IAM 进行访问权限控制。
下文介绍了如何验证和授予 IAM 访问权限:
可记录的操作
可以记录以下操作:
FIND
:查找待办事项,例如列出目录中的文件、列出存储桶中的对象或列出存储桶中的托管文件夹。不支持基于代理的转移。COPY
:将文件或对象复制到 Cloud Storage。DELETE
:删除来源或目标位置的文件或对象。对于在两个文件系统之间进行的转移,还会记录从中间 Cloud Storage 存储桶中删除文件的操作。
对于每项操作,您可以选择记录成功和/或失败状态。
启用日志记录
如需启用日志记录,请指定要记录的操作和状态。
gcloud CLI
使用 gcloud transfer jobs create
创建转移作业时,请使用以下标志启用日志记录:
gcloud transfer jobs create SOURCE DESTINATION \
--log-actions=copy,delete,find \
--log-action-states=succeeded,failed
您必须为每个标志至少指定一个值。
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
如需更新现有转移作业的日志记录配置,请使用带有 LoggingConfig
的 transferJobs.patch
:
{
"projectId": "test-id-001",
"transferJob": {
"loggingConfig": {
"logActions": ["FIND", "DELETE", "COPY"],
"logActionStates": ["SUCCEEDED", "FAILED"],
},
},
"updateTransferJobFieldMask": "loggingConfig"
}
updateTransferJobFieldMask
指定此请求中要更新的字段,并且此字段为必填字段。
如需停用此作业的日志记录,请发送 loggingConfig
以及 logActions
和 logActionStates
的空列表:
{
"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 |
仅适用于 此转移作业的目标容器。包含两个子字段:
|
destinationObject |
仅适用于 与目标位置的对象相关的信息。包含两个子字段:
例如: "destinationObject": { "type": "POSIX_FS", "posixFile": { "crc32c": "0", "path": "/tmp/data/filename.txt", "lastModifiedTime": "2022-09-22T04:33:45Z" } } |
operation |
完全限定的 transferOperations 名称。 |
sourceContainer |
仅适用于 此转移的来源容器。包含两个子字段:
例如: "sourceContainer": { "gcsBucket": { "bucket": "my-bucket-1" } type: "GCS" } |
sourceObject |
仅适用于 与源对象相关的信息。包含两个子字段:
例如: "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。 |