Menumpuk dan merutekan log secara retroaktif

Halaman ini menjelaskan cara menyalin entri log yang sudah disimpan di bucket log Cloud Logging ke bucket Cloud Storage secara manual. Operasi salinan tidak mengharuskan bucket log dan bucket Cloud Storage berada dalam project Google Cloud yang sama.

Anda mungkin ingin menyalin entri log dari bucket log ke bucket Cloud Storage karena alasan berikut:

  • Jika Anda lupa merutekan entri log ke Cloud Storage sebelum penyimpanannya di Logging.
  • Untuk membagikan entri log kepada auditor di luar Logging.
  • Untuk menganalisis entri log dengan skrip di Cloud Storage.

Saat Anda menyalin entri log ke Cloud Storage, entri log juga tetap berada di bucket log tempat entri tersebut disalin.

Operasi salin tidak menggantikan sink, yang secara otomatis mengirim semua entri log masuk yang cocok dengan filter penyertaan dan pengecualian ke tujuan penyimpanan yang didukung dan telah dipilih sebelumnya, termasuk bucket Cloud Storage. Gunakan sink jika Anda tahu bahwa Anda ingin menyimpan entri log di bucket Cloud Storage.

Untuk menyalin log, lalu mengelola dan memantau operasi, Anda harus menggunakan Google Cloud CLI.

Batasan

Batasan berikut berlaku saat menyalin entri log:

  • Anda hanya dapat menyalin log ke bucket Cloud Storage; tujuan lain tidak tersedia.

  • Anda tidak dapat menyalin log dari bucket log yang telah mengonfigurasi CMEK.

Sebelum memulai

Sebelum Anda mulai menyalin log, lakukan hal berikut:

  • Untuk mendapatkan izin yang Anda perlukan untuk menyalin entri log, minta administrator untuk memberi Anda peran IAM berikut pada project yang berisi bucket log tempat Anda menyalin:

  • Untuk mendapatkan izin yang diperlukan guna menulis entri log ke Cloud Storage, minta administrator untuk memberi Anda peran IAM Storage Object Creator (roles/storage.objectCreator) pada project yang berisi bucket Cloud Storage.

Menyalin entri log

Logging hanya menyalin entri log yang disimpan di bucket log saat operasi penyalinan dimulai. Entri log yang disimpan di bucket log setelah operasi penyalinan dimulai tidak akan disalin ke Cloud Storage.

Untuk menyalin entri log ke Cloud Storage, Anda perlu mengetahui informasi berikut:

Untuk menyalin entri log, jalankan perintah gcloud logging copy:

gcloud logging copy BUCKET_ID storage.googleapis.com/CLOUD_STORAGE_BUCKET_NAME \
--location=LOCATION --log-filter='FILTER' --project=PROJECT_ID

Sebelum menjalankan perintah sebelumnya, lakukan hal berikut:

  • Ganti BUCKET_ID dengan nama bucket log Anda.
  • Ganti CLOUD_STORAGE_BUCKET_NAME dengan nama bucket Cloud Storage Anda.
  • Ganti LOCATION dengan lokasi bucket log.
  • (Opsional): Ganti FILTER dengan filter yang menentukan log mana yang disalin.

    Jika Anda menghapus tanda --log-filter, semua entri log di bucket log akan disalin ke bucket Cloud Storage.

  • Ganti PROJECT_ID dengan ID project Google Cloud Anda. Anda dapat menghilangkan tanda ini saat konfigurasi gcloud CLI yang aktif ditetapkan ke project Google Cloud yang benar.

Contoh perintah:

gcloud logging copy my-log-bucket storage.googleapis.com/my-gcs-bucket \
--location=global --log-filter='timestamp > "2024-07-18T10:00:00.0Z"' \
--project=my-project

Perintah ini membuat operasi yang berjalan lama untuk dijalankan di latar belakang dan menampilkan nama operasi salinan serta lokasi bucket log:

name: projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID

Lokasi operasi penyalinan sama dengan lokasi bucket log yang Anda salin.

Melihat dan mengelola operasi salin

Anda dapat melihat dan mengelola operasi penyalinan menggunakan perintah gcloud logging operations, yang memungkinkan Anda mencantumkan, melihat, dan membatalkan operasi.

Perintah berikut mengharuskan Anda menentukan lokasi operasi. Gunakan lokasi bucket log Anda. Untuk mengetahui informasi tentang cara menemukan lokasi bucket log, lihat Melihat detail bucket.

Mencantumkan operasi penyalinan

Anda dapat mencantumkan operasi penyalinan terbaru, termasuk operasi terjadwal, berjalan, selesai, gagal, dan dibatalkan. Operasi salinan terbaru akan muncul dalam hasil hingga 30 hari setelah waktu berakhir.

Untuk mencantumkan operasi salinan, jalankan perintah berikut:

gcloud logging operations list --location=LOCATION \
--operation-filter=request_type=CopyLogEntries \
--project=PROJECT_ID

