Menumpuk dan merutekan log secara retroaktif

Halaman ini menjelaskan cara menyalin entri log secara manual yang sudah disimpan di bucket log Cloud Logging ke bucket Cloud Storage. Operasi salin tidak mengharuskan bucket log dan bucket Cloud Storage berada di project yang Google Cloud 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 menyimpannya 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 log 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. Anda tidak dapat menggunakan sink untuk merutekan log secara surut. Gunakan sink jika Anda tahu sebelumnya 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 mulai menyalin log, lakukan hal berikut:

  • Pastikan Anda menggunakan gcloud CLI versi terbaru . Untuk mengetahui petunjuk tentang cara menginstal atau mengupdate gcloud CLI, lihat Mengelola komponen Google Cloud CLI.
  • Untuk mendapatkan izin yang diperlukan untuk menyalin entri log, minta administrator untuk memberi Anda peran IAM berikut pada project yang berisi bucket log yang Anda salin:

  • Untuk mendapatkan izin yang diperlukan untuk 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 salin dimulai. Entri log yang disimpan di bucket log setelah operasi salin dimulai tidak akan disalin ke Cloud Storage.

Untuk menyalin entri log ke Cloud Storage, Anda harus 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 akan disalin.

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

  • Ganti PROJECT_ID dengan Google Cloud project IDAnda. Anda dapat menghilangkan flag ini jika konfigurasi gcloud CLI aktif ditetapkan ke project yang benar Google Cloud .

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 salin dan lokasi bucket log:

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

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

Melihat dan mengelola operasi salin

Anda dapat melihat dan mengelola operasi salin menggunakan gcloud logging operations perintah, 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 salin

Anda dapat mencantumkan operasi salin terbaru, termasuk operasi yang dijadwalkan, berjalan, selesai, gagal, dan dibatalkan. Operasi salin terbaru muncul dalam hasil hingga 30 hari setelah waktu berakhir.

Untuk mencantumkan operasi salin, 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 yang Anda salin dari.
  • Ganti PROJECT_ID dengan Google Cloud project IDAnda.

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

projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID

Melihat status operasi salin

Anda dapat mengambil status dan metadata lainnya tentang operasi salin, 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: Perkiraan progres operasi (0-100%).
  • destination: Nama bucket Cloud Storage tempat operasi menyalin log.
  • filter: Filter yang menentukan entri log mana 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 salin. Misalnya, jika operasi salin masih berjalan, metadata endtime tidak akan berlaku untuk operasi tersebut. Sebagai contoh lain, jika flag --log-filter=FILTER tidak digunakan saat menjalankan perintah gcloud logging copy, metadata filter tidak akan berlaku untuk operasi tersebut.

Untuk mengambil informasi tentang operasi salin, 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 yang Anda salin dari.
  • Ganti PROJECT_ID dengan Google Cloud project IDAnda.

Perintah ini menampilkan metadata tentang operasi salin. 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 salin

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

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

Untuk membatalkan operasi salin, 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 yang Anda salin dari.
  • Ganti PROJECT_ID dengan Google Cloud project IDAnda.

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 salin memerlukan waktu minimal satu jam untuk diselesaikan, berapa pun jumlah data yang disalin.

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

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

Harga

Untuk mengetahui informasi harga, lihat halaman Harga Google Cloud Observability. Jika Anda merutekan data log ke layanan Google Cloud lain, lihat dokumen berikut: