Dokumen ini menjelaskan cara membuat dan mengelola sink, yang merutekan entri log yang berasal dari project Google Cloud, ke tujuan yang didukung.
Jika tujuan sink bukan bucket log di project Google Cloud tempat entri log berasal, akun layanan diperlukan. Cloud Logging otomatis membuat dan mengelola akun layanan ini; tetapi, Anda mungkin perlu mengubah izin yang diberikan ke akun layanan. Anda dapat membuat dan mengelola akun layanan yang digunakan oleh sink di beberapa project. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi sink log dengan akun layanan yang dikelola pengguna.
Ringkasan
Sinks menentukan cara Cloud Logging merutekan entri log. Dengan menggunakan sink, Anda dapat merutekan beberapa atau semua entri log ke tujuan berikut:
Bucket Cloud Logging: Menyediakan penyimpanan di Cloud Logging. Bucket log dapat menyimpan entri log yang diterima oleh beberapa project Google Cloud. Bucket log dapat berada di project yang sama dengan asal entri log, atau di project yang berbeda. Untuk informasi tentang cara melihat entri log yang disimpan di bucket log, lihat Ringkasan log kueri dan tampilan serta Melihat log yang dirutekan ke bucket Cloud Logging.
Anda dapat menggabungkan data Cloud Logging dengan data lain dengan mengupgrade bucket log untuk menggunakan Log Analytics, lalu membuat set data tertaut, yang merupakan set data hanya baca yang dapat dikueri oleh halaman BigQuery Studio dan Looker Studio.
Set data BigQuery: Menyediakan penyimpanan entri log dalam set data BigQuery yang dapat ditulis. Set data BigQuery dapat berada di project yang sama dengan asal entri log, atau di project yang berbeda. Anda dapat menggunakan kemampuan analisis big data pada entri log yang disimpan. Untuk informasi tentang cara melihat entri log yang dirutekan ke BigQuery, lihat Melihat log yang dirutekan ke BigQuery.
- Bucket Cloud Storage: Menyediakan penyimpanan entri log di Cloud Storage. Bucket Cloud Storage dapat berada dalam project yang sama dengan asal entri log, atau dalam project yang berbeda. Entri log disimpan sebagai file JSON. Untuk mengetahui informasi tentang cara melihat entri log yang dirutekan ke Cloud Storage, lihat artikel Melihat log yang dirutekan ke Cloud Storage.
Topik Pub/Sub: Memberikan dukungan untuk integrasi pihak ketiga. Entri log diformat menjadi JSON, lalu dirutekan ke topik Pub/Sub. Topik dapat berada di project yang sama dengan asal entri log, atau di project yang berbeda. Untuk informasi tentang cara melihat entri log yang dirutekan ke Pub/Sub, lihat Melihat log yang dirutekan ke Pub/Sub.
Project Google Cloud: Merutekan entri log ke project Google Cloud lain. Dalam konfigurasi ini, sink di project tujuan memproses entri log.
Sink adalah bagian dari resource Google Cloud tertentu: project Google Cloud, akun penagihan, folder, atau organisasi. Saat resource menerima entri log, setiap sink dalam resource akan memproses entri log. Jika entri log cocok dengan filter sink, entri log akan dirutekan ke tujuan sink.
Biasanya, sink hanya merutekan entri log yang berasal dari resource. Namun, untuk folder dan organisasi, Anda dapat membuat sink gabungan, yang merutekan entri log dari folder atau organisasi, dan resource yang dikandungnya. Dokumen ini tidak membahas sink gabungan. Untuk informasi selengkapnya, lihat Menggabungkan dan merutekan log tingkat organisasi ke tujuan yang didukung.
Untuk membuat dan mengelola sink, Anda dapat menggunakan konsol Google Cloud, Cloud Logging API, dan Google Cloud CLI. Sebaiknya gunakan konsol Google Cloud:
- Halaman Logs Router mencantumkan semua sink dan menyediakan opsi untuk mengelola sink Anda.
- Saat membuat sink, Anda dapat melihat pratinjau entri log yang cocok dengan filter sink.
- Anda dapat mengonfigurasi tujuan sink saat membuat sink.
- Beberapa langkah otorisasi telah diselesaikan untuk Anda.
Sebelum memulai
Petunjuk dalam dokumen ini menjelaskan cara membuat dan mengelola sink di tingkat project Google Cloud. Anda dapat menggunakan prosedur yang sama untuk membuat sink yang merutekan entri log yang berasal dari organisasi, folder, atau akun penagihan.
Untuk memulai, lakukan hal berikut:
-
Enable the Cloud Logging API.
Pastikan project Google Cloud Anda berisi entri log yang dapat Anda lihat di Logs Explorer.
-
Untuk mendapatkan izin yang diperlukan guna membuat, mengubah, atau menghapus sink, minta administrator untuk memberi Anda peran IAM Logs Configuration Writer (
roles/logging.configWriter
) di project Anda. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Untuk mengetahui informasi tentang cara memberikan peran IAM, lihat Panduan kontrol akses Logging.
Anda memiliki resource di tujuan yang didukung atau memiliki kemampuan untuk membuatnya.
Untuk merutekan entri log ke tujuan, tujuan harus ada sebelum Anda membuat sink. Anda dapat membuat tujuan di project Google Cloud mana pun di organisasi mana pun.
Sebelum membuat sink, tinjau batasan yang berlaku untuk tujuan sink. Untuk mengetahui informasi selengkapnya, lihat bagian Batasan tujuan dalam dokumen ini.
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
REST
Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Untuk informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Google Cloud.
Membuat sink
Berikut adalah petunjuk untuk membuat sink di project Google Cloud. Anda dapat menggunakan prosedur yang sama untuk merutekan entri log yang berasal dari organisasi, folder, atau akun penagihan:
- Anda dapat membuat hingga 200 sink per project Google Cloud.
- Jangan masukkan informasi sensitif dalam filter sink. Filter sink diperlakukan sebagai data layanan.
- Sinker baru ke bucket Cloud Storage mungkin memerlukan waktu beberapa jam untuk mulai merutekan entri log. Sink ke Cloud Storage diproses setiap jam, sedangkan jenis tujuan lainnya diproses secara real time.
Sink tidak dapat merutekan entri log ke set data BigQuery tertaut, yang hanya dapat dibaca. Jika Anda ingin merutekan entri log ke BigQuery, set data tujuan harus mengaktifkan operasi tulis.
Sink tidak menentukan skema untuk set data BigQuery. Sebagai gantinya, entri log pertama yang diterima oleh BigQuery akan menentukan skema untuk tabel tujuan. Untuk mengetahui informasi selengkapnya, lihat Skema BigQuery untuk log yang dirutekan.
Untuk mengetahui informasi tentang cara melihat entri log di tujuan sink, baca Melihat log yang dirutekan ke bucket Cloud Logging.
Untuk melihat jumlah dan volume entri log yang dirutekan, lihat metrik
logging.googleapis.com/exports/
.Jika kueri berisi beberapa pernyataan, Anda dapat menentukan cara pernyataan tersebut digabungkan atau mengandalkan Cloud Logging secara implisit menambahkan batasan konjungtif,
AND
, di antara pernyataan. Misalnya, dialog kueri atau filter berisi dua pernyataan,resource.type = "gce_instance"
danseverity >= "ERROR"
. Kueri sebenarnya adalahresource.type = "gce_instance" AND severity >= "ERROR"
. Cloud Logging mendukung batasan disjungtif,OR
, dan batasan konjungtif,AND
. Saat menggunakan pernyataanOR
, sebaiknya Anda mengelompokkan klausa dengan tanda kurung. Untuk mengetahui informasi selengkapnya, lihat Bahasa kueri logging.
Untuk membuat sink, lakukan hal berikut:
Konsol
-
Di konsol Google Cloud, buka halaman Log Router:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Logging.
Pilih project Google Cloud tempat entri log yang ingin Anda rutekan berasal.
Misalnya, jika Anda ingin merutekan entri log Akses Data dari project bernama
Project-A
ke bucket log dalam project bernamaProject-B
, pilihProject-A
.Pilih Create sink.
Di panel Sink details, masukkan detail berikut:
Nama sink: Berikan ID untuk sink; perhatikan bahwa setelah membuat sink, Anda tidak dapat mengganti namanya, tetapi Anda dapat menghapusnya dan membuat sink baru.
Deskripsi sink (opsional): Jelaskan tujuan atau kasus penggunaan untuk sink.
Di panel Sink destination, pilih layanan sink dan tujuan menggunakan menu Select sink service. Lakukan salah satu hal berikut:
Untuk merutekan entri log ke layanan yang berada dalam project Google Cloud yang sama, pilih salah satu opsi berikut:
- Bucket Cloud Logging: Pilih atau buat Bucket logging.
- Set data BigQuery: Pilih atau buat set data yang dapat ditulis untuk menerima entri log yang dirutekan. Anda juga memiliki opsi untuk menggunakan tabel berpartisi.
- Bucket Cloud Storage: Pilih atau buat bucket Cloud Storage tertentu untuk menerima entri log yang dirutekan.
- Pub/Sub topic: Pilih atau buat topik tertentu untuk menerima entri log yang dirutekan.
- Splunk: Pilih topik Pub/Sub untuk layanan Splunk Anda.
Untuk merutekan entri log ke project Google Cloud yang berbeda, pilih Google Cloud project, lalu masukkan nama yang sepenuhnya memenuhi syarat untuk tujuan. Untuk informasi tentang sintaksis, lihat Format jalur tujuan.
Untuk merutekan entri log ke layanan yang berada di project Google Cloud yang berbeda, lakukan hal berikut:
- Pilih Referensi lainnya.
- Masukkan nama yang sepenuhnya memenuhi syarat untuk tujuan. Untuk informasi tentang sintaksis, lihat Format jalur tujuan.
Tentukan entri log yang akan disertakan:
Buka panel Choose logs to include in sink.
Di kolom Build inclusion filter, masukkan ekspresi filter yang cocok dengan entri log yang ingin Anda sertakan. Untuk mempelajari sintaksis penulisan filter lebih lanjut, lihat Bahasa kueri logging.
Jika Anda tidak menetapkan filter, semua entri log dari resource yang dipilih akan dirutekan ke tujuan.
Misalnya, untuk merutekan semua entri log Akses Data ke bucket Logging, Anda dapat menggunakan filter berikut:
log_id("cloudaudit.googleapis.com/data_access") OR log_id("externalaudit.googleapis.com/data_access")
Panjang filter tidak boleh melebihi 20.000 karakter.
Untuk memverifikasi bahwa Anda memasukkan filter yang benar, pilih Pratinjau log. Logs Explorer akan terbuka di tab baru dengan filter yang telah diisi sebelumnya.
(Opsional) Konfigurasikan filter pengecualian untuk menghapus beberapa entri log yang disertakan:
Buka panel Choose logs to filter out of sink.
Di kolom Nama filter pengecualian, masukkan nama.
Di kolom Build an exclusion filter, masukkan filter expression yang cocok dengan entri log yang ingin Anda kecualikan. Anda juga dapat menggunakan fungsi
sample
untuk memilih sebagian entri log yang akan dikecualikan.
Anda dapat membuat hingga 50 filter pengecualian per sink. Perhatikan bahwa panjang filter tidak boleh melebihi 20.000 karakter.
Pilih Create sink.
Berikan izin kepada akun layanan untuk sink agar dapat menulis entri log ke tujuan sink Anda. Untuk mengetahui informasi selengkapnya, lihat Menetapkan izin tujuan.
gcloud
Untuk membuat sink, lakukan hal berikut:
Jalankan perintah
gcloud logging sinks create
berikut:gcloud logging sinks create SINK_NAME SINK_DESTINATION
Sebelum menjalankan perintah, buat penggantian berikut:
- SINK_NAME: Nama sink log. Anda tidak dapat mengubah nama sink setelah membuatnya.
SINK_DESTINATION: Layanan atau project tempat Anda ingin merutekan entri log. Tetapkan SINK_DESTINATION dengan jalur yang sesuai, seperti yang dijelaskan dalam Format jalur tujuan.
Misalnya, jika tujuan sink Anda adalah topik Pub/Sub, SINK_DESTINATION akan terlihat seperti berikut:
pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
Anda juga dapat memberikan opsi berikut:
--log-filter
: Gunakan opsi ini untuk menetapkan filter yang cocok dengan entri log yang ingin Anda sertakan dalam sink. Jika Anda tidak memberikan nilai untuk filter inklusi, filter ini akan cocok dengan semua entri log.--exclusion
: Gunakan opsi ini untuk menetapkan filter pengecualian untuk entri log yang ingin Anda kecualikan dari perutean sink. Anda juga dapat menggunakan fungsisample
untuk memilih sebagian entri log yang akan dikecualikan. Opsi ini dapat diulang; Anda dapat membuat hingga 50 filter pengecualian per sink.--description
: Gunakan opsi ini untuk menjelaskan tujuan atau kasus penggunaan untuk sink.
Misalnya, untuk membuat sink ke bucket Logging, perintah Anda mungkin terlihat seperti ini:
gcloud logging sinks create my-sink logging.googleapis.com/projects/myproject123/locations/global/buckets/my-bucket \ --log-filter='logName="projects/myproject123/logs/matched"' --description="My first sink"
Untuk mengetahui informasi selengkapnya tentang cara membuat sink menggunakan Google Cloud CLI, lihat referensi
gcloud logging sinks
.Jika respons perintah berisi kunci JSON berlabel
"writerIdentity"
, berikan izin akun layanan sink untuk menulis ke tujuan sink. Untuk mengetahui informasi selengkapnya, lihat Menetapkan izin tujuan.Anda tidak perlu menetapkan izin tujuan jika respons tidak berisi kunci JSON berlabel
"writerIdentity"
.
REST
Untuk membuat sink logging di project Google Cloud, gunakan
projects.sinks.create
di Logging API. Dalam objekLogSink
, berikan nilai yang diperlukan dalam isi permintaan metode:name
: ID untuk sink. Perhatikan bahwa setelah membuat sink, Anda tidak dapat mengganti namanya, tetapi Anda dapat menghapusnya dan membuat sink baru.destination
: Layanan dan tujuan tempat Anda ingin rute entri log. Untuk merutekan entri log ke project lain, atau ke tujuan yang berada di project lain, tetapkan kolomdestination
dengan jalur yang sesuai, seperti yang dijelaskan dalam Format jalur tujuan.Misalnya, jika tujuan sink Anda adalah topik Pub/Sub,
destination
akan terlihat seperti berikut:pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
Dalam objek
LogSink
, berikan informasi opsional yang sesuai:filter
: Tetapkan kolomfilter
agar cocok dengan entri log yang ingin Anda sertakan dalam sink. Jika Anda tidak menetapkan filter, semua entri log dari project Google Cloud Anda akan dirutekan ke tujuan. Perhatikan bahwa panjang filter tidak boleh melebihi 20.000 karakter.exclusions
: Tetapkan kolom ini agar cocok dengan entri log yang ingin Anda kecualikan dari sink. Anda juga dapat menggunakan fungsisample
untuk memilih sebagian entri log yang akan dikecualikan. Anda dapat membuat hingga 50 filter pengecualian per sink.description
: Tetapkan kolom ini untuk menjelaskan tujuan atau kasus penggunaan untuk sink.
Panggil
projects.sinks.create
untuk membuat sink.Jika respons API berisi kunci JSON berlabel
"writerIdentity"
, berikan izin akun layanan sink untuk menulis ke tujuan sink. Untuk mengetahui informasi selengkapnya, lihat Menetapkan izin tujuan.Anda tidak perlu menetapkan izin tujuan jika respons API tidak berisi kunci JSON berlabel
"writerIdentity"
.
Untuk informasi selengkapnya tentang cara membuat sink menggunakan Logging API, lihat referensi
LogSink
.Jika Anda menerima notifikasi error, lihat Memecahkan masalah pemilihan rute dan sink.
Format jalur tujuan
Jika merutekan entri log ke layanan yang berada di project lain, Anda harus memberikan sink dengan nama yang sepenuhnya memenuhi syarat untuk layanan tersebut. Demikian pula, jika Anda merutekan entri log ke project Google Cloud yang berbeda, Anda harus memberikan sink dengan nama project tujuan yang sepenuhnya memenuhi syarat:
Bucket log Cloud Logging:
logging.googleapis.com/projects/DESTINATION_PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME
Project Google Cloud lainnya:
logging.googleapis.com/projects/DESTINATION_PROJECT_ID
Set data BigQuery:
bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID
Cloud Storage:
storage.googleapis.com/BUCKET_NAME
Topik Pub/Sub:
pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
Mengelola sink
Setelah sink dibuat, Anda dapat melakukan tindakan berikut pada sink tersebut. Setiap perubahan yang dilakukan pada sink mungkin memerlukan waktu beberapa menit untuk diterapkan:
- Lihat detail
- Perbarui
Nonaktifkan
- Anda tidak dapat menonaktifkan sink
_Required
. - Anda dapat menonaktifkan sink
_Default
untuk menghentikannya merutekan entri log ke bucket Logging_Default
. - Jika Anda ingin menonaktifkan sink
_Default
untuk project atau folder Google Cloud baru yang dibuat di organisasi, sebaiknya konfigurasikan setelan resource default.
- Anda tidak dapat menonaktifkan sink
Hapus
- Anda tidak dapat menghapus sink
_Default
atau_Required
. - Jika Anda menghapus sink, sink tersebut tidak lagi merutekan entri log.
- Jika sink memiliki akun layanan khusus, menghapus sink tersebut juga akan menghapus akun layanan. Sink yang dibuat sebelum 22 Mei 2023 memiliki akun layanan khusus. Sink yang dibuat pada atau setelah 22 Mei 2023 memiliki akun layanan bersama. Menghapus sink tidak akan menghapus akun layanan bersama.
- Anda tidak dapat menghapus sink
Memecahkan masalah kegagalan
- Melihat volume log dan tingkat error
Berikut adalah petunjuk untuk mengelola sink di project Google Cloud. Sebagai ganti project Google Cloud, Anda dapat menentukan akun penagihan, folder, atau organisasi:
Konsol
-
Di konsol Google Cloud, buka halaman Log Router:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Logging.
Di toolbar, pilih resource yang berisi sink Anda. Resource dapat berupa project, folder, organisasi, atau akun penagihan.
Halaman Log Router menampilkan sink di resource yang dipilih. Setiap baris tabel berisi informasi tentang properti sink:
- Enabled: Menunjukkan apakah status sink diaktifkan atau dinonaktifkan.
- Jenis: Layanan tujuan sink; misalnya,
Cloud Logging bucket
. - Nama: ID sink, seperti yang diberikan saat sink dibuat;
misalnya
_Default
. - Deskripsi: Deskripsi sink, seperti yang diberikan saat sink dibuat.
- Destination: Nama lengkap tujuan tempat entri log yang dirutekan dikirim.
- Created: Tanggal dan waktu sink dibuat.
- Terakhir diperbarui: Tanggal dan waktu terakhir kali sink diedit.
Untuk setiap baris tabel, menu Tindakan lainnya more_vert memberikan opsi berikut:
- Lihat detail sink: Menampilkan nama, deskripsi, layanan tujuan, tujuan, serta filter penyertaan dan pengecualian sink. Memilih Edit akan membuka panel Edit Sink.
- Edit sink: Membuka panel Edit Sink tempat Anda dapat memperbarui parameter sink.
- Disable sink: Memungkinkan Anda menonaktifkan sink dan berhenti merutekan entri log ke tujuan sink. Untuk informasi selengkapnya tentang menonaktifkan sink, lihat Berhenti menyimpan log di bucket log.
- Aktifkan sink: Memungkinkan Anda mengaktifkan sink yang dinonaktifkan dan memulai ulang entri log rute ke tujuan sink.
- Hapus sink: Memungkinkan Anda menghapus sink dan berhenti merutekan entri log ke tujuan sink.
- Pecahkan masalah sink: Membuka Logs Explorer tempat Anda dapat memecahkan masalah error pada sink.
- Melihat volume log dan tingkat error sink: Membuka Penjelajah Metrik tempat Anda dapat melihat dan menganalisis data dari sink.
Untuk mengurutkan tabel berdasarkan kolom, pilih nama kolom.
gcloud
Untuk melihat daftar sink untuk project Google Cloud, gunakan perintah
gcloud logging sinks list
, yang sesuai dengan metode Logging APIprojects.sinks.list
:gcloud logging sinks list
Untuk melihat daftar sink gabungan, gunakan opsi yang sesuai untuk menentukan resource yang berisi sink. Misalnya, jika Anda membuat sink di tingkat organisasi, gunakan opsi
--organization=ORGANIZATION_ID
untuk mencantumkan sink untuk organisasi.Untuk mendeskripsikan sink, gunakan perintah
gcloud logging sinks describe
, yang sesuai dengan metode Logging APIprojects.sinks.get
:gcloud logging sinks describe SINK_NAME
Untuk memperbarui sink, gunakan perintah
gcloud logging sinks update
, yang sesuai dengan metode APIprojects.sink.update
.Anda dapat memperbarui sink untuk mengubah tujuan, filter, dan deskripsi, atau untuk menonaktifkan atau mengaktifkan kembali sink:
gcloud logging sinks update SINK_NAME NEW_DESTINATION --log-filter=NEW_FILTER
Hapus NEW_DESTINATION atau
--log-filter
jika bagian tersebut tidak berubah.Misalnya, untuk memperbarui tujuan sink yang bernama
my-project-sink
ke tujuan bucket Cloud Storage baru yang bernamamy-second-gcs-bucket
, perintah Anda akan terlihat seperti ini:gcloud logging sinks update my-project-sink storage.googleapis.com/my-second-gcs-bucket
Untuk menonaktifkan sink, gunakan perintah
gcloud logging sinks update
, yang sesuai dengan metode APIprojects.sink.update
, dan sertakan opsi--disabled
:gcloud logging sinks update SINK_NAME --disabled
Untuk mengaktifkan kembali sink, gunakan perintah
gcloud logging sinks update
, hapus opsi--disabled
, dan sertakan opsi--no-disabled
:gcloud logging sinks update SINK_NAME --no-disabled
Untuk menghapus sink, gunakan perintah
gcloud logging sinks delete
, yang sesuai dengan metode APIprojects.sinks.delete
:gcloud logging sinks delete SINK_NAME
Untuk mengetahui informasi selengkapnya tentang cara mengelola sink menggunakan Google Cloud CLI, lihat referensi
gcloud logging sinks
.
REST
Untuk melihat sink untuk project Google Cloud Anda, panggil
projects.sinks.list
.Untuk melihat detail sink, panggil
projects.sinks.get
.Untuk memperbarui sink, panggil
projects.sink.update
.Anda dapat memperbarui tujuan, filter, dan deskripsi sink. Anda juga dapat menonaktifkan atau mengaktifkan kembali sink.
Untuk menonaktifkan sink, tetapkan kolom
disabled
dalam objekLogSink
ketrue
, lalu panggilprojects.sink.update
.Untuk mengaktifkan kembali sink, tetapkan kolom
disabled
di objekLogSink
kefalse
, lalu panggilprojects.sink.update
.Untuk menghapus sink, panggil
projects.sinks.delete
.Untuk informasi selengkapnya tentang cara mengelola sink menggunakan Logging API, lihat referensi
LogSink
.
Berhenti menyimpan entri log di bucket log
Anda dapat menonaktifkan sink
_Default
dan sink yang ditentukan pengguna. Saat Anda menonaktifkan sink, sink akan berhenti merutekan entri log ke tujuannya. Misalnya, jika Anda menonaktifkan sink_Default
, tidak ada entri log yang dirutekan ke bucket_Default
. Bucket_Default
menjadi kosong saat semua entri log yang disimpan sebelumnya telah memenuhi periode retensi bucket.Petunjuk berikut mengilustrasikan cara menonaktifkan sink project Google Cloud yang merutekan entri log ke bucket log
_Default
:Konsol
-
Di konsol Google Cloud, buka halaman Log Router:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Logging.
- Untuk menemukan semua sink yang merutekan entri log ke bucket log
_Default
, filter sink menurut tujuan, lalu masukkan_Default
. Untuk setiap sink, pilih more_vert Menu, lalu pilih Nonaktifkan sink.
Sink kini dinonaktifkan dan sink project Google Cloud Anda tidak lagi merutekan entri log ke bucket
_Default
.
Untuk mengaktifkan kembali sink yang dinonaktifkan dan memulai ulang entri log pemilihan rute ke tujuan sink, lakukan hal berikut:
-
Di konsol Google Cloud, buka halaman Log Router:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Logging.
- Untuk menemukan semua sink yang merutekan entri log ke bucket log
_Default
, filter sink menurut tujuan, lalu masukkan_Default
. - Untuk setiap sink, pilih more_vert Menu, lalu pilih Aktifkan sink.
gcloud
Untuk melihat daftar sink untuk project Google Cloud, gunakan perintah
gcloud logging sinks list
, yang sesuai dengan metode Logging APIprojects.sinks.list
:gcloud logging sinks list
Identifikasi sink yang merutekan ke bucket log
_Default
. Untuk mendeskripsikan sink, termasuk melihat nama tujuan, gunakan perintahgcloud logging sinks describe
, yang sesuai dengan metode Logging APIprojects.sinks.get
:gcloud logging sinks describe SINK_NAME
Jalankan perintah
gcloud logging sinks update
dan sertakan opsi--disabled
. Misalnya, untuk menonaktifkan sink_Default
, gunakan perintah berikut:gcloud logging sinks update _Default --disabled
Sink
_Default
kini dinonaktifkan; sink ini tidak lagi merutekan entri log ke bucket log_Default
.
Untuk menonaktifkan sink lain di project Google Cloud Anda yang merutekan ke bucket
_Default
, ulangi langkah-langkah sebelumnya.Untuk mengaktifkan kembali sink, gunakan perintah
gcloud logging sinks update
, hapus opsi--disabled
, dan sertakan opsi--no-disabled
:gcloud logging sinks update _Default --no-disabled
REST
Untuk melihat sink untuk project Google Cloud Anda, panggil metode Logging API
projects.sinks.list
.Identifikasi sink yang merutekan ke bucket
_Default
.Misalnya, untuk menonaktifkan sink
_Default
, tetapkan kolomdisabled
dalam objekLogSink
ketrue
, lalu panggilprojects.sink.update
.Sink
_Default
kini dinonaktifkan; sink ini tidak lagi merutekan entri log ke bucket_Default
.
Untuk menonaktifkan sink lain di project Google Cloud Anda yang merutekan ke bucket
_Default
, ulangi langkah-langkah sebelumnya.Untuk mengaktifkan kembali sink, tetapkan kolom
disabled
dalam objekLogSink
kefalse
, lalu panggilprojects.sink.update
.Menetapkan izin tujuan
Bagian ini menjelaskan cara memberikan izin Identity and Access Management ke Logging untuk menulis entri log ke tujuan sink Anda. Untuk mengetahui daftar lengkap peran dan izin Logging, lihat Kontrol akses.
Cloud Logging membuat akun layanan bersama untuk resource saat sink dibuat, kecuali jika akun layanan yang diperlukan sudah ada. Akun layanan mungkin ada karena akun layanan yang sama digunakan untuk semua sink di resource pokok. Resource dapat berupa project Google Cloud, organisasi, folder, atau akun penagihan.
Identitas penulis sink adalah ID akun layanan yang terkait dengan sink tersebut. Semua sink memiliki identitas penulis kecuali untuk sink yang menulis ke bucket log dalam project Google Cloud yang sama dengan tempat entri log berasal. Untuk konfigurasi terakhir, akun layanan tidak diperlukan sehingga kolom identitas penulis sink tercantum sebagai
None
di konsol. API dan perintah Google Cloud CLI tidak melaporkan identitas penulis.Petunjuk berikut berlaku untuk project, folder, organisasi, dan akun penagihan:
Konsol
Pastikan Anda memiliki akses Pemilik di project Google Cloud yang berisi tujuan. Jika Anda tidak memiliki akses Pemilik ke tujuan sink, minta pemilik project untuk menambahkan identitas penulis sebagai akun utama.
Untuk mendapatkan identitas penulis sink—alamat email—dari sink baru, lakukan hal berikut:
-
Di konsol Google Cloud, buka halaman Log Router:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Logging.
- Di toolbar, pilih project yang berisi sink.
- Pilih more_vert Menu, lalu pilih Lihat detail sink. Identitas penulis muncul di panel Sink details.
-
Jika nilai kolom
writerIdentity
berisi alamat email, lanjutkan ke langkah berikutnya. Jika nilainyaNone
, Anda tidak perlu mengonfigurasi izin tujuan untuk sink.Salin identitas penulis sink ke papan klip Anda.
Jika tujuan adalah layanan dalam project yang berbeda, atau jika merupakan project lain, pilih project tujuan di toolbar.
Tambahkan akun layanan sebagai akun utama IAM di project tujuan:
-
Di konsol Google Cloud, buka halaman IAM:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah IAM & Admin.
Pilih project tujuan.
Klik
Berikan akses.Berikan peran IAM yang diperlukan kepada akun layanan:
- Untuk tujuan Cloud Storage, tambahkan identitas penulis sink sebagai akun utama menggunakan IAM, lalu berikan peran Storage Object Creator (
roles/storage.objectCreator
). - Untuk tujuan BigQuery, tambahkan identitas penulis sink sebagai akun utama menggunakan IAM, lalu berikan peran BigQuery Data Editor (
roles/bigquery.dataEditor
). - Untuk tujuan Pub/Sub, termasuk Splunk, tambahkan identitas penulis sink sebagai akun utama menggunakan IAM, lalu berikan peran Pub/Sub Publisher (
roles/pubsub.publisher
). - Untuk tujuan bucket Logging di project Google Cloud yang berbeda, tambahkan identitas penulis sink sebagai akun utama menggunakan IAM, lalu berikan peran Penulis Bucket Log (
roles/logging.bucketWriter
). - Untuk tujuan project Google Cloud, tambahkan identitas penulis sink sebagai akun utama menggunakan IAM, lalu berikan peran Penulis Log (
roles/logging.logWriter
). Secara khusus, akun utama memerlukan izinlogging.logEntries.route
.
- Untuk tujuan Cloud Storage, tambahkan identitas penulis sink sebagai akun utama menggunakan IAM, lalu berikan peran Storage Object Creator (
-
gcloud
Pastikan Anda memiliki akses Pemilik di project Google Cloud yang berisi tujuan. Jika Anda tidak memiliki akses Pemilik ke tujuan sink, minta pemilik project untuk menambahkan identitas penulis sebagai akun utama.
Dapatkan akun layanan dari kolom
writerIdentity
di sink Anda:gcloud logging sinks describe SINK_NAME
Temukan sink yang izinnya ingin Anda ubah, dan jika detail sink berisi baris dengan
writerIdentity
, lanjutkan ke langkah berikutnya. Jika detail tidak menyertakan kolomwriterIdentity
, Anda tidak perlu mengonfigurasi izin tujuan untuk sink.Identitas penulis untuk akun layanan terlihat mirip dengan hal berikut:
serviceAccount:service-123456789012@gcp-sa-logging.
Tambahkan akun layanan sebagai akun utama IAM di project tujuan:
Sebelum menggunakan perintah berikut, buat penggantian berikut:
- PROJECT_ID: ID project.
- PRINCIPAL: ID untuk akun utama yang ingin Anda berikan peran. ID utama biasanya memiliki bentuk berikut:
PRINCIPAL-TYPE:ID
. Misalnya,user:my-user@example.com
. Untuk mengetahui daftar lengkap format yang dapat dimilikiPRINCIPAL
, lihat ID utama. ROLE: Peran IAM.
- Untuk tujuan Cloud Storage, tambahkan identitas penulis sink sebagai akun utama menggunakan IAM, lalu berikan peran Storage Object Creator (
roles/storage.objectCreator
). - Untuk tujuan BigQuery, tambahkan identitas penulis sink sebagai akun utama menggunakan IAM, lalu berikan peran BigQuery Data Editor (
roles/bigquery.dataEditor
). - Untuk tujuan Pub/Sub, termasuk Splunk, tambahkan identitas penulis sink sebagai akun utama menggunakan IAM, lalu berikan peran Pub/Sub Publisher (
roles/pubsub.publisher
). - Untuk tujuan bucket Logging di project Google Cloud yang berbeda, tambahkan identitas penulis sink sebagai akun utama menggunakan IAM, lalu berikan peran Penulis Bucket Log (
roles/logging.bucketWriter
). - Untuk tujuan project Google Cloud, tambahkan identitas penulis sink sebagai akun utama menggunakan IAM, lalu berikan peran Penulis Log (
roles/logging.logWriter
). Secara khusus, akun utama memerlukan izinlogging.logEntries.route
.
- Untuk tujuan Cloud Storage, tambahkan identitas penulis sink sebagai akun utama menggunakan IAM, lalu berikan peran Storage Object Creator (
Jalankan perintah
gcloud projects add-iam-policy-binding
:gcloud projects add-iam-policy-binding PROJECT_ID --member=PRINCIPAL --role=ROLE
REST
Sebaiknya gunakan konsol Google Cloud atau Google Cloud CLI untuk memberikan peran ke akun layanan.
Batasan tujuan iklan
Bagian ini menjelaskan batasan khusus tujuan:
- Jika Anda merutekan entri log ke bucket log di project Google Cloud lain, Pelaporan Error tidak akan menganalisis entri log tersebut. Untuk mengetahui informasi selengkapnya, lihat Ringkasan Pelaporan Error.
- Jika Anda merutekan entri log ke BigQuery, set data BigQuery harus mengaktifkan operasi tulis. Anda tidak dapat merutekan entri log ke set data tertaut, yang bersifat hanya baca.
Batasan berikut berlaku saat Anda merutekan entri log ke project Google Cloud yang berbeda:
Ada batas satu hop.
Misalnya, jika Anda merutekan entri log dari project
A
ke projectB
, Anda tidak dapat merutekan entri log dari projectB
ke project lain.Log audit tidak dirutekan ke bucket log
_Required
di project tujuan.Misalnya, jika Anda merutekan entri log dari project
A
ke projectB
, bucket log_Required
di projectA
akan berisi log audit untuk projectA
. Log audit untuk projectA
tidak dirutekan ke projectB
. Untuk merutekan entri log ini, buat sink yang tujuannya adalah bucket log.Jika project tujuan berada di folder atau organisasi yang berbeda, sink gabungan di folder atau organisasi tersebut tidak akan merutekan entri log.
Misalnya, project
A
berada di folderX
. Jika entri log berasal dari projectA
, entri log akan diproses oleh sink gabungan di folderX
dan sink di projectA
. Sekarang, misalkan projectA
berisi sink yang merutekan entri lognya ke projectB
, yang ada di folderY
. Entri log dari projectA
melewati sink di projectB
; namun, entri log tersebut tidak melewati sink gabungan di folderY
.
Untuk menggunakan Penjelajah Log guna melihat entri log yang dirutekan ke project dengan menggunakan sink gabungan, tetapkan kolom Refine scope ke cakupan penyimpanan, lalu pilih tampilan log yang memberikan akses ke entri log tersebut.
Contoh kode
Untuk menggunakan kode library klien guna mengonfigurasi sink dalam bahasa yang Anda pilih, lihat Mencatat log library klien: Log sink.
Contoh filter
Berikut adalah beberapa contoh filter yang sangat berguna saat membuat sink. Untuk contoh tambahan yang mungkin berguna saat Anda membuat filter penyertaan dan filter pengecualian, lihat Contoh kueri.
Memulihkan filter sink
_Default
Jika mengedit filter untuk sink
_Default
, Anda mungkin ingin memulihkan sink ini ke konfigurasi aslinya. Saat dibuat, sink_Default
dikonfigurasi dengan filter inklusi berikut dan filter pengecualian kosong:NOT log_id("cloudaudit.googleapis.com/activity") AND NOT \ log_id("externalaudit.googleapis.com/activity") AND NOT \ log_id("cloudaudit.googleapis.com/system_event") AND NOT \ log_id("externalaudit.googleapis.com/system_event") AND NOT \ log_id("cloudaudit.googleapis.com/access_transparency") AND NOT \ log_id("externalaudit.googleapis.com/access_transparency")
Mengecualikan log pod dan container Google Kubernetes Engine
Untuk mengecualikan entri log pod dan container Google Kubernetes Engine untuk
namespaces
sistem GKE, gunakan filter berikut:resource.type = ("k8s_container" OR "k8s_pod") resource.labels.namespace_name = ( "cnrm-system" OR "config-management-system" OR "gatekeeper-system" OR "gke-connect" OR "gke-system" OR "istio-system" OR "knative-serving" OR "monitoring-system" OR "kube-system")
Untuk mengecualikan entri log node Google Kubernetes Engine untuk sistem GKE
logNames
, gunakan filter berikut:resource.type = "k8s_node" logName:( "logs/container-runtime" OR "logs/docker" OR "logs/kube-container-runtime-monitor" OR "logs/kube-logrotate" OR "logs/kube-node-configuration" OR "logs/kube-node-installation" OR "logs/kubelet" OR "logs/kubelet-monitor" OR "logs/node-journal" OR "logs/node-problem-detector")
Untuk melihat volume entri log node, pod, dan container Google Kubernetes Engine yang disimpan di bucket log, gunakan Metrics Explorer:
Mengecualikan log Dataflow yang tidak diperlukan untuk dukungan
Untuk mengecualikan entri log Dataflow yang tidak diperlukan untuk dukungan, gunakan filter berikut:
resource.type="dataflow_step" labels."dataflow.googleapis.com/log_type"!="system" AND labels."dataflow.googleapis.com/log_type"!="supportability"
Untuk melihat volume log Dataflow yang disimpan di bucket log, gunakan Metrics Explorer.
Dukungan
Meskipun Cloud Logging memungkinkan Anda mengecualikan entri log dan mencegahnya disimpan di bucket log, sebaiknya simpan entri log yang membantu dukungan. Menggunakan entri log ini dapat membantu Anda memecahkan masalah dan mengidentifikasi masalah pada aplikasi Anda.
Misalnya, entri log sistem GKE berguna untuk memecahkan masalah aplikasi dan cluster GKE karena dihasilkan untuk peristiwa yang terjadi di cluster Anda. Entri log ini dapat membantu Anda menentukan apakah kode aplikasi atau cluster GKE yang mendasarinya menyebabkan error aplikasi. Log sistem GKE juga mencakup Logging Audit Kubernetes yang dihasilkan oleh komponen Server Kubernetes API, yang mencakup perubahan yang dilakukan menggunakan perintah kubectl dan peristiwa Kubernetes.
Untuk Dataflow, sebaiknya Anda setidaknya menulis log sistem (
labels."dataflow.googleapis.com/log_type"="system"
) dan log dukungan (labels."dataflow.googleapis.com/log_type"="supportability"
) ke bucket log. Log ini sangat penting bagi developer untuk mengamati dan memecahkan masalah pipeline Dataflow mereka, dan pengguna mungkin tidak dapat menggunakan halaman Detail tugas Dataflow untuk melihat log tugas.Langkah selanjutnya
Jika Anda mengalami masalah saat menggunakan sink untuk merutekan entri log, lihat Memecahkan masalah log pemilihan rute.
Untuk mempelajari cara melihat entri log di tujuannya, serta cara log diformat dan diatur, lihat Melihat log di tujuan sink.
Untuk mempelajari lebih lanjut cara membuat kueri dan memfilter dengan bahasa kueri Logging, lihat Bahasa kueri logging.
Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2024-12-21 UTC.