Anda dapat menggunakan Cloud Logging untuk merutekan entri log dari layanan Google Cloud , aplikasi, dan penyedia cloud lainnya ke tujuan untuk penyimpanan, analisis, dan ekspor pihak ketiga.
Secara default, Cloud Logging merutekan semua entri log ke bucket log di project, folder, atau organisasi tempat entri log tersebut berasal. Namun, Anda dapat mengonfigurasi sink log untuk merutekan data log ke bucket kustom atau Pub/Sub. Pub/Sub mendukung ekspor data Anda ke alat pihak ketiga.
Merutekan versus mengekspor entri log
Pemilihan rute adalah proses memindahkan entri log yang diterima oleh project, folder, atau organisasi Google Cloud ke tujuan. Tujuan adalah layanan yang memproses entri log yang diterima dan melakukan tindakan. Misalnya, Anda dapat merutekan entri log ke bucket log. Tujuan ini memindai entri log untuk mencari informasi error, lalu menulisnya ke penyimpanan.
Mengekspor adalah proses memindahkan entri log dari Google Cloud ke lokasi eksternal. Misalnya, Anda dapat merutekan entri log ke Pub/Sub, lalu mengekspornya ke alat pihak ketiga.
Cloud Logging menggunakan sink log untuk merutekan entri log ke tujuan. Secara default, entri log Anda dirutekan ke salah satu dari dua bucket log di project, folder, atau organisasiGoogle Cloud Anda. Anda dapat membuat sink log untuk merutekan data log ke tujuan lain. Anda juga dapat mengubah salah satu sink log yang dibuat sistem. Dokumen ini menjelaskan opsi tersebut.
Logs Explorer memungkinkan Anda mendownload entri log yang disimpan di bucket log ke penyimpanan lokal. Namun, opsi download dibatasi hingga 10.000 entri log. Untuk mengekspor entri log Anda dari Google Cloud, konfigurasikan sink log untuk merutekan entri log yang masuk ke Pub/Sub, lalu ekspor data tersebut dari Google Cloud.
Tentang Router Log
Setiap Google Cloud project, akun penagihan, folder, dan organisasi memiliki Router Log, yang mengelola aliran entri log melalui sink level resource. Router Log juga mengelola alur entri log melalui sink yang berada dalam hierarki resource entri. Sink mengontrol cara entri log dirutekan ke tujuan.
Router Log menyimpan entri log untuk sementara. Perilaku ini melindungi dari gangguan dan pemadaman layanan sementara yang mungkin terjadi saat entri log mengalir melalui sink. Penyimpanan sementara tidak melindungi dari error konfigurasi.
Penyimpanan sementara Router Log berbeda dengan penyimpanan jangka panjang yang disediakan oleh bucket Logging.
Entri log masuk dengan stempel waktu yang lebih dari periode retensi log di masa lalu atau yang lebih dari 24 jam di masa mendatang akan dihapus.
Tentang sink log
Saat menerima entri log, sink log akan menentukan apakah akan mengabaikan atau merutekan entri log ke tujuan sink. Sink log membandingkan entri log dengan filternya untuk membuat keputusan ini. Tujuan sink dapat berupa project, lokasi penyimpanan, atau layanan seperti Pub/Sub. Misalnya, sink dapat merutekan entri log ke bucket log.
Sink log termasuk dalam Google Cloud resource: Google Cloud project, akun penagihan, folder, dan organisasi tertentu. Resource ini juga berisi beberapa sink log. Saat resource menerima entri log, setiap sink log dalam resource tersebut akan mengevaluasinya secara independen. Akibatnya, beberapa sink log dapat merutekan entri log yang sama.
Secara default, data log disimpan di project tempat data berasal. Namun, ada beberapa alasan mengapa Anda mungkin ingin mengubah konfigurasi ini:
- Untuk memusatkan penyimpanan data log Anda.
- Untuk menggabungkan data log Anda dengan data bisnis lainnya.
- Untuk mengatur data log Anda dengan cara yang berguna bagi Anda.
- Untuk menstreaming log Anda ke aplikasi lain, repositori lain, atau pihak ketiga. Misalnya, Anda mungkin ingin mengekspor log dari Google Cloud agar dapat melihatnya di platform pihak ketiga. Untuk mengekspor entri log, buat sink log yang merutekan entri log Anda ke Pub/Sub.
Sink log yang salah dikonfigurasi tidak akan merutekan entri log. Jika sink salah dikonfigurasi, entri log yang melaporkan detail error akan ditulis. Selain itu, email akan dikirim ke Kontak Penting untuk resource tersebut. Untuk mengetahui informasi selengkapnya, lihat Memecahkan masalah: Melihat error.
Sink log tidak dapat merutekan entri log secara retroaktif. Artinya, sink log tidak dapat merutekan entri log yang diterima sebelum sink dibuat. Demikian pula, jika sink salah dikonfigurasi, sink hanya akan merutekan entri log yang masuk setelah error konfigurasi diselesaikan.
Dukungan untuk organisasi dan folder
Untuk membantu Anda mengelola data log dalam organisasi atau folder, Anda dapat melakukan hal berikut:
Anda dapat membuat sink gabungan, yang merutekan entri log untuk organisasi atau folder dan turunannya, ke tujuan yang ditentukan oleh sink. Ada dua jenis sink gabungan:
- Sink gabungan yang tidak mengintersepsi
- Mengintersepsi sink gabungan
Sink intersepsi dapat mengganti perilaku pemilihan rute untuk resource yang lebih rendah dalam hierarki. Sink non-intersepsi tidak memengaruhi pemilihan rute untuk resource lain. Jika sink intersepsi dalam resource cocok dengan entri log, entri log tersebut tidak akan dikirim ke sink dalam resource turunan, dengan pengecualian bahwa entri log selalu dikirim ke sink log
_Requireddalam resource tempat entri log berasal.Anda dapat mengonfigurasi setelan resource default untuk Cloud Logging guna menentukan konfigurasi sink
_Defaultyang dibuat sistem untuk resource baru dalam organisasi atau folder. Misalnya, Anda dapat menggunakan setelan ini untuk menonaktifkan sink_Defaultatau menentukan filter di sink tersebut.
Contoh pemilihan rute
Bagian ini menggambarkan bagaimana entri log yang berasal dari sebuah project dapat mengalir melalui sink dalam hierarki resource-nya.
Contoh: Tidak ada sink gabungan
Jika tidak ada sink gabungan dalam hierarki resource entri log, entri log akan dikirim ke sink log dalam project tempat entri log berasal. Sink level project merutekan entri log ke tujuan sink saat entri log cocok dengan filter penyertaan sink, tetapi tidak cocok dengan filter pengecualian sink.
Contoh: Sink gabungan non-intersepsi ada
Asumsikan bahwa sink gabungan yang tidak mengintersepsi ada dalam hierarki resource untuk entri log. Setelah Router Log mengirim entri log ke sink gabungan yang tidak mencegat, hal berikut akan terjadi:
Sink gabungan non-intersepsi merutekan entri log ke tujuan sink saat entri log cocok dengan filter penyertaan, tetapi tidak cocok dengan filter pengecualian apa pun.
Router Log mengirimkan entri log ke sink log dalam project tempat entri log berasal.
Sink level project merutekan entri log ke tujuan sink saat entri log cocok dengan filter penyertaan sink, tetapi tidak cocok dengan filter pengecualian sink.
Contoh: Sink gabungan yang mengintersepsi ada
Asumsikan bahwa sink gabungan yang mengintersepsi ada dalam hierarki resource untuk entri log. Setelah Router Log mengirimkan entri log ke sink gabungan yang mencegat, salah satu hal berikut akan terjadi:
Entri log cocok dengan filter penyertaan, tetapi tidak cocok dengan filter pengecualian apa pun:
- Entri log dirutekan ke tujuan sink gabungan yang mencegat.
- Entri log dikirim ke sink
_Requireddi project tempat entri log berasal.
Entri log tidak cocok dengan filter penyertaan atau cocok dengan setidaknya satu filter pengecualian:
- Entri log tidak dirutekan oleh sink gabungan yang mencegat.
Router Log mengirimkan entri log ke sink log dalam project tempat entri log berasal.
Sink level project merutekan entri log ke tujuan sink saat entri log cocok dengan filter penyertaan sink, tetapi tidak cocok dengan filter pengecualian sink.
Filter sink log
Setiap sink log berisi satu filter penyertaan dan dapat berisi beberapa filter pengecualian. Filter ini menentukan apakah sink log merutekan entri log ke tujuan sink. Jika Anda tidak menentukan filter apa pun, setiap entri log akan dirutekan ke tujuan sink.
Entri log dirutekan oleh sink log berdasarkan aturan berikut:
Jika entri log tidak cocok dengan filter penyertaan, entri log tersebut tidak akan dirutekan. Jika sink tidak menentukan filter penyertaan, setiap entri log akan cocok dengan filter tersebut.
Jika entri log cocok dengan filter penyertaan dan setidaknya satu filter pengecualian, entri log tersebut tidak akan dirutekan.
Jika entri log cocok dengan filter penyertaan dan tidak cocok dengan filter pengecualian apa pun, entri log tersebut akan dirutekan ke tujuan sink.
Filter dalam sink log ditentukan menggunakan bahasa kueri Logging.
Anda tidak dapat menggunakan filter pengecualian untuk mengurangi penggunaan kuota API entries.write atau jumlah panggilan API entries.write. Filter pengecualian diterapkan setelah entri log diterima oleh Logging API.
Sink log yang dibuat sistem
Untuk setiap project, akun penagihan, folder, dan organisasi Google Cloud ,
Cloud Logging membuat dua sink log, satu bernama _Required dan yang lainnya
bernama _Default. Filter penyertaan dan pengecualian untuk sink ini memastikan bahwa setiap entri log yang berasal dari resource dirutekan oleh salah satu sink ini. Kedua sink merutekan data log ke bucket log yang berada di resource yang sama dengan sink log.
Bagian selanjutnya memberikan informasi tentang filter dan tujuan sink log yang dibuat sistem.
Sink log _Required
Sink log _Required dalam resource merutekan subset log audit ke
bucket log _Required resource.
Sink ini tidak menentukan filter pengecualian apa pun, dan filter penyertaan
adalah seperti yang ditunjukkan:
LOG_ID("cloudaudit.googleapis.com/activity") OR
LOG_ID("externalaudit.googleapis.com/activity") OR
LOG_ID("cloudaudit.googleapis.com/system_event") OR
LOG_ID("externalaudit.googleapis.com/system_event") OR
LOG_ID("cloudaudit.googleapis.com/access_transparency") OR
LOG_ID("externalaudit.googleapis.com/access_transparency")
Sink log _Required hanya cocok dengan entri log yang berasal dari resource tempat sink log _Required ditentukan. Misalnya, sebuah sink log merutekan entri log aktivitas dari project A ke project B.
Karena entri log tidak berasal dari project B, sink log _Required di project B tidak merutekan entri log ini ke bucket log _Required.
Anda tidak dapat mengubah atau menghapus sink log _Required.
Sink log _Default
Sink log _Default dalam resource merutekan entri log ke bucket log _Default resource.
Karena filter penyertaan untuk sink ini kosong, filter ini cocok dengan semua entri log. Namun, filter pengecualian dikonfigurasi sebagai berikut:
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")
Anda dapat mengubah dan menonaktifkan sink log _Default. Misalnya, Anda dapat mengedit sink log _Default dan mengubah tujuannya. Anda juga dapat
mengubah filter yang ada dan menambahkan filter pengecualian.
Tujuan sink
Tujuan sink dapat berada di resource yang berbeda dengan sink. Misalnya, Anda dapat menggunakan sink log untuk merutekan entri log dari satu project ke bucket log yang disimpan di project lain.
Tujuan berikut didukung:
- Google Cloud project
Pilih tujuan ini jika Anda ingin sink log di project tujuan merutekan ulang entri log, atau jika Anda telah membuat sink gabungan yang mencegat. Sink log di project tujuan dapat mengalihkan entri log ke tujuan yang didukung, kecuali project.
Sink log yang dibuat sistem di project tujuan mengecualikan entri log yang dirutekan ke bucket log
_Requireddi project sumber. Misalnya, jika Anda merutekan log Aktivitas Admin ke project lain, sink log_Requireddan_Defaultdi project tujuan akan mengecualikan entri log tersebut. Untuk menyimpan entri log tersebut, di project tujuan, perbarui sink log_Defaultatau buat sink log kustom.
- Bucket log
- Pilih tujuan ini jika Anda ingin menyimpan data log di resource yang dikelola oleh Cloud Logging. Data log yang disimpan di bucket log dapat dilihat dan dianalisis menggunakan layanan seperti Logs Explorer.
- Topik Pub/Sub
- Pilih tujuan ini jika Anda ingin mengekspor data log dari Google Cloud , lalu menggunakan integrasi pihak ketiga. Entri log diformat sebagai JSON, lalu dirutekan ke topik Pub/Sub.
Batasan tujuan iklan
Bagian ini menjelaskan batasan khusus tujuan:
- Saat Anda mengonfigurasi tujuan sink, berikan jalur yang sepenuhnya memenuhi syarat dan gunakan endpoint global layanan.
Endpoint layanan regional (REP), seperti
pubsub.LOCATION.rep.googleapis.com, tidak didukung.
Perutean log ke topik Pub/Sub yang menerapkan pembatasan dalam pengiriman tidak didukung. Logging tidak dapat menjamin bahwa permintaan publikasi berasal dari region yang diizinkan, yang menyebabkan error konfigurasi
topic_region_not_alloweddan log yang dihapus.Batasan berikut berlaku jika tujuan sink log adalah project Google Cloud :
- Ada batas satu hop.
- Sink log
_Requireddi project tujuan merutekan entri log ke bucket log_Requiredproject saat entri log cocok dengan filter sink dan berasal dari project tujuan. - Sink log
_Defaultdi project tujuan merutekan entri log yang cocok dengan filter penyertaannya dan tidak cocok dengan filter pengecualian apa pun. Sink log_Defaultmengecualikan beberapa entri log. Misalnya, sink ini tidak merutekan entri log Aktivitas Admin dan Peristiwa Sistem. Anda dapat mengubah sink ini. - Hanya sink gabungan yang berada dalam hierarki resource entri log yang memproses entri tersebut.
Misalnya, asumsikan tujuan sink log di project
Aadalah projectB. Dalam hal ini, aturan berikut berlaku:- Karena batas satu hop, sink log di project
Btidak dapat mengalihkan rute entri log ke project Google Cloud lain. - Bucket log
_Requireddari projectBhanya menyimpan entri log yang berasal dari projectB. Bucket log ini tidak menyimpan entri log apa pun yang berasal dari resource lain, termasuk yang berasal dari projectA. - Jika project
Adan projectBmemiliki hierarki resource yang berbeda, entri log yang dirutekan oleh sink log di projectAke projectBtidak akan dikirim ke sink gabungan dalam hierarki resource projectB. - Jika project
Adan projectBmemiliki hierarki resource yang sama, entri log akan dikirim ke sink gabungan dalam hierarki tersebut. Jika entri log tidak dicegat oleh sink gabungan, Router Log akan mengirimkan entri tersebut ke sink di projectA.
Praktik terbaik
Kelola sink log saat Anda mengelola penyimpanan log. Misalnya, jika Anda menghapus tujuan sink log, hapus sink log yang sesuai.
Untuk mengetahui praktik terbaik tentang penggunaan pemilihan rute untuk tata kelola data atau untuk kasus penggunaan umum, lihat dokumen berikut:
Contoh: Memusatkan penyimpanan log Anda
Bagian ini menguraikan cara mengonfigurasi penyimpanan terpusat. Penyimpanan terpusat menyediakan satu tempat untuk mengkueri data log, yang menyederhanakan kueri Anda saat mencari tren atau menyelidiki masalah. Dari perspektif keamanan, Anda juga memiliki satu lokasi penyimpanan, yang dapat menyederhanakan tugas analis keamanan Anda.
Jika Anda memusatkan penyimpanan log, pertimbangkan apakah akan menempatkan lien pada project yang menyimpan data log Anda. Lien dapat mencegah penghapusan project secara tidak sengaja. Untuk mempelajari lebih lanjut, lihat Melindungi project dengan lien.
Memusatkan penyimpanan log untuk project dalam folder
Misalkan Anda mengelola folder dan ingin memusatkan penyimpanan entri log Anda. Untuk kasus penggunaan ini, Anda dapat melakukan hal berikut:
- Di folder, Anda membuat project bernama
CentralStorage. - Buat sink gabungan intersepsi untuk folder Anda dan konfigurasikan
untuk merutekan semua entri log. Anda menetapkan tujuan sink menjadi project bernama
CentralStorage.
Saat entri log yang berasal dari folder atau salah satu resource turunannya tiba, entri log tersebut akan dikirim ke sink gabungan yang mencegat yang Anda buat. Sink tersebut merutekan entri log ke project bernama CentralStorage. Sink log dalam project ini
memproses entri log:
Sink log
_Defaultmerutekan ke bucket log_Defaultsemua entri log yang cocok dengan filter sink. Bucket log ini adalah lokasi penyimpanan terpusat Anda.Sink log
_Requiredmerutekan ke bucket log_Requiredentri log yang cocok dengan filter sink dan yang berasal dari projectCentralStorage. Bucket log ini bukan lokasi penyimpanan terpusat. Namun, Anda dapat menyimpan semua data log secara terpusat. Sebagai contoh, lihat Menyimpan log audit di lokasi pusat.
Setelah pemrosesan sink gabungan selesai, entri log akan dikirim ke
sink log _Required di
resource tempat entri log berasal. Jika entri log cocok dengan filter di sink log _Required, entri log akan dirutekan ke bucket log _Required resource. Oleh karena itu, setiap project Google Cloud di folder Anda menyimpan entri log di bucket log _Required-nya.
Memusatkan penyimpanan log untuk sekumpulan project
Anda juga dapat menyimpan entri log di satu lokasi jika tidak memiliki organisasi atau folder. Misalnya, Anda dapat melakukan hal berikut:
- Buat project bernama
CentralStorage. - Untuk setiap project kecuali
CentralStorage, Anda mengedit sink log_Defaultdan menetapkan tujuannya ke project bernamaCentralStorage.
Anda mungkin bertanya-tanya mengapa contoh sebelumnya menetapkan tujuan sink log _Default sebagai project, bukan bucket log _Default dalam project tersebut. Alasan utamanya adalah kesederhanaan dan konsistensi.
Saat Anda merutekan entri log ke sebuah project, sink log di project tujuan mengontrol entri log mana yang disimpan dan di mana entri tersebut disimpan.
Artinya, Anda memusatkan fungsi filter dan tujuan. Jika ingin mengubah entri log yang disimpan atau tempat penyimpanannya, Anda hanya perlu mengubah sink log dalam satu project.
Memusatkan penyimpanan log untuk log audit
Anda dapat menyimpan entri log yang cocok dengan
sink log _Required secara terpusat. Untuk menyimpan entri log ini
secara terpusat, lakukan salah satu langkah berikut:
Buat sink log yang merutekan entri log yang cocok dengan sink log
_Requiredke bucket log terpusat.Konfigurasikan sink log seperti dalam dua contoh sebelumnya, lalu tambahkan sink log di project tujuan yang merutekan entri log yang cocok dengan sink log
_Requiredke bucket log. Anda juga dapat mengedit filter di sink log_Default.
Sebelum Anda menerapkan strategi tersebut, tinjau panduan harga.
Langkah berikutnya
Untuk membantu Anda merutekan dan menyimpan data Cloud Logging, lihat dokumen berikut:
Untuk membuat sink guna merutekan entri log ke tujuan yang didukung, lihat Merutekan log ke tujuan yang didukung.
Untuk mempelajari cara membuat sink gabungan yang dapat merutekan entri log dari resource dalam folder atau organisasi, lihat Ringkasan sink gabungan.
Untuk mempelajari format entri log yang dirutekan dan cara log diatur di tujuan, lihat dokumen berikut: