本页面介绍如何配置和查看适用于 Storage Transfer Service 日志的 Cloud Logging。
所有无代理转移作业以及从兼容 S3 的存储空间进行的转移作业均支持适用于 Storage Transfer Service 的 Cloud Logging。如需了解文件系统转移日志,请参阅文件系统转移日志。
准备工作
在开始之前,请验证您是否有权访问 Cloud Logging。我们建议使用 Logs Viewer (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
您必须为每个标志至少指定一个值。
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 |
描述此特定任务的操作。如下所示:
|
completeTime |
操作完成时符合 ISO 8601 标准的时间戳。 |
destinationContainer |
仅适用于 此转移作业的目标容器。只有 Cloud Storage 存储桶支持日志记录。包含两个子字段:
|
destinationObject |
仅适用于 关于对象写入 Cloud Storage 时的信息。包含两个子字段:
例如: destinationObject: { gcsObject: { bucket: "my-bucket-2" objectKey: "README.md" } type: "GCS" } |
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。 |