Anda dapat menyalin entri log yang disimpan dari bucket log Cloud Logging ke bucket Cloud Storage untuk mendukung audit keamanan, melakukan analisis data kustom, atau mengarsipkan entri log historis. Operasi penyalinan bersifat non-destruktif; entri log tetap berada di bucket log sumber, dan Anda dapat menyalin di berbagai project Google Cloud .
Operasi penyalinan merutekan entri log yang ada secara retroaktif menggunakan gcloud CLI. Sebaliknya, sink merutekan entri log yang cocok secara otomatis secara real time saat entri tersebut tiba, tetapi tidak dapat merutekan entri log yang disimpan sebelum sink dibuat.
Batasan
Batasan berikut berlaku saat menyalin entri log:
Anda hanya dapat menyalin entri log ke bucket Cloud Storage yang tidak dikonfigurasi untuk Rapid storage; tujuan lain tidak tersedia.
Anda tidak dapat menyalin entri log dari bucket log yang telah mengonfigurasi kunci enkripsi yang dikelola pelanggan (CMEK).
Sebelum memulai
Sebelum mulai menyalin entri 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 menjalankan operasi penyalinan:
Logging Admin (
roles/logging.admin) -
Untuk melihat dan mengelola status operasi penyalinan:
Logs Configuration Writer (
roles/logging.configWriter)
-
Untuk menjalankan operasi penyalinan:
Logging Admin (
-
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) di 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:
- ID dan lokasi bucket log yang Anda salin.
Untuk mengambil ID bucket log dan lokasinya, gunakan
perintah gcloud CLI
gcloud logging buckets list. - Nama bucket Cloud Storage tempat Anda menyalin. Untuk mengetahui informasi tentang cara mengambil nama bucket Cloud Storage, lihat Mendapatkan informasi bucket Cloud Storage.
- Filter untuk entri log yang ingin Anda salin.
Untuk menyalin entri log, jalankan perintah gcloud logging copy:
gcloud logging copy LOG_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 LOG_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 entri log yang disalin.
Jika Anda menghilangkan flag
--log-filter, semua entri log di bucket log akan disalin ke bucket Cloud Storage.Ganti PROJECT_ID dengan project ID Google Cloud Anda. Anda dapat menghilangkan flag ini jika 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 penyalinan serta lokasi bucket log:
name: projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
Lokasi operasi penyalinan sama dengan lokasi bucket log tempat Anda menyalin.
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, lihat Melihat detail bucket.
Mencantumkan operasi penyalinan
Anda dapat mencantumkan operasi penyalinan terbaru, termasuk operasi yang dijadwalkan, berjalan, selesai, gagal, dan dibatalkan. Operasi penyalinan terbaru akan muncul dalam hasil selama maksimal 30 hari setelah waktu berakhir.
Untuk mencantumkan operasi penyalinan, 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.
- Ganti PROJECT_ID dengan project ID 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 entri log.filter: Filter yang menentukan entri log yang akan disalin.name: Nama bucket log tempat operasi menyalin entri 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 berlaku untuk operasi tersebut. Sebagai contoh lain, jika flag --log-filter=FILTER tidak digunakan saat menjalankan perintah gcloud logging copy, metadata filter tidak berlaku untuk operasi tersebut.
Untuk mengambil informasi tentang operasi penyalinan, 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.
- Ganti PROJECT_ID dengan project ID Google Cloud Anda.
Perintah ini 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/CLOUD_STORAGE_BUCKET_NAME
source: projects/PROJECT_ID/locations/LOCATION/buckets/LOG_BUCKET_ID
verb: copy
startTime: `2024-05-23T10:52:40.039751Z`
state: OPERATION_STATE_RUNNING
name: projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
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 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 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 yang Anda salin.
- Ganti PROJECT_ID dengan project ID Google Cloud Anda.
Melihat entri log di Cloud Storage
Untuk mengetahui informasi tentang cara melihat dan memahami entri log yang Anda salin ke Cloud Storage, lihat Melihat entri 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
ke dalam beberapa operasi penyalinan menggunakan kolom timestamp dalam
flag --log-filter.
Perintah salin tidak dapat menyalin entri log yang retensinya telah berakhir.
Pemecahan masalah
Bagian ini menjelaskan cara memecahkan masalah error saat menyalin entri log.
Gagal menulis data ekspor
Saat Anda melihat status operasi penyalinan menggunakan
gcloud logging operations describe,
operasi tersebut mungkin menampilkan error berikut:
done: true
error:
code: 7
message: Failed to write export data to the destination Cloud Storage bucket.
Error ini terjadi saat Logging tidak dapat menulis atau menyelesaikan file log di bucket Cloud Storage tujuan. Penulisan file yang diekspor selama operasi dapat gagal karena beberapa alasan:
- Perimeter layanan Kontrol Layanan VPC memblokir permintaan ke bucket Cloud Storage tujuan.
- Izin IAM akun yang memulai operasi penyalinan diubah atau dicabut saat operasi sedang berjalan.
- Operasi penyalinan berjalan cukup lama hingga kredensial otorisasi habis masa berlakunya.
- Bucket Cloud Storage tujuan menggunakan CMEK, dan kunci Cloud Key Management Service dinonaktifkan atau agen layanan Cloud Storage tidak memiliki izin enkripsi.
- Upaya penulisan ulang mencoba menimpa file yang sudah ada yang tidak dapat diganti. Misalnya, jika batch ekspor dicoba ulang setelah penundaan sementara, atau jika operasi penyalinan dimulai ulang, percobaan ulang mungkin akan mencoba menimpa file yang sudah dibuat. Jika file tersebut dilindungi oleh penangguhan objek aktif atau kebijakan retensi yang terkunci, Cloud Storage akan menolak penimpaan.
- Bucket tujuan telah dihapus, memasuki status terkunci, atau project melebihi kuota resource-nya.
Untuk mengatasi masalah ini, lakukan langkah berikut:
Tinjau Kontrol Layanan VPC: Jika organisasi Anda menggunakan Kontrol Layanan VPC, tinjau Cloud Audit Logs untuk penolakan perimeter (
cloudaudit.googleapis.com/data_access). Perimeter untuk bucket Cloud Storage tujuan harus mengizinkan akses dari project yang menjalankan operasi penyalinan, atau mengonfigurasi aturan ingress dan egress.Verifikasi peran IAM bucket tujuan: Akun yang memulai operasi penyalinan harus memiliki peran Storage Object Creator (
roles/storage.objectCreator) di bucket tujuan.Verifikasi Kunci Enkripsi yang Dikelola Pelanggan (CMEK): Jika bucket tujuan menggunakan CMEK untuk enkripsi default, pastikan kunci Cloud KMS diaktifkan dan agen layanan Cloud Storage memiliki peran Cloud KMS CryptoKey Encrypter/Decrypter (
roles/cloudkms.cryptoKeyEncrypterDecrypter) pada kunci tersebut.Bagi operasi penyalinan besar menjadi interval waktu yang lebih singkat: Untuk mencegah waktu tunggu habis atau masa berlaku kredensial habis saat menyalin entri log dalam jumlah besar, bagi operasi menjadi batch yang lebih kecil. Untuk membagi entri log menjadi beberapa batch, gunakan kolom
timestampdi flag--log-filter.Pastikan tidak ada penangguhan objek atau konflik retensi: Pastikan bucket tujuan tidak berisi objek di jalur tujuan target yang dilindungi oleh penangguhan objek aktif atau kebijakan retensi yang terkunci.