Dengan mengupgrade bucket log untuk menggunakan Observability Analytics, Anda dapat menjalankan kueri SQL untuk menganalisis data log yang disimpan di bucket tersebut. Jika upgrade bucket log gagal atau terhenti, Anda dapat menggunakan dokumen ini untuk mendiagnosis dan menyelesaikan error validasi sinkron, error penyediaan asinkron, dan operasi yang diblokir. Untuk mengetahui informasi tentang cara mengupgrade bucket log, lihat Mengupgrade bucket untuk menggunakan Observability Analytics.
Tentang proses upgrade
Cloud Logging menggunakan proses dua langkah saat Anda mengeluarkan perintah untuk mengupgrade bucket log agar dapat menggunakan Observability Analytics:
- Validasi sinkron: Logging memvalidasi parameter perintah. Jika validasi gagal, perintah akan langsung menampilkan error.
- Penyediaan asinkron: Jika validasi berhasil, Logging akan memulai operasi yang berjalan lama dan biasanya selesai dalam waktu 10 menit.
Upgrade bucket log adalah operasi yang diaudit. Untuk memeriksa status operasi yang berjalan lama atau menemukan detail error, Anda dapat memeriksa operasi menggunakan metode Operations.GetOperation, atau Anda dapat membuat kueri log audit.
Status bucket log selama upgrade
Jika validasi sinkron permintaan upgrade berhasil, Logging akan mengubah status bucket log dari ACTIVE menjadi UPDATING dan memulai operasi yang berjalan lama. Setelah operasi selesai, status bucket log akan kembali ke ACTIVE.
Anda dapat menentukan status bucket log saat ini dengan menjalankan perintah gcloud logging buckets describe:
gcloud logging buckets describe LOG_BUCKET_ID \
--location=LOCATION_ID \
--project=PROJECT_ID
Sebelum Anda menjalankan perintah, lakukan penggantian berikut:
- PROJECT_ID: ID project Anda.
- LOCATION_ID: Lokasi bucket Anda.
- LOG_BUCKET_ID: ID bucket Anda.
Kolom lifecycleState dalam respons menunjukkan status bucket:
description: Default bucket
lifecycleState: ACTIVE
name: projects/PROJECT_ID/locations/LOCATION_ID/buckets/LOG_BUCKET_ID
retentionDays: 30
Di konsol Google Cloud , saat bucket log dalam status UPDATING:
- Di halaman Logs Storage, kolom Observability Analytics available menampilkan Upgrading… saat operasi yang berjalan lama aktif (atau Not eligible for upgrade jika konsol tidak dapat mengambil status operasi).
- Di panel Edit bucket dan panel Upgrade log bucket, opsi untuk mengupgrade bucket dinonaktifkan dan tooltip mencantumkan There are no pending updates sebagai persyaratan yang tidak terpenuhi.
Pertimbangan perimeter Kontrol Layanan VPC
Upgrade bucket log di dalam perimeter Kontrol Layanan VPC dapat gagal karena API diblokir oleh perimeter atau karena konfigurasi lintas project.
API yang harus diizinkan oleh perimeter
Untuk mengupgrade bucket log yang berada di dalam perimeter Kontrol Layanan VPC, perimeter tidak boleh membatasi layanan berikut:
logging.googleapis.comcloudkms.googleapis.com: Diperlukan untuk mengupgrade bucket log yang menggunakan kunci enkripsi yang dikelola pelanggan (CMEK).
Membatasi layanan ini akan menyebabkan perilaku berikut:
logging.googleapis.comrestricted: Perintah upgrade akan langsung gagal dengan errorPERMISSION_DENIED, dan bucket log Anda tetap dalam statusACTIVE.Penyelesaian: Update perimeter untuk mengizinkan API yang tercantum di awal bagian ini, lalu coba lagi perintah tersebut.
cloudkms.googleapis.comdibatasi: Untuk bucket log yang dilindungi CMEK, operasi yang berjalan lama akan gagal dengan errorINTERNALdan bucket log Anda akan kembali ke statusACTIVE.Penyelesaian: Update perimeter untuk mengizinkan API yang tercantum di awal bagian ini, lalu coba lagi perintah tersebut.
Konfigurasi CMEK lintas perimeter
Anda tidak dapat menggunakan aturan ingress atau egress berbasis identitas untuk memberikan akses lintas perimeter ke kunci Cloud Key Management Service jika bucket log dan kunci Cloud KMS Anda berada di perimeter Kontrol Layanan VPC yang berbeda.
Untuk konfigurasi ini, jika aturan ingress Anda hanya menentukan identitas akun layanan Logging, hal berikut akan terjadi:
- Penyediaan asinkron gagal dengan error
INTERNALdan bucket log Anda kembali ke statusACTIVE. - Log audit kebijakan untuk project Cloud KMS mencatat kegagalan tersebut.
Log audit ini menunjukkan bahwa metode
google.cloud.kms.v1.KeyManagementService.Encryptgagal dengan pelanggaran traffic masukNO_MATCHING_ACCESS_LEVELdan menunjukkan bahwa metode tersebut ditujukan untuk akun layanan enkripsi BigQuery.
Penyelesaian: Dalam aturan ingress yang mengizinkan akses ke perimeter Cloud KMS, tetapkan identityType ke ANY_IDENTITY dan tentukan project yang berisi bucket log sebagai resource sumber:
- ingressFrom:
identityType: ANY_IDENTITY
sources:
- resource: projects/PROJECT_NUMBER
ingressTo:
operations:
- serviceName: cloudkms.googleapis.com
methodSelectors:
- method: '*'
resources:
- projects/KMS_PROJECT_NUMBER
Pada contoh sebelumnya, ganti kode berikut:
- PROJECT_NUMBER: Nomor project dari project yang berisi bucket log.
- KMS_PROJECT_NUMBER: Nomor project dari project yang berisi kunci Cloud KMS.
Jika Anda juga menentukan aturan egress, aturan tersebut juga harus menetapkan
identityType: ANY_IDENTITY.
Membuat kueri log audit untuk mendapatkan informasi kegagalan
Kueri di bagian ini dapat membantu Anda menemukan entri log yang melaporkan kegagalan saat mengupdate atau mengupgrade bucket log. Kueri ini digunakan dengan Logs Explorer.
Di konsol Google Cloud , buka halaman Logs Explorer:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Logging.
Membuat kueri untuk semua update atau upgrade bucket yang gagal dalam sebuah project
log_id("cloudaudit.googleapis.com/activity")
protoPayload.serviceName="logging.googleapis.com"
(protoPayload.methodName="google.logging.v2.ConfigServiceV2.UpdateBucket" OR
protoPayload.methodName="google.logging.v2.ConfigServiceV2.UpdateBucketAsync")
severity=ERROR
Jika Anda menggunakan konsol Google Cloud untuk mengupgrade bucket log agar menggunakan Observability Analytics dan membuat set data BigQuery tertaut, gunakan kueri berikut:
log_id("cloudaudit.googleapis.com/activity")
(protoPayload.serviceName="logging.googleapis.com" OR
protoPayload.serviceName="bigquery.googleapis.com")
(protoPayload.methodName="google.logging.v2.ConfigServiceV2.UpdateBucket" OR
protoPayload.methodName="google.logging.v2.ConfigServiceV2.UpdateBucketAsync" OR
protoPayload.methodName="google.cloud.bigquery.v2.DatasetService.InsertDataset")
severity=ERROR
Hasil kueri sebelumnya menyertakan entri log yang menunjukkan bahwa pembuatan set data BigQuery tertaut gagal. Pesan error dapat membantu Anda mengatasi penyebab kegagalan.
Membuat kueri untuk update atau upgrade bucket yang gagal untuk bucket tertentu
Sebelum menggunakan kueri berikut, lakukan penggantian berikut:
- PROJECT_ID: ID project Anda.
- LOCATION_ID: Lokasi bucket Anda.
- LOG_BUCKET_ID: ID bucket Anda.
log_id("cloudaudit.googleapis.com/activity")
protoPayload.serviceName="logging.googleapis.com"
(protoPayload.methodName="google.logging.v2.ConfigServiceV2.UpdateBucket" OR
protoPayload.methodName="google.logging.v2.ConfigServiceV2.UpdateBucketAsync")
protoPayload.resourceName="projects/PROJECT_ID/locations/LOCATION_ID/buckets/LOG_BUCKET_ID"
severity=ERROR
Membuat kueri untuk kegagalan operasi yang berjalan lama
log_id("cloudaudit.googleapis.com/activity")
protoPayload.serviceName="logging.googleapis.com"
protoPayload.methodName="google.logging.v2.ConfigServiceV2.UpdateBucketAsync"
operation.last=true
severity=ERROR
INVALID_ARGUMENT (3)
Pesan error yang diberikan dengan kode error INVALID_ARGUMENT (3) berisi informasi yang cukup bagi Anda untuk menyelesaikan kegagalan. Oleh karena itu, bagian ini tidak mencantumkan semua kemungkinan pesan error.
Masalah nama resource
Untuk menyelesaikan masalah terkait nama resource, teruskan nama resource bucket yang valid dalam format projects/PROJECT_ID/locations/LOCATION_ID/buckets/LOG_BUCKET_ID.
Pastikan panjang nama resource tidak melebihi batas panjang.
Masalah update mask
Pesan error yang berisi teks update_mask atau Update mask menunjukkan
nilai yang tidak ada atau salah format.
Untuk mengatasi masalah ini, dalam perintah API, tentukan update_mask dan tetapkan nilainya ke "analytics_enabled".
Masalah kelayakan bucket log
Anda tidak dapat mengupgrade bucket log
_Defaultyang terkunci atau bucket kustom yang terkunci. Anda dapat mengupgrade bucket_Requiredsaat dikunci.Jika bucket log dikunci, pesan errornya adalah
"Bucket is not eligible for an upgrade to enable analytics".Untuk mengatasi kegagalan ini, buat bucket baru yang mendukung analisis dan rutekan log ke bucket tersebut.
Anda tidak dapat mengupgrade bucket log bersamaan dengan membuat perubahan lain pada bucket. Misalnya, Anda tidak dapat mengupgrade bucket log dan memperbarui deskripsi bucket.
Untuk mengatasi kegagalan ini, kirim permintaan
UpdateBucketatauUpdateBucketAsyncterpisah dengan hanyaanalytics_enableddiupdate_mask, dan perbarui kolom bucket log lainnya dalam permintaan terpisah.Anda tidak dapat mengupgrade bucket log di organisasi, folder, atau akun penagihan. Anda hanya dapat mengupgrade bucket log yang induknya adalah project Google Cloud .
Anda tidak dapat mengupgrade bucket log yang telah diupgrade atau sedang diupgrade.
Gunakan
GetBucketatauListOperationsuntuk menentukan apakah upgrade telah selesai atau sedang berlangsung.
Masalah kunci Cloud KMS
Pesan error:
"Not a valid key reference (wrong type): 'KMS_KEY_NAME'""Name "KMS_KEY_NAME" is missing the COMPONENT component. Expected the form projects/[PROJECT_ID]/locations/[ID]/keyRings/[ID]/cryptoKeys/[ID]"
Penyelesaian: Perbarui cmek_settings.kms_key_name bucket log ke nama resource CryptoKey Cloud KMS yang valid sebelum mengupgrade bucket.
Anda harus memperbarui nama resource, bukan versi kunci, CryptoKeyVersion.
Pesan argumen tidak valid
Jika Anda melihat pesan "Request contains an invalid argument.", coba langkah berikut untuk bucket log yang mengaktifkan CMEK:
- Pastikan akun layanan Logging yang terkait dengan konfigurasi CMEK bucket diinisialisasi.
- Pastikan bucket memiliki periode retensi positif.
Untuk menemukan nama akun layanan, jalankan perintah berikut setelah Anda memperbarui bucket log, lokasi, dan project ID:
gcloud logging buckets describe LOG_BUCKET_ID --location=LOCATION_ID --project=PROJECT_ID
Akun layanan mungkin berada dalam project, folder, atau organisasi.
DEADLINE_EXCEEDED (4)
Gunakan UpdateBucketAsync dan lakukan polling pada operasi yang berjalan lama yang ditampilkan menggunakan metode Operations.GetOperation, atau panggil GetBucket setelah upgrade latar belakang selesai.
NOT_FOUND (5)
Untuk mengatasi kegagalan ini, coba langkah berikut:
- Pastikan project ID atau nomor project sudah benar dan project tersebut aktif. Jika project menunggu penghapusan, pulihkan project terlebih dahulu.
- Pastikan lokasi yang ditentukan didukung oleh Logging.
- Pastikan ID bucket log dan lokasi ada dalam project dan bucket target bukan
_CloudTrace.
PERMISSION_DENIED (7)
Error izin ditolak menunjukkan bahwa tindakan yang diminta tidak diizinkan.
Izin pengguna tidak ada
Untuk mengupgrade bucket log, pastikan pemanggil memiliki peran Identity and Access Management (IAM) yang menyertakan izin logging.buckets.update (seperti roles/logging.configWriter atau roles/logging.admin), dan pastikan tidak ada kebijakan organisasi kustom yang memblokir update.
Batasan kebijakan organisasi
Untuk mengatasi pesan error
"Request is prohibited by organization's policy. vpcServiceControlsUniqueIdentifier: [ID]",
pastikan perimeter Kontrol Layanan VPC tidak membatasi
layanan logging.googleapis.com. Untuk mengetahui informasi selengkapnya, lihat
Pertimbangan perimeter Kontrol Layanan VPC.
Masalah endpoint regional
Untuk mengatasi error izin ditolak saat endpoint regional ditentukan,
kirim permintaan ke endpoint global (logging.googleapis.com) atau ke
endpoint regional yang cocok dengan lokasi bucket log.
RESOURCE_EXHAUSTED (8)
Untuk mengatasi kegagalan ini, tunggu hingga operasi penyediaan yang sedang berlangsung selesai dan coba lagi dengan backoff eksponensial.
FAILED_PRECONDITION (9)
Untuk mengatasi kegagalan ini, coba langkah berikut:
Pastikan bucket log berada dalam status
ACTIVE. Anda tidak dapat mengupgrade bucket log yang sedang dihapus atau sedang menjalani operasi update atau penyediaan.Untuk mengetahui informasi tentang cara menentukan status bucket log, lihat Status bucket log selama upgrade.
Anda tidak dapat mengupgrade bucket log yang terkunci.
Pesan umum
"Precondition check failed."menunjukkan bahwa status bucket bukanACTIVE. Tunggu hingga operasi yang sedang berlangsung selesai, lalu coba lagi upgrade.
INTERNAL (13)
Pesan error:
- Operasi yang berjalan lama (
Operations.GetOperation):"Failed to create analytics enabled bucket." - Cloud Audit Logs dan
UpdateBucketsinkron:"Internal error encountered."
Penyelesaian: Coba langkah berikut:
Untuk bucket log yang mengaktifkan CMEK, pastikan kunci Cloud KMS diaktifkan, akun layanan Logging yang terkait dengan konfigurasi CMEK bucket memiliki peran
roles/cloudkms.cryptoKeyEncrypterDecrypterpada kunci, kunci dapat diakses oleh BigQuery, dan tidak ada kebijakan organisasi atau perimeter Kontrol Layanan VPC yang memblokir akses Cloud KMS.Untuk menemukan nama akun layanan, jalankan perintah berikut:
gcloud logging buckets describe LOG_BUCKET_ID --location=LOCATION_ID --project=PROJECT_IDAkun layanan mungkin berada dalam project, folder, atau organisasi.
Periksa tampilan log yang ada di bucket (
logging.views.list) untuk memastikan bahwa filternya valid, dan coba lagi upgrade bucket.Pastikan bucket log belum dihapus (
DELETE_REQUESTED) dan tidak ada tindakan administratif yang bertentangan yang terjadi pada bucket, lalu coba lagi upgrade.Coba lagi upgrade bucket log setelah set data penyimpanan BigQuery sementara atau error pembuatan indeks penelusuran teratasi, atau setelah ketersediaan layanan BigQuery, Cloud KMS, atau penyediaan downstream dipulihkan. Jika kegagalan berlanjut, hubungi Cloud Customer Care.
UNAVAILABLE (14)
Jika Anda melihat pesan "The service is currently unavailable.", coba lagi permintaan UpdateBucketAsync dengan backoff eksponensial.