이 페이지에서는 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
: 소스 또는 대상에서 파일 또는 객체를 삭제하는 작업입니다. 두 파일 시스템 간 전송의 경우 중간 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
로깅 구성을 만들려면 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/"
},
}
}
로깅할 특정 logActions
및 logActionStates
가 포함되도록 loggingConfig
를 조정합니다. 예를 들어 복사 및 찾기 작업이 실패할 때 로깅하려면 다음 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
는 이 요청에서 업데이트되고 필수인 필드를 지정합니다.
이 작업의 로깅을 중지하려면 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입니다. |