Menumpuk dan merutekan log secara retroaktif

Halaman ini menjelaskan cara menyalin entri log yang sudah tersimpan di bucket log Cloud Logging ke bucket Cloud Storage secara manual. Anda mungkin ingin menyalin entri log dari bucket log ke bucket Cloud Storage karena alasan berikut:

  • Seandainya Anda lupa merutekan entri log ke Cloud Storage sebelum penyimpanannya di Logging.
  • Untuk membagikan entri log dengan 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 log tersebut disalin.

Operasi penyalinan tidak menggantikan sink, yang secara otomatis mengirim semua entri log masuk ke tujuan penyimpanan yang didukung yang telah dipilih sebelumnya, termasuk bucket Cloud Storage. Gunakan sink jika Anda mengetahui 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 lainnya 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 diperlukan untuk menyalin entri log dari Logging, lalu menulis entri log ke Cloud Storage, minta administrator untuk memberi Anda peran IAM berikut di project Anda:

  • Untuk mendapatkan izin yang diperlukan guna melihat dan mengelola status operasi penyalinan, minta administrator untuk memberi Anda peran IAM Logs Configuration Writer (roles/logging.configWriter) di project Anda.

Salin entri log

Logging hanya menyalin entri log yang disimpan di bucket log saat operasi penyalinan dimulai. Entri log yang disimpan dalam bucket log setelah operasi penyalinan dimulai tidak 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 Anda 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.

  • Ganti PROJECT_ID dengan ID project Google Cloud Anda. Anda dapat menghilangkan flag ini saat konfigurasi gcloud CLI 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 > "2021-03-18T10:00:00.0Z"' \
--project=my-project

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

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

Lokasi operasi penyalinan sama dengan lokasi bucket log tempat Anda menyalin log.

Melihat dan mengelola operasi penyalinan

Anda dapat melihat dan mengelola operasi penyalinan menggunakan perintah gcloud logging operations, yang memungkinkan Anda membuat daftar, 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, baca Melihat detail bucket.

Membuat daftar operasi penyalinan

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

Untuk menampilkan daftar operasi penyalinan, jalankan perintah berikut:

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

Sebelum Anda menjalankan perintah sebelumnya, lakukan hal berikut:

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

Perintah tersebut 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 terkait operasi penyalinan, termasuk yang berikut ini:

  • 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.

Perlu diperhatikan 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. Contoh lainnya, jika flag --log-filter=FILTER tidak digunakan saat menjalankan perintah gcloud logging copy, metadata filter tidak akan berlaku untuk operasi.

Untuk mengambil informasi tentang operasi penyalinan, jalankan perintah berikut:

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

Sebelum Anda menjalankan perintah sebelumnya, lakukan hal berikut:

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

Perintah tersebut menampilkan metadata tentang operasi penyalinan. 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: `2023-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 pembatalan menyelesaikan pembatalan. Hal ini dapat menyebabkan beberapa entri log masih disalin 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 Anda menjalankan perintah sebelumnya, lakukan hal berikut:

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

Lihat log di Cloud Storage

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

Kuota dan batas

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

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

Harga

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

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

Untuk informasi selengkapnya, baca dokumen berikut: