Dokumen ini menunjukkan cara mengatasi error yang mungkin terjadi saat menggunakan halaman Log Analytics di konsol Google Cloud .
Pesan error
Bagian ini menjelaskan pesan error yang mungkin Anda lihat, dan cara mengatasi kondisi error yang sesuai.
Pesan error No completion signal within allotted timeframe
Anda memasukkan kueri SQL dan memilih Jalankan kueri. Kueri tidak selesai dan Anda melihat pesan error berikut:
The query failed to execute and return results due to error: No completion signal within allotted timeframe.
Untuk mengatasi error ini, lakukan salah satu tindakan berikut:
Persingkat interval kueri log, lalu coba lagi kueri. Misalnya, jika interval kueri adalah 14 hari, perpendek interval menjadi 7 hari, lalu jalankan kueri.
Buat set data BigQuery tertaut lalu jalankan kueri dari antarmuka BigQuery. Antarmuka BigQuery mendukung kueri yang memerlukan waktu eksekusi lebih lama daripada antarmuka Cloud Logging. Untuk mengetahui informasi selengkapnya, lihat artikel Membuat kueri set data BigQuery yang ditautkan.
Pesan error kueri terhadap bucket dengan kunci CMEK yang berbeda
Anda memasukkan kueri SQL yang mengkueri beberapa bucket log dan memilih Jalankan kueri. Kueri tidak selesai dan Anda melihat pesan error berikut:
Queries against buckets with distinct CMEK keys must have a key configured in the LogSettings.
Untuk mengatasi situasi ini, lakukan salah satu tindakan berikut:
- Konfigurasi bucket log Anda untuk menggunakan kunci Cloud Key Management Service (Cloud KMS) yang sama.
- Jika bucket log berada di lokasi yang sama, Anda dapat mengonfigurasi folder atau organisasi yang merupakan resource induk untuk bucket log dengan kunci Cloud KMS default. Kunci default induk harus berada di lokasi yang sama dengan bucket log. Dengan konfigurasi ini, kunci default induk mengenkripsi data sementara yang dihasilkan oleh kueri Log Analytics. Untuk mengetahui informasi selengkapnya, lihat Batasan Log Analytics.
Pesan error klausa FROM harus berisi tepat satu tampilan
Anda memasukkan kueri SQL di panel kueri halaman Log Analytics di konsol Google Cloud , tetapi parser SQL menampilkan error berikut:
FROM clause must contain exactly one log view
Error sebelumnya dilaporkan saat tabel yang ditentukan dalam pernyataan FROM tidak dapat diselesaikan ke tampilan log tertentu.
Untuk mengatasi error ini, pastikan nama tabel Anda memiliki sintaksis yang tepat:
Pastikan nama tabel mengikuti sintaksis yang diperlukan oleh skema penamaan Log Analytics. BigQuery dan Log Analytics memiliki persyaratan yang berbeda untuk nama tabel. Anda dapat menemukan sintaksis yang diperlukan untuk nama tabel dengan melihat kueri default.
Jika project ID, region, bucket ID, atau ID tampilan bucket log berisi karakter titik,
(.), pastikan setiap kolom ini diapit oleh tanda petik terbalik tunggal,(`). Google CloudMisalnya, jika project ID Google Cloud adalah
example.com:bluebird, maka untuk mengkueri tampilan_AllLogsbucket log_Default, gunakan sintaksis berikut untuk menentukan tabel:SELECT * FROM `example.com:bluebird`.`global`.`_Default`.`_AllLogs`Kueri sebelumnya mengasumsikan bahwa bucket
_Defaultberada di regionglobal.
Tidak dapat menyimpan kueri
Anda ingin menyimpan kueri saat ini, jadi Anda menjalankan kueri, lalu mengklik Simpan, tetapi opsi Simpan kueri dinonaktifkan atau Anda tidak dapat menyelesaikan langkah-langkah dialog.
Penyebab kegagalan ini adalah konflik antara kebijakan organisasi dan setelan resource default untuk Cloud Logging. Untuk organisasi atau folder, Anda dapat mengonfigurasi setelan resource default untuk Cloud Logging yang menentukan lokasi. Lokasi ini adalah tempat kueri tersimpan Anda disimpan. Namun, jika lokasi bertentangan dengan kebijakan organisasi, kueri Anda tidak dapat disimpan.
Untuk mengatasi kegagalan ini, minta administrator organisasi Anda untuk memperbarui setelan resource default untuk Cloud Logging sehingga setelan lokasi diizinkan oleh kebijakan organisasi Anda. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi setelan resource default untuk Cloud Logging.
Jika opsi Simpan kueri diaktifkan tetapi Anda tidak dapat menyelesaikan dialog dan menyimpan kueri, lakukan hal berikut:
- Pastikan kueri tidak mengandung error sintaksis. Anda hanya dapat menyimpan kueri yang valid.
- Opsional: Salin kueri ke papan klip Anda.
- Muat ulang halaman.
- Jika Anda menyalin kueri ke papan klip, tempel kueri ke panel Query, jalankan kueri, lalu lakukan operasi penyimpanan.
Tidak dapat membuat tampilan analisis
Anda ingin membuat tampilan analisis, jadi Anda memasukkan dan menjalankan kueri SQL, lalu mengklik Simpan tetapi opsi Simpan sebagai tampilan analisis dinonaktifkan.
Untuk mengatasi situasi ini, pastikan peran IAM Anda menyertakan izin berikut:
observability.analyticsViews.{get, list, create, update, delete}
Izin ini tidak disertakan dalam peran Cloud Logging bawaan. Untuk mengetahui informasi tentang peran yang diperlukan, lihat Membuat dan membuat kueri tampilan analisis: Sebelum memulai.
Tidak dapat mengkueri tampilan analisis
Anda ingin membuat kueri tampilan analisis, tetapi panel Tampilan di halaman Log Analytics tidak menampilkan tampilan analisis apa pun.
Untuk mengatasi kegagalan ini, coba langkah-langkah berikut:
Pastikan peran IAM Anda menyertakan izin berikut:
observability.analyticsViews.{get, list}
Izin ini tidak disertakan dalam peran Cloud Logging bawaan. Untuk mengetahui informasi tentang peran yang diperlukan, lihat Membuat dan membuat kueri tampilan analisis: Sebelum memulai.
Pastikan tampilan analisis ada di Google Cloud project Anda.
Akses ditolak ke halaman Log Analytics
Anda membuka halaman Log Analytics di konsol Google Cloud dan pesan error penolakan izin ditampilkan.
Untuk mendapatkan izin yang Anda perlukan guna memuat halaman Log Analytics, menjalankan kueri, dan melihat log, minta administrator Anda untuk memberi Anda peran IAM berikut di project Anda:
-
Melihat log:
Logs Viewer (
roles/logging.viewer) -
Melihat log di bucket log kustom:
Logs View Accessor (
roles/logging.viewAccessor)
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus, atau peran bawaan Logging.
Izin yang Anda perlukan untuk melihat entri log dan menjalankan kueri di halaman Log Analytics sama dengan izin yang Anda perlukan untuk melihat log di halaman Logs Explorer. Untuk mengetahui informasi tentang
peran tambahan yang Anda perlukan untuk membuat kueri tampilan di bucket yang ditentukan pengguna atau
untuk membuat kueri tampilan _AllLogs dari bucket log _Default, lihat
Peran Cloud Logging.
Upgrade bucket log untuk menggunakan Log Analytics gagal
Anda membuat bucket log dan memilih opsi untuk menggunakan Log Analytics, atau mengupgrade bucket log yang ada untuk menggunakan Log Analytics. Upgrade gagal dengan kondisi error yang mirip dengan:
Failed precondition (HTTP 400): Constraint "my-constraint" violated for PROJECT_ID with location global.
Pesan error sebelumnya menunjukkan bahwa organisasi Anda telah mengonfigurasi
kebijakan organisasi yang membatasi region yang dapat digunakan. Bucket log yang memenuhi syarat untuk diupgrade agar dapat menggunakan Log Analytics harus menggunakan region global. Jika Anda dapat menghapus kebijakan organisasi yang membatasi penggunaan region global, Anda dapat mengupgrade bucket log. Jika tidak,
Anda tidak dapat mengupgrade bucket log.
Gagal membuat set data BigQuery tertaut
Anda mengedit bucket log untuk membuat set data BigQuery tertaut atau Anda membuat bucket log baru dan memilih opsi untuk membuat set data tertaut; namun, set data tertaut tidak dibuat.
Untuk mengatasi error ini, minta administrator sistem untuk Google Cloud project agar memberi Anda peran IAM yang mencakup izin berikut:
logging.links.create
Izin sebelumnya disertakan dalam peran Logging Admin (roles/logging.admin) dan Logs Configuration Writer (roles/logging.configWriter).
Untuk mengetahui informasi tentang peran dan izin, lihat Kontrol akses dengan IAM.
Menghapus set data BigQuery tertaut gagal
Anda tidak lagi menginginkan set data tertaut, tetapi opsi untuk menghapus set data tersebut dinonaktifkan.
Untuk mengatasi error ini, minta administrator sistem untuk Google Cloud project agar memberi Anda peran IAM yang mencakup izin berikut:
logging.links.delete
Izin sebelumnya disertakan dalam peran Logging Admin (roles/logging.admin) dan Logs Configuration Writer (roles/logging.configWriter).
Izin ini memungkinkan Anda menghapus set data tertaut dari halaman Logs Storage di konsol Google Cloud . Untuk mengetahui informasi selengkapnya tentang peran dan izin, lihat Kontrol akses dengan IAM.
Log Analytics menampilkan peringatan tentang metadata sensitif
Halaman Log Analytics akan menampilkan pesan yang mirip dengan berikut ini:
This SQL query is configured to run on the BigQuery engine using [PROJECT_ID],
and references resources from [RESOURCE, ...]. Sensitive metadata,
including table contents, may be written to [PROJECT_ID].
Pesan peringatan menunjukkan bahwa kueri melintasi batas kepemilikan dan memberi Anda kesempatan untuk memverifikasi kueri sebelum dieksekusi. Batas kepemilikan ditentukan oleh beberapa faktor, salah satunya adalah hierarki resource yang digunakan kueri.
Anda tidak dapat mencegah jenis peringatan ini.
Jika halaman Log Analytics menampilkan dialog peringatan, Anda dapat melakukan salah satu tindakan berikut:
Jika Anda tahu kueri aman untuk dijalankan dan jika Anda ingin melihat hasil kueri, klik Konfirmasi dan Jalankan.
Analisis kueri dan, jika perlu, batalkan kueri tersebut. Misalnya, Anda dapat melakukan hal berikut:
- Periksa kueri. Dalam pemeriksaan Anda, pertimbangkan data apa yang dikueri, potensi ukuran set data yang dikueri, dan mesin kueri. Kueri yang dijalankan di layanan BigQuery dapat dikenai biaya.
- Jika Anda dikirimi link ke halaman Log Analytics, pastikan pengirimnya adalah sumber tepercaya.
Google Cloud menyediakan beberapa fitur yang dapat membantu mencegah pemindahan data yang tidak sah melalui phishing, serangan oleh orang dalam, atau entitas eksternal. Untuk mempelajari lebih lanjut, lihat Keamanan data dengan Log Analytics.
Tidak dapat menyetel mesin kueri ke BigQuery
Menu settings Setelan memiliki opsi BigQuery yang dinonaktifkan.
Untuk mengaktifkan opsi ini, lakukan hal berikut:
- Aktifkan BigQuery Reservations API.
- Konfigurasi slot BigQuery yang dicadangkan untuk project Anda.
- Pastikan Anda memiliki set data BigQuery tertaut di bucket log yang dikueri.
Tombol Jalankan di BigQuery dinonaktifkan
Jika tombol Jalankan di BigQuery ditampilkan tetapi dinonaktifkan, maka tampilan log yang dirujuk oleh kueri Anda tidak memiliki set data tertaut. Untuk menjalankan kueri pada reservasi slot BigQuery, buat set data BigQuery tertaut di bucket log Anda.
Tidak Ada Akun Layanan Pemantauan
Anda ingin membuat kebijakan pemberitahuan untuk memantau hasil kueri SQL. Langkah-langkah penyiapan mengharuskan Anda memberikan peran IAM ke Akun Layanan Monitoring, tetapi akun tersebut tidak ada.
Akun Layanan Monitoring disebut agen layanan, karena dibuat dan dikelola oleh Google Cloud. Akun dibuat secara otomatis saat Anda mengonfigurasi resource atau layanan yang memerlukan akun tersebut. Misalnya, jika Anda membuat channel notifikasi Pub/Sub, tindakan tersebut dapat menyebabkan Akun Layanan Monitoring dibuat.
Untuk membuat Akun Layanan Pemantauan dan memberinya izin yang diperlukan untuk kebijakan pemberitahuan berbasis SQL, lakukan hal berikut:
Buat Akun Layanan Monitoring. Untuk mengetahui informasi selengkapnya, lihat Membuat dan memberikan peran pada agen layanan.
Berikan peran berikut ke Akun Layanan Monitoring:
- Monitoring Service Agent (
roles/monitoring.notificationServiceAgent) di project Anda. - BigQuery Data Viewer (
roles/bigquery.dataViewer) di set data tertaut Anda.
- Monitoring Service Agent (
Error izin ditolak untuk Akun Layanan Monitoring
Anda ingin membuat kebijakan pemberitahuan untuk memantau hasil kueri SQL.
Namun, Anda melihat error PermissionDenied dengan pesan yang dimulai dengan
Error authenticating service account.
Untuk mengatasi kegagalan ini, berikan peran berikut ke Akun Layanan Monitoring:
- Monitoring Service Agent (
roles/monitoring.notificationServiceAgent) di project Anda. - BigQuery Data Viewer (
roles/bigquery.dataViewer) di set data tertaut Anda.
Ada entri log duplikat dalam hasil Log Analytics saya
Anda menjalankan kueri yang menghitung atau melaporkan entri duplikat. Karena Logs Explorer menghapus entri duplikat berdasarkan nama log, stempel waktu, dan ID penyisipan, Anda mengharapkan Log Analytics menghapus duplikat entri log sebelum kueri dijalankan.
Log Analytics tidak melakukan jenis penghapusan duplikat yang sama dengan yang dilakukan oleh Logs Explorer.
Untuk mengatasi entri log duplikat, coba langkah-langkah berikut:
Tentukan apakah entri log duplikat memiliki nilai stempel waktu terima yang berbeda. Jika stempel waktu berbeda, hal ini menunjukkan bahwa data yang sama ditulis ke Logging beberapa kali.
Untuk mengatasi penulisan duplikat, selidiki integrasi logging Anda untuk menemukan pesan error atau kesalahan konfigurasi.
Jika bucket Anda dikonfigurasi untuk menggunakan kunci Cloud Key Management Service, pastikan Anda berada dalam kuota dan kunci Anda selalu dapat diakses. Melebihi kuota atau kehilangan akses kunci dapat menyebabkan entri log duplikat.
Untuk mengatasi kegagalan ini, pastikan Anda tidak melebihi kuota dan kunci Anda dapat diakses.
Ubah kueri Anda untuk menghapus entri log duplikat.
Misalnya, anggaplah payload JSON berisi
fieldAdanfieldB, yang pertama adalah string dan yang kedua adalah numerik. Selain itu, asumsikan bahwa payload JSON berisi kolom berlabelserver, yang berisi string. Selanjutnya, pertimbangkan kueri berikut:SELECT JSON_VALUE(json_payload.fieldA) AS fieldA SUM(IFNULL(SAFE_CAST(JSON_VALUE(json_payload.fieldB) AS INT64), 0)) AS sum_fieldB FROM `VIEW` WHERE JSON_VALUE(json_payload.server) = "test" GROUP BY fieldA;Anda dapat mengubah kueri untuk menghapus entri log duplikat, dengan nama log, stempel waktu, dan ID penyisipan diperiksa untuk menentukan apakah entri log adalah duplikat:
WITH deduplicated AS ( SELECT JSON_VALUE(json_payload.fieldA) AS fieldA IFNULL(SAFE_CAST(JSON_VALUE(json_payload.fieldB) AS INT64), 0) AS fieldB FROM `VIEW` a WHERE JSON_VALUE(json_payload.server) = "test" QUALIFY ROW_NUMBER() OVER (PARTITION BY a.log_name, a.timestamp, a.insert_id ) = 1 ) SELECT fieldA, SUM(fieldB) AS sum_fieldB FROM deduplicated GROUP BY fieldA;