Sebelum menjalankan perintah sebelumnya, lakukan hal berikut:

  • Ganti LOCATION dengan lokasi bucket log tempat Anda menyalin.
  • Ganti PROJECT_ID dengan ID project Google Cloud Anda.

Perintah ini menampilkan informasi tentang operasi yang berjalan lama, termasuk ID operasi:

projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID

Melihat status operasi penyalinan

Anda dapat mengambil status dan metadata lainnya tentang operasi penyalinan, termasuk hal berikut:

  • startTime: Stempel waktu yang menunjukkan pembuatan operasi.
  • endTime: Stempel waktu yang menunjukkan penyelesaian operasi.
  • state: Status operasi (dijadwalkan, berjalan, dibatalkan, gagal, atau berhasil).
  • cancellation: Apakah pengguna telah meminta untuk membatalkan operasi.
  • progress: Estimasi progres operasi (0-100%).
  • destination: Nama bucket Cloud Storage tempat operasi menyalin log.
  • filter: Filter yang menentukan entri log yang akan disalin.
  • name: Nama bucket log tempat operasi menyalin log.
  • logEntriesCopiedCount: Jumlah entri log yang berhasil disalin ke bucket Cloud Storage oleh operasi.

Perhatikan bahwa tidak semua kolom metadata yang tercantum berlaku untuk setiap operasi penyalinan. Misalnya, jika operasi penyalinan masih berjalan, metadata endtime tidak akan berlaku untuk operasi tersebut. Sebagai contoh lain, jika tanda --log-filter=FILTER tidak digunakan saat menjalankan perintah gcloud logging copy, metadata filter tidak akan berlaku untuk operasi.

Untuk mengambil informasi tentang operasi salinan, jalankan perintah berikut:

gcloud logging operations describe OPERATION_ID \
--location=LOCATION --project=PROJECT_ID

Sebelum menjalankan perintah sebelumnya, lakukan hal berikut:

  • Ganti OPERATION_ID dengan ID operasi.
  • Ganti LOCATION dengan lokasi bucket log tempat Anda menyalin.
  • Ganti PROJECT_ID dengan ID project Google Cloud Anda.

Perintah ini menampilkan metadata tentang operasi salinan. Misalnya, berikut adalah output untuk operasi yang sedang berlangsung:

done: false
metadata:
  `@type`: type.googleapis.com/google.logging.v2.CopyLogEntriesMetadata
  progress: 75
  destination: storage.googleapis.com/my-storage-bucket-1
  source: projects/my-test-project/locations/us-central1/buckets/my-logging-bucket-2
  verb: copy
  startTime: `2024-05-23T10:52:40.039751Z`
  state: OPERATION_STATE_RUNNING
name: projects/my-test-project/locations/us-central1/buckets/my-logging-bucket-2
   </pre>

Membatalkan operasi penyalinan

Anda dapat membatalkan operasi penyalinan yang sedang berlangsung. Jika Anda membatalkan operasi penyalinan, semua entri log yang disalin sebelum operasi dibatalkan akan tetap berada di bucket Cloud Storage.

Setelah membatalkan operasi penyalinan, Logging akan menyelesaikan semua proses yang sedang berlangsung sebelum menyelesaikan pembatalan. Hal ini dapat menyebabkan beberapa entri log masih dikopi ke Cloud Storage setelah Anda membatalkan operasi.

Untuk membatalkan operasi penyalinan, jalankan perintah berikut:

gcloud logging operations cancel OPERATION_ID \
--location=LOCATION --project=PROJECT_ID

Sebelum menjalankan perintah sebelumnya, lakukan hal berikut:

  • Ganti OPERATION_ID dengan ID operasi.
  • Ganti LOCATION dengan lokasi bucket log tempat Anda menyalin.
  • Ganti PROJECT_ID dengan ID project Google Cloud Anda.

Melihat log di Cloud Storage

Untuk melihat dan memahami log yang Anda salin ke Cloud Storage, lihat Melihat log yang dirutekan ke Cloud Storage.

Kuota dan batas

Semua operasi salinan memerlukan waktu minimal satu jam untuk diselesaikan, berapa pun jumlah data yang disalin.

Untuk menyalin volume besar—misalnya, petabyte—bagi penyalinan di beberapa operasi salinan menggunakan kolom timestamp di tanda --filter.

Perintah salin tidak dapat menyalin entri log yang masa retensinya telah berakhir.

Harga

Cloud Logging tidak mengenakan biaya untuk merutekan log ke tujuan yang didukung; tetapi, tujuan tersebut mungkin mengenakan biaya. Dengan pengecualian bucket log _Required, Cloud Logging mengenakan biaya untuk melakukan streaming log ke bucket log dan untuk penyimpanan yang lebih lama dari periode retensi data default bucket log.

Cloud Logging tidak mengenakan biaya untuk menyalin log, menentukan cakupan log, atau untuk kueri yang dikeluarkan melalui halaman Logs Explorer atau Log Analytics.

Untuk informasi selengkapnya, baca dokumen berikut: