Cloud Logging untuk Storage Transfer Service

Halaman ini menjelaskan cara mengonfigurasi dan melihat Cloud Logging untuk log Storage Transfer Service.

Cloud Logging untuk Storage Transfer Service didukung untuk semua transfer. Operasi FIND tidak dicatat untuk transfer berbasis agen.

Transfer sistem file juga dapat mengonfigurasi log transfer sistem file.

Sebelum memulai

Sebelum memulai, pastikan Anda memiliki akses ke Cloud Logging. Sebaiknya gunakan peran Identity and Access Management Logs Viewer (roles/logging.viewer). Untuk mengetahui informasi selengkapnya tentang akses Logging, lihat Kontrol akses dengan IAM.

Berikut cara memverifikasi dan memberikan akses IAM:

Tindakan yang dapat dicatat

Tindakan berikut dapat dicatat:

  • FIND: Menemukan tugas yang harus dilakukan, seperti mencantumkan file dalam direktori, mencantumkan objek dalam bucket, atau mencantumkan folder terkelola dalam bucket. Tidak didukung untuk transfer berbasis agen.
  • COPY: Menyalin file atau objek ke Cloud Storage.
  • DELETE: Menghapus file atau objek di sumber atau tujuan. Untuk transfer antar-dua sistem file, juga mencatat penghapusan file dari bucket Cloud Storage perantara.

Status yang dapat dicatat

Untuk setiap tindakan, Anda dapat memilih untuk mencatat satu atau beberapa status berikut:

  • SUCCEEDED: Tindakan berhasil.
  • FAILED: Tindakan gagal.
  • SKIPPED: Hanya berlaku untuk tindakan COPY, dan hanya didukung untuk tugas transfer berbasis agen. Harus ditetapkan menggunakan gcloud atau REST API. Status ini berarti bahwa penyalinan dilewati. Hal ini terjadi saat file sudah ada di sink, dan tugas transfer Anda dikonfigurasi untuk mengabaikan file yang ada.

Aktifkan logging

Untuk mengaktifkan logging, tentukan tindakan dan status yang akan dicatat.

gcloud CLI

Saat membuat tugas transfer dengan gcloud transfer jobs create, gunakan flag berikut untuk mengaktifkan logging:

gcloud transfer jobs create SOURCE DESTINATION \
  --log-actions=copy,delete,find \
  --log-action-states=succeeded,failed,skipped

Anda harus menentukan setidaknya satu nilai untuk setiap tanda.

REST

Untuk membuat konfigurasi logging, gunakan transferJobs.create dengan LoggingConfig:

{
  "name":"transferJobs/myFirstTransfer",
  "status": "ENABLED",
  "projectId": "test-id-001",
  "loggingConfig": {
     "logActions": ["FIND", "DELETE", "COPY"],
     "logActionStates": ["SUCCEEDED", "FAILED", "SKIPPED"], #SKIPPED is only supported for agent-based transfers
  },
  "transferSpec": {
      "awsS3DataSource": {
          "bucketName": "AWS_SOURCE_NAME",
          "awsAccessKey": {
              "accessKeyId": "AWS_ACCESS_KEY_ID",
              "secretAccessKey": "AWS_SECRET_ACCESS_KEY"
          }
      },
      "gcsDataSink": {
           "bucketName": "destination_bucket",
           "path": "foo/bar/"
      },
   }
}

Sesuaikan loggingConfig untuk menyertakan logActions dan logActionStates tertentu yang akan dicatat. Misalnya, untuk mencatat kapan tindakan salin dan temukan gagal, berikan loggingConfig berikut:

"loggingConfig": {
  "logActions": ["COPY", "FIND"],
  "logActionStates": ["FAILED"],
}

Memperbarui konfigurasi logging

gcloud CLI

Untuk memperbarui konfigurasi logging tugas yang ada, gunakan flag yang sesuai dengan perintah gcloud transfer jobs update:

