이 페이지에서는 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
플래그마다 값을 최소 하나 이상 지정해야 합니다.
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 Console
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입니다. |