Jika mengalami masalah saat merutekan atau menyimpan entri log, Anda dapat menggunakan konsolGoogle Cloud untuk mendiagnosis kesalahan konfigurasi, memeriksa pesan error, dan mengatasi log yang hilang.
Untuk mengetahui informasi tentang cara melihat data log setelah mencapai tujuan, lihat Melihat log di tujuan sink.
Memecahkan masalah pemilihan rute log
Bagian ini menjelaskan cara memecahkan masalah umum saat merutekan entri log.
Pembuatan sink gagal dengan error layanan yang tidak diketahui
Anda mencoba membuat sink log, tetapi perintah gagal dengan error INVALID_ARGUMENT (HTTP 400). Pesan error menyertakan hal berikut:
Sink.destination with unknown service name: [SERVICE_DOMAIN]. Supported services are bigquery.googleapis.com,pubsub.googleapis.com,storage.googleapis.com,logging.googleapis.com
Untuk mengatasi error ini, gunakan endpoint global untuk salah satu layanan yang didukung. Tujuan sink log tidak dapat menentukan
endpoint layanan regional (REP),
seperti pubsub.LOCATION.rep.googleapis.com.
Pesan error konfigurasi sink menyatakan bahwa region topik tidak diizinkan
Salah satu hal berikut terjadi:
Anda menerima email dengan subjek
[ACTION REQUIRED] Cloud Logging sink configuration error in [PROJECT_ID]dan kode errortopic_region_not_allowed. Email tersebut menyertakan pesan yang mirip dengan berikut ini:Kebijakan penyimpanan pesan topik memerlukan penerapan dalam pengiriman, tetapi permintaan Publish diterima oleh server Pub/Sub di region yang tidak diizinkan. Publikasikan melalui endpoint Cloud Logging regional yang sesuai dengan region yang diizinkan, atau update kebijakan penyimpanan pesan topik.
Anda melihat entri log dengan tingkat keparahan
ERROR, kode error"topic_region_not_allowed", dan payload teks yang mirip dengan berikut ini:Cloud Logging sink configuration error in [PROJECT_ID], sink [SINK_NAME]: topic_region_not_allowed ()
Pesan ini menunjukkan bahwa tujuan sink adalah topik Pub/Sub yang menerapkan batasan dalam pengiriman dan Logging merutekan entri log dari region yang tidak diizinkan oleh kebijakan topik. Pembatasan dalam pengiriman dapat dikonfigurasi pada kebijakan penyimpanan pesan topik individual atau diterapkan di seluruh organisasi menggunakan batasan kebijakan organisasi constraints/pubsub.enforceInTransitRegions.
Untuk mengatasi kegagalan ini, lakukan salah satu tindakan berikut:
- Perbarui kebijakan penyimpanan pesan topik Pub/Sub tujuan untuk menonaktifkan penerapan dalam pengiriman atau memperluas region persistensi yang diizinkan.
- Jika pembatasan dalam pengiriman diterapkan oleh kebijakan organisasi, perbarui kebijakan organisasi atau minta pengecualian untuk project.
- Perbarui sink untuk merutekan entri log ke tujuan yang berbeda.
Tujuan berisi entri log yang tidak diinginkan
Anda melihat entri log yang dirutekan ke tujuan dan menentukan bahwa tujuan tersebut berisi entri log yang tidak diinginkan.
Untuk mengatasi kondisi ini, perbarui filter pengecualian untuk sink yang merutekan entri log ke tujuan. Filter pengecualian memungkinkan Anda mengecualikan entri log yang dipilih agar tidak dirutekan ke tujuan.
Misalnya, asumsikan bahwa Anda membuat sink gabungan untuk merutekan entri log di organisasi ke tujuan. Untuk mengecualikan entri log dari project tertentu agar tidak dirutekan ke tujuan, tambahkan filter pengecualian berikut ke sink:
logName:projects/PROJECT_ID
Anda juga dapat mengecualikan entri log dari beberapa project menggunakan operator OR logis untuk menggabungkan klausa logName.
Tujuan tidak memiliki entri log
Mungkin masalah terkait sink yang paling umum adalah entri log tampaknya tidak ada di tujuan sink.
Dalam beberapa kasus, error tidak dihasilkan, tetapi Anda mungkin melihat bahwa entri log tidak tersedia saat Anda mencoba mengaksesnya di tujuan. Jika Anda menduga bahwa sink Anda tidak merutekan entri log dengan benar, periksa metrik berbasis log sistem sink Anda:
exports/byte_count: Jumlah byte dalam entri log yang dirutekan.exports/log_entry_count: Jumlah entri log yang dirutekan.exports/error_count: Jumlah entri log yang gagal dirutekan.
Metrik memiliki label yang mencatat jumlah berdasarkan nama sink dan nama tujuan, serta memberi tahu Anda apakah sink berhasil atau gagal merutekan entri log.
Jika metrik sink menunjukkan bahwa sink Anda tidak berperforma seperti yang diharapkan, berikut beberapa kemungkinan penyebabnya dan tindakan yang harus dilakukan:
Latensi
Tidak ada entri log yang cocok yang diterima sejak Anda membuat atau memperbarui sink; hanya entri log baru yang dirutekan.
Coba tunggu satu jam dan periksa kembali tujuan Anda.
Entri log yang cocok terlambat diterima.
Mungkin ada penundaan sebelum Anda dapat melihat entri log di tujuan. Coba tunggu beberapa jam dan periksa kembali tujuan Anda.
Cakupan/filter tampilan salah
Cakupan yang Anda gunakan untuk melihat entri log yang disimpan di bucket log salah.
Cakup penelusuran Anda ke satu atau beberapa tampilan log sebagai berikut:
Jika Anda menggunakan Logs Explorer, gunakan tombol Refine scope.
Jika Anda menggunakan gcloud CLI, gunakan perintah
gcloud logging readdan tambahkan flag--view=AllLogs.
Rentang waktu yang Anda gunakan untuk memilih dan melihat data di tujuan sink terlalu sempit.
Coba perluas rentang waktu yang Anda gunakan saat memilih data di tujuan sink Anda.
Error pada filter sink
Filter sink salah dan tidak menangkap entri log yang Anda harapkan untuk dilihat di tujuan.
Edit filter sink Anda menggunakan Log Router di konsol Google Cloud . Untuk memverifikasi bahwa Anda telah memasukkan filter yang benar, pilih Preview logs di panel Edit sink. Tindakan ini akan membuka Logs Explorer di tab baru dengan filter yang telah diisi otomatis. Untuk mengetahui petunjuk tentang cara melihat dan mengelola sink, lihat Mengelola sink.
Lihat error
Untuk setiap tujuan sink yang didukung, Logging menyediakan pesan error untuk sink yang tidak dikonfigurasi dengan benar.
Ada beberapa cara untuk melihat error terkait sink ini; metode ini dijelaskan di bagian berikut:
- Lihat log error yang dibuat untuk sink.
Menerima notifikasi error sink melalui email.
Pengirim email ini adalah
logging-noreply@google.com. Baris subjeknya mirip dengan[ACTION REQUIRED] Cloud Logging sink configuration error.
Log error
Metode yang direkomendasikan untuk memeriksa error terkait sink secara mendetail adalah dengan melihat entri log error yang dihasilkan oleh sink. Untuk mengetahui detail tentang cara melihat entri log, lihat Melihat log menggunakan Logs Explorer.
Anda dapat menggunakan kueri berikut di panel editor kueri di Logs Explorer untuk meninjau log error sink Anda. Kueri yang sama berfungsi di Logging API dan gcloud CLI.
Sebelum menyalin kueri, ganti variabel SINK_NAME dengan nama sink yang ingin Anda pecahkan masalahnya. Anda dapat menemukan nama sink di halaman Log Router di konsol Google Cloud .
logName:"logging.googleapis.com%2Fsink_error"
resource.type="logging_sink"
resource.labels.name="SINK_NAME"
Misalnya, jika nama sink Anda adalah my-sink-123, entri log mungkin terlihat
mirip dengan berikut ini:
{
errorGroups: [
0: {
id: "COXu96aNws6BiQE"
}]
insertId: "170up6jan"
labels: {
activity_type_name: "LoggingSinkConfigErrorV2"
destination: "pubsub.googleapis.com/projects/my-project/topics/my-topic"
error_code: "topic_not_found"
error_detail: ""
sink_id: "my-sink-123"
}
logName: "projects/my-project/logs/logging.googleapis.com%2Fsink_error"
receiveTimestamp: "2024-07-11T14:41:42.578823830Z"
resource: {
labels: {
destination: "pubsub.googleapis.com/projects/my-project/topics/my-topic"
name: "my-sink-123"
project_id: "my-project"
}
type: "logging_sink"
}
severity: "ERROR"
textPayload: "Cloud Logging sink configuration error in my-project, sink my-sink-123: topic_not_found ()"
timestamp: "2024-07-11T14:41:41.296157014Z"
}
Kolom LogEntry labels dan informasi nilai kunci bertingkatnya
membantu Anda menargetkan sumber error sink; kolom ini berisi resource yang terpengaruh, sink yang terpengaruh, dan kode error. Kolom labels.error_code berisi deskripsi singkat error, yang memberi tahu Anda komponen sink mana yang perlu dikonfigurasi ulang.
Untuk mengatasi kegagalan ini, edit sink Anda. Misalnya, Anda dapat mengedit sink menggunakan halaman Log Router:
Notifikasi email
Kontak Penting mengirimkan notifikasi email error konfigurasi sink ke kontak yang ditetapkan ke kategori notifikasi Teknis untuk project Google Cloud atau resource induknya.
Jika resource tidak memiliki kontak yang dikonfigurasi untuk notifikasi Teknis,
pengguna yang tercantum sebagai Project Owner IAM roles/owner untuk
resource akan menerima notifikasi email.
Untuk setiap kombinasi nama sink log dan error, sistem akan mengirimkan satu notifikasi per hari.
Pesan email berisi informasi berikut:
- ID Resource: Nama project Google Cloud atau resource Google Cloud lain tempat sink dikonfigurasi.
- Nama sink: Nama sink yang berisi error konfigurasi.
- Sink destination: Jalur lengkap tujuan pemilihan rute sink; misalnya,
pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID - Kode error: Deskripsi singkat kategori error; misalnya,
topic_not_found. - Detail error: Informasi mendetail tentang error, termasuk rekomendasi untuk memecahkan masalah error yang mendasarinya.
Pengirim email ini adalah logging-noreply@google.com.
Subjeknya mirip dengan: Subject: [ACTION REQUIRED] Cloud Logging sink configuration error in my-project
Untuk melihat dan mengelola sink, gunakan halaman Log Router:
Setiap error konfigurasi sink yang berlaku untuk resource akan muncul dalam daftar sebagai
Cloud Logging sink configuration error. Setiap error berisi link ke salah satu entri log yang dihasilkan oleh sink yang rusak. Untuk memeriksa error yang mendasarinya secara mendetail, lihat bagian Log error.
Tujuan sink salah
Jika Anda menyiapkan sink, tetapi kemudian melihat error konfigurasi bahwa tujuan tidak dapat ditemukan saat Logging mencoba merutekan entri log, berikut beberapa kemungkinan alasannya:
Konfigurasi sink Anda berisi kesalahan ejaan atau error pemformatan lainnya di tujuan sink yang ditentukan.
Anda perlu memperbarui konfigurasi sink untuk menentukan tujuan yang ada dengan benar.
Tujuan yang ditentukan mungkin telah dihapus.
Anda dapat mengubah konfigurasi sink untuk menggunakan tujuan lain yang sudah ada atau membuat ulang tujuan dengan nama yang sama.
Untuk mengatasi jenis kegagalan ini, edit sink Anda. Misalnya, Anda dapat mengedit sink menggunakan halaman Log Router:
Sink Anda mulai merutekan entri log saat tujuan ditemukan dan entri log baru yang cocok dengan filter Anda diterima oleh Logging.
Masalah sink yang dinonaktifkan
Jika Anda menonaktifkan sink untuk berhenti menyimpan entri log di bucket log, tetapi masih melihat entri log dirutekan, tunggu beberapa menit hingga perubahan pada sink diterapkan.
Masalah izin dengan sink
Saat sink mencoba merutekan entri log, tetapi tidak memiliki izin IAM yang sesuai untuk tujuan sink, sink akan melaporkan error, yang dapat Anda lihat, dan melewati entri log.
Saat Anda membuat sink, akun layanan sink harus diberi izin tujuan yang sesuai. Jika Anda membuat sink di konsol Google Cloud dalam projectGoogle Cloud yang sama, konsol Google Cloud biasanya akan menetapkan izin ini secara otomatis. Namun, jika Anda membuat sink di projectGoogle Cloud yang berbeda, atau menggunakan gcloud CLI atau Logging API, Anda harus mengonfigurasi izin secara manual.
Jika Anda melihat error terkait izin untuk sink, tambahkan izin yang diperlukan atau update sink untuk menggunakan tujuan yang berbeda. Untuk mengetahui petunjuk cara memperbarui izin ini, lihat Izin tujuan.
Ada sedikit keterlambatan antara pembuatan sink dan penggunaan akun layanan baru sink untuk memberikan otorisasi penulisan ke tujuan. Sink Anda akan mulai merutekan entri log saat izin diperbaiki dan entri log baru yang cocok dengan filter Anda diterima oleh Logging.
Masalah kebijakan organisasi terkait sink
Jika Anda mencoba merutekan entri log, tetapi mengalami kebijakan organisasi yang membatasi Logging untuk menulis ke tujuan sink, sink tidak dapat merutekan ke tujuan yang dipilih dan melaporkan error.
Jika Anda melihat error terkait kebijakan organisasi, Anda dapat melakukan hal berikut:
Perbarui kebijakan organisasi untuk tujuan guna menghapus batasan yang memblokir sink agar tidak merutekan entri log; hal ini mengasumsikan bahwa Anda memiliki izin yang sesuai untuk memperbarui kebijakan organisasi.
Anda dapat memeriksa apakah ada Pembatasan Lokasi Resource (
constraints/gcp.resourceLocations). Batasan ini menentukan lokasi tempat data dapat disimpan. Selain itu, beberapa layanan mendukung batasan yang mungkin memengaruhi sink log. Misalnya, ada beberapa batasan yang mungkin berlaku saat tujuan Pub/Sub dipilih. Untuk mengetahui daftar kemungkinan batasan, lihat Batasan kebijakan organisasi.Untuk mengetahui petunjuknya, lihat Membuat dan mengedit kebijakan.
Jika Anda tidak dapat memperbarui kebijakan organisasi, perbarui sink Anda di halaman Log Router untuk menggunakan tujuan yang sesuai.
Sink Anda mulai merutekan entri log saat kebijakan organisasi tidak lagi memblokir sink agar tidak menulis ke tujuan dan entri log baru yang cocok dengan filter Anda diterima oleh Logging.
Masalah kunci enkripsi dengan sink
Jika Anda menggunakan kunci enkripsi, baik yang dikelola dengan Cloud Key Management Service maupun oleh Anda, untuk mengenkripsi data di tujuan sink, Anda mungkin akan melihat error terkait. Berikut beberapa kemungkinan masalah dan cara mengatasinya:
Kunci Cloud KMS tidak dapat ditemukan.
Project Google Cloud yang berisi kunci Cloud KMS yang dikonfigurasi untuk mengenkripsi data tidak ditemukan.
Gunakan kunci Cloud KMS yang valid dari projectGoogle Cloud yang ada.
Lokasi kunci Cloud KMS tidak cocok dengan lokasi tujuan.
Jika project Google Cloud yang berisi kunci Cloud KMS berada di region yang berbeda dengan region tujuan, enkripsi akan gagal dan sink tidak dapat merutekan data ke tujuan tersebut.
Gunakan kunci Cloud KMS yang terdapat dalam project Google Cloud yang regionnya cocok dengan tujuan sink.
Akses kunci enkripsi ditolak untuk akun layanan sink.
Meskipun sink berhasil dibuat dengan izin akun layanan yang benar, pesan error ini akan ditampilkan jika tujuan sink menggunakan kunci enkripsi yang tidak memberikan izin yang memadai kepada akun layanan untuk mengenkripsi atau mendekripsi data.
Berikan peran CryptoKey Encrypter/Decrypter Cloud KMS untuk akun layanan yang ditentukan di kolom
writerIdentitysink untuk kunci yang digunakan di tujuan. Pastikan juga Cloud KMS API diaktifkan.
Masalah kuota dengan sink
Saat sink menulis entri log, kuota ekspor dan tujuan akan berlaku. Bergantung pada tujuan, kuota diterapkan pada resource tempat sink dibuat, seperti untuk Pub/Sub, atau pada tujuan itu sendiri, seperti untuk BigQuery. Jika kuota habis, sink akan berhenti merutekan entri log ke tujuannya.
- Sink yang merutekan entri log ke topik Pub/Sub dibatasi hingga 60 GB/mnt. Jika volume entri log melebihi kuota kapasitas ekspor, entri log dengan kode error
topic_over_quotaakan ditulis.
Kuota juga berlaku untuk sink gabungan. Sink ini merutekan entri log untuk folder atau organisasi tempat sink dibuat, dan untuk resource turunan.
Untuk memperbaiki masalah kehabisan kuota, coba langkah-langkah berikut:
Kurangi jumlah data log yang dirutekan dengan memperbarui filter sink agar cocok dengan lebih sedikit entri log. Anda dapat menggunakan fungsi
sampledalam filter untuk memilih sebagian dari total jumlah entri log.Ajukan permintaan dukungan untuk menambah kuota Anda.
Untuk mengetahui detail tentang batas yang mungkin berlaku saat Anda merutekan entri log, tinjau informasi kuota tujuan yang sesuai:
Error perutean ke bucket Cloud Logging
Anda mungkin mengalami situasi saat Anda dapat melihat entri log di Logs Explorer yang Anda kecualikan dengan sink. Anda masih dapat melihat entri log ini jika salah satu kondisi berikut terpenuhi:
Anda menjalankan kueri di project Google Cloud yang menghasilkan entri log.
Untuk memperbaikinya, pastikan Anda menjalankan kueri di projectGoogle Cloud yang benar.
Entri log yang dikecualikan dikirim ke beberapa bucket log; Anda melihat salinan log yang sama dengan yang ingin Anda kecualikan.
Untuk memperbaikinya, periksa sink Anda di halaman Log Router untuk memastikan Anda tidak menyertakan entri log dalam filter sink lain.
Anda memiliki akses ke tampilan di bucket log tempat entri log dikirim. Dalam hal ini, Anda dapat melihat entri log tersebut secara default.
Agar tidak melihat entri log ini di Logs Explorer, Anda dapat mempersempit cakupan penelusuran ke project atau bucket Google Cloud sumber.
Memecahkan masalah penyimpanan log
Mengapa saya tidak dapat menghapus bucket ini?
Jika Anda mencoba menghapus bucket, lakukan hal berikut:
Pastikan Anda memiliki izin yang benar untuk menghapus bucket. Untuk mengetahui daftar izin yang Anda perlukan, lihat Kontrol akses dengan IAM.
Tentukan apakah bucket dikunci dengan mencantumkan atribut bucket. Jika bucket dikunci, periksa periode retensi bucket. Anda tidak dapat menghapus bucket yang terkunci hingga semua log dalam bucket telah memenuhi periode retensi data bucket.
Akun layanan mana yang merutekan log ke bucket saya?
Untuk menentukan apakah ada akun layanan yang memiliki izin IAM untuk merutekan log ke bucket Anda, lakukan hal berikut:
-
Di konsol Google Cloud , buka halaman IAM:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah IAM & Admin.
Dari tab Permissions, lihat berdasarkan Roles. Anda akan melihat tabel yang berisi semua peran dan akun utama IAM yang terkait dengan projectGoogle Cloud Anda.
Di kotak teks filter_list Filter tabel, masukkan Logs Bucket Writer.
Anda akan melihat akun utama dengan peran Logs Bucket Writer. Jika akun utama adalah akun layanan, ID-nya akan berisi string
.Opsional: Jika Anda ingin menghapus akun layanan agar tidak dapat merutekan log ke project Google Cloud Anda, pilih kotak centang check_box_outline_blank untuk akun layanan, lalu klik Hapus.
Mengapa saya melihat log untuk project Google Cloud meskipun saya mengecualikannya dari sink _Default?
Anda mungkin melihat log di bucket log dalam project Google Cloud terpusat, yang menggabungkan log dari seluruh organisasi Anda.
Jika Anda menggunakan Logs Explorer untuk mengakses log ini dan melihat log yang Anda kecualikan dari sink _Default, tampilan Anda mungkin ditetapkan ke level projectGoogle Cloud .
Untuk memperbaiki masalah ini, pilih Log view di menu Refine scope, lalu pilih tampilan log yang terkait dengan bucket _Default di projectGoogle Cloud Anda. Anda tidak akan melihat log yang dikecualikan lagi.