gcloud transfer jobs update NAME \
  --log-actions=copy,delete,find \
  --log-action-states=succeeded,failed,skipped

Untuk menonaktifkan logging untuk tugas ini, tentukan --clear-log-config:

gcloud transfer jobs update NAME --clear-log-config

REST

Untuk memperbarui konfigurasi logging tugas transfer yang ada, gunakan transferJobs.patch dengan LoggingConfig:

{
  "projectId": "test-id-001",
  "transferJob": {
    "loggingConfig": {
       "logActions": ["FIND", "DELETE", "COPY"],
       "logActionStates": ["SUCCEEDED", "FAILED", "SKIPPED"], #SKIPPED is only supported for agent-based transfers
    },
  },
  "updateTransferJobFieldMask": "loggingConfig"
}

updateTransferJobFieldMask menentukan kolom yang sedang diperbarui dalam permintaan ini dan wajib diisi.

Untuk menonaktifkan logging untuk tugas ini, kirim loggingConfig dengan daftar kosong untuk logActions dan logActionStates:

{
  "projectId": "test-id-001",
  "transferJob": {
    "loggingConfig": {
       "logActions": [],
       "logActionStates": [],
    },
  },
  "updateTransferJobFieldMask": "loggingConfig"
}

Melihat log

Untuk melihat log transfer, lakukan hal berikut:

Konsol Google Cloud

  1. Buka menu navigasi Google Cloud , lalu pilih Logging > Logs Explorer :<br\></br\>

    Buka Logs Explorer

  2. Pilih project Google Cloud .

  3. Dari menu Upgrade, beralihlah dari Legacy Logs Viewer ke Logs Explorer.

  4. Untuk memfilter log Anda agar hanya menampilkan entri Storage Transfer Service, ketik storage_transfer_job di kolom kueri, lalu klik Jalankan kueri.

  5. Di panel Query results, klik Edit time untuk mengubah jangka waktu yang akan digunakan untuk menampilkan hasil.

Untuk mengetahui informasi selengkapnya tentang cara menggunakan Logs Explorer, lihat Menggunakan Logs Explorer.

gcloud CLI

Untuk menggunakan gcloud CLI guna menelusuri log Storage Transfer Service, gunakan perintah gcloud logging read.

Tentukan filter untuk membatasi hasil Anda ke log Storage Transfer Service.

gcloud logging read "resource.type=storage_transfer_job"

Cloud Logging API

Gunakan metode Cloud Logging API entries.list.

Untuk memfilter hasil Anda agar hanya menyertakan entri terkait Storage Transfer Service, gunakan kolom filter. Contoh objek permintaan JSON ada di bawah.

{
"resourceNames":
  [
    "projects/my-project-name"
  ],
  "orderBy": "timestamp desc",
  "filter": "resource.type=\"storage_transfer_job\""
}

Format log transfer

Bagian berikut menjelaskan kolom untuk log Storage Transfer Service.

Semua kolom khusus Storage Transfer Service terdapat dalam objek jsonPayload.

FIND tindakan

{
  "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"
    }
  }
}

Tindakan COPY dan 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"
    }
  }
}
Kolom log Deskripsi
@type Nilainya selalu type.googleapis.com/google.storagetransfer.logging.TransferActivityLog.
action

Menjelaskan tindakan tugas tertentu ini. Salah satu dari berikut ini:

  • FIND: Menemukan tugas yang harus dilakukan, seperti mencantumkan file dalam direktori atau mencantumkan objek dalam bucket. Tidak dilaporkan untuk transfer berbasis agen.
  • COPY: Menyalin file atau objek ke Cloud Storage.
  • DELETE: Menghapus file atau objek di bucket sumber, tujuan, atau perantara.
findAction

Menentukan apakah subjek tindakan penemuan adalah objek atau folder terkelola.

completeTime Stempel waktu yang sesuai dengan ISO 8601 saat operasi selesai.
destinationContainer

Hanya ada untuk operasi FIND. Operasi FIND tidak dicatat untuk transfer berbasis agen.

Penampung tujuan untuk transfer ini. Berisi dua sub-kolom:

  • gcsBucket.bucket: Nama bucket Cloud Storage tujuan.
  • type: Selalu GCS.
destinationObject

Hanya ada untuk operasi COPY dan DELETE.

Informasi tentang objek di tujuan. Berisi dua sub-kolom:

  • Salah satu dari gcsObject, gcsManagedFolder, atau posixFile, bergantung pada tujuan. Semua opsi berisi beberapa sub-kolom yang menentukan nama, lokasi, info tanggal/waktu, dan hash objek atau file.
  • type adalah salah satu dari GCS atau POSIX_FS.

Contoh:

"destinationObject": {
  "type": "POSIX_FS",
  "posixFile": {
    "crc32c": "0",
    "path": "/tmp/data/filename.txt",
    "lastModifiedTime": "2022-09-22T04:33:45Z"
  }
}
operation Nama transferOperations yang sepenuhnya memenuhi syarat.
sourceContainer

Hanya ada untuk operasi FIND. Operasi FIND tidak dicatat untuk transfer berbasis agen.

Container sumber untuk transfer ini. Berisi dua sub-kolom:

  • Entri yang menentukan lokasi sumber. Kolom diberi nama sesuai dengan jenis sumber. Kolom yang mungkin adalah sebagai berikut.
    • awsS3Bucket.bucket: Nama bucket AWS S3.
    • azureBlobContainer: Berisi sub-kolom account dan container, yang bersama-sama menentukan URI penyimpanan Blob Microsoft Azure.
    • gcsBucket.bucket: Nama bucket Cloud Storage.
    • httpManifest.url: URL daftar URL yang menentukan file yang tersedia secara publik untuk didownload dari server HTTP(S).
  • type adalah salah satu dari AWS_S3, AZURE_BLOB, GCS, atau HTTP.

Contoh:

"sourceContainer": {
  "gcsBucket": {
    "bucket": "my-bucket-1"
  }
  type: "GCS"
}
sourceObject

Hanya ada untuk operasi COPY dan DELETE.

Informasi tentang objek sumber. Berisi dua sub-kolom:

  • Entri khusus untuk host objek sumber. Kolom diberi nama sesuai dengan jenis sumber dan berisi sub-kolom untuk metadata. Kolom yang mungkin adalah sebagai berikut.
    • awsS3Object: Objek AWS S3.
    • azureBlob: File di Azure Blob Storage.
    • gcsObject: Objek Cloud Storage.
    • gcsManagedFolder: Folder terkelola Cloud Storage.
    • httpFile: File yang ditentukan oleh daftar URL.
    • posixFile: File di sistem file POSIX.
  • type adalah salah satu dari AWS_S3, AZURE_BLOB, GCS, HTTP, atau POSIX_FS.

Contoh:

"sourceObject": {
  "gcsObject": {
    "bucket": "my-bucket-1"
    "lastModifiedTime": "2021-12-07T16:41:09.456Z"
    "md5": "WgnCOIdfCXNTUDpQJSKb2w=="
    "objectKey": "README.md"
  }
  type: "GCS"
}
status

Status tindakan. Jika status.statusCode adalah OK, tindakan berhasil. Jika tidak, tindakan akan gagal. Kolom status.errorType dan status.errorMessage hanya diisi jika statusnya bukan OK.

Selain itu, kolom resource tingkat teratas berisi kolom berikut.

"resource": {
  "labels": {
    "job_id": "transferJobs/7876027868280507149"
    "project_id": "my-project-id"
  }
  "type": "storage_transfer_job"
}
Kolom log Deskripsi
resource.labels.job_id Nama tugas Storage Transfer Service yang terkait dengan log ini.
resource.labels.project_id Project ID Google Cloud untuk transfer ini.