Entri log rute

Dokumen ini menjelaskan cara Cloud Logging merutekan entri log yang diterima oleh Google Cloud. Ada beberapa jenis tujuan rute. Misalnya, Anda dapat merutekan entri log ke tujuan seperti bucket log, yang menyimpan entri log. Jika ingin mengekspor data log ke tujuan pihak ketiga, Anda dapat merutekan entri log ke Pub/Sub. Selain itu, entri log dapat dirutekan ke beberapa tujuan.

Secara umum, berikut cara Cloud Logging merutekan dan menyimpan entri log:

Gambar yang mengilustrasikan cara Cloud Logging merutekan entri log.

Tentang Router Log

Setiap Google Cloud project, akun penagihan, folder, dan organisasi memiliki Log Router, yang mengelola alur entri log melalui sink level resource. Log Router juga mengelola alur entri log melalui sink yang ada dalam hierarki resource entri. Sink mengontrol cara entri log dirutekan ke tujuan.

Router Log menyimpan entri log untuk sementara. Perilaku ini melakukan buffering terhadap gangguan dan pemadaman 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 pada masa mendatang akan dihapus.

Tentang sink log

Saat menerima entri log, sink log akan menentukan apakah akan mengabaikan atau merutekan entri log. Keputusan ini dibuat dengan membandingkan entri log dengan filter di sink log. Saat entri log dirutekan, sink log akan mengirim entri log ke tujuan yang ditentukan oleh sink log. Tujuan tersebut dapat berupa project, lokasi penyimpanan, atau layanan.

Penampung 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 di resource tersebut akan mengevaluasi entri log 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 dengan cara yang berguna bagi Anda.
  • Untuk melakukan streaming log 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 ke Pub/Sub.

Sink log yang salah dikonfigurasi tidak merutekan entri log. Jika sink salah dikonfigurasi, entri log yang melaporkan detail error akan ditulis. Selain itu, email akan dikirim ke Kontak Penting untuk fasilitas tersebut. Untuk mengetahui informasi selengkapnya, lihat Memecahkan masalah: Melihat error.

Sink log tidak dapat merutekan entri log secara retroaktif. Artinya, sink log tidak dapat me-rutekan entri log yang diterima sebelum sink dibuat. Demikian pula, jika sink salah dikonfigurasi, sink hanya akan merutekan entri log yang masuk setelah error konfigurasi di-resolve. Namun, Anda dapat menyalin data log dari bucket log ke Cloud Storage secara retroaktif. Untuk mengetahui informasi selengkapnya, lihat Menyalin log.

Dukungan untuk organisasi dan folder

Untuk membantu Anda mengelola data log di organisasi atau folder, Anda dapat melakukan hal berikut:

  • Anda dapat membuat penampung gabungan, yang merutekan entri log untuk organisasi atau folder dan turunannya, ke tujuan yang ditentukan oleh penampung. Ada dua jenis sink gabungan:

    • Sink gabungan yang tidak menyadap
    • Mencegat sink gabungan

    Perbedaan antara kedua jenis sink ini adalah bahwa sink intersepsi pada satu tingkat dalam hierarki resource dapat memengaruhi pemilihan rute untuk resource yang lebih rendah dalam hierarki. Sink yang tidak menyadap tidak memengaruhi perutean untuk resource lain. Jika sink intersepsi dalam resource cocok dengan entri log, entri log tidak akan dikirim ke sink dalam resource turunan, dengan pengecualian bahwa entri log selalu dikirim ke sink log _Required dalam resource tempat entri log berasal.

  • Anda dapat mengonfigurasi Setelan resource default untuk menentukan konfigurasi sink _Default yang dibuat sistem untuk resource baru di organisasi atau folder. Misalnya, Anda dapat menggunakan setelan ini untuk menonaktifkan sink _Default atau menentukan filter di sink tersebut.

Contoh pemilihan rute

Bagian ini mengilustrasikan bagaimana entri log yang berasal dari 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 di project tempat entri log berasal. Sink tingkat project merutekan entri log ke tujuan sink saat entri log cocok dengan filter penyertaan sink, tetapi tidak cocok dengan filter pengecualian sink.

Contoh: Ada sink gabungan yang tidak menyadap

Asumsikan bahwa sink gabungan yang tidak menyadap ada dalam hierarki resource untuk entri log. Setelah Log Router mengirim entri log ke sink gabungan yang tidak menyadap, hal berikut akan terjadi:

  1. Sink gabungan yang tidak mengintersepsi merutekan entri log ke tujuan sink saat entri log cocok dengan filter penyertaan, tetapi tidak cocok dengan filter pengecualian apa pun.

  2. Router Log mengirim entri log ke sink log dalam project tempat entri log berasal.

    Sink tingkat project merutekan entri log ke tujuan sink saat entri log cocok dengan filter penyertaan sink, tetapi tidak cocok dengan filter pengecualian sink.

Contoh: Penampung gabungan yang menyadap ada

Asumsikan bahwa sink gabungan yang menyadap ada dalam hierarki resource untuk entri log. Setelah Log Router mengirim 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:

    1. Entri log dirutekan ke tujuan sink gabungan yang mengintersepsi.
    2. Entri log dikirim ke sink _Required di project tempat entri log berasal.
  • Entri log tidak cocok dengan filter penyertaan atau cocok dengan setidaknya satu filter pengecualian:

    1. Entri log tidak dirutekan oleh sink gabungan yang mencegat.
    2. Router Log mengirim entri log ke sink log dalam project tempat entri log berasal.

      Sink tingkat 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 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 di 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 Google Cloud project, akun penagihan, folder, dan organisasi, 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 mencapai 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 dari bagian ini memberikan informasi tentang filter dan tujuan sink log yang dibuat sistem.

Sink log _Required

Penampung log _Required di resource merutekan sebagian log audit ke bucket log _Required resource. Sink ini tidak menentukan filter pengecualian, 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, 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 semua entri log, kecuali yang cocok dengan filter sink log _Required, ke bucket log _Default resource. Karena filter inklusi untuk sink ini kosong, filter tersebut 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 memodifikasi 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 menangkap. Sink log dalam project yang merupakan tujuan sink dapat mengalihkan rute entri log ke tujuan apa pun yang didukung kecuali project.

Bucket log
Pilih tujuan ini jika Anda ingin menyimpan data log di resource yang dikelola oleh Cloud Logging. Data log yang disimpan dalam bucket log dapat dilihat dan dianalisis menggunakan layanan seperti Logs Explorer.
Set data BigQuery
Pilih tujuan ini jika Anda ingin menggabungkan data log dengan data bisnis lainnya. Set data yang Anda tentukan harus diaktifkan untuk ditulis. Jangan tetapkan tujuan sink sebagai set data BigQuery yang tertaut. Set data tertaut bersifat hanya baca.
Bucket Cloud Storage
Pilih tujuan ini jika Anda menginginkan penyimpanan data log jangka panjang. Bucket Cloud Storage dapat berada dalam project yang sama dengan asal entri log, atau dalam project yang berbeda. Entri log disimpan sebagai file JSON.
Topik Pub/Sub
Pilih tujuan ini jika Anda ingin mengekspor data log dariGoogle Cloud , lalu menggunakan integrasi pihak ketiga seperti Splunk atau Datadog. Entri log diformat menjadi JSON, lalu dirutekan ke topik Pub/Sub.

Batasan tujuan iklan

Bagian ini menjelaskan batasan khusus tujuan:

  • Jika Anda merutekan entri log ke bucket log dalam project Google Cloud yang berbeda, Error Reporting tidak akan menganalisis entri log tersebut. Untuk mengetahui informasi selengkapnya, lihat Ringkasan Pelaporan Error.
  • Jika Anda merutekan entri log ke set data BigQuery, set data BigQuery harus mengaktifkan operasi tulis. Anda tidak dapat merutekan entri log ke set data tertaut, yang bersifat hanya baca.
  • Sink baru yang merutekan data log ke bucket Cloud Storage mungkin memerlukan waktu beberapa jam untuk mulai merutekan entri log. Penyerapan ini diproses setiap jam.
  • Batasan berikut berlaku jika tujuan sink log adalah project Google Cloud :

    • Ada batas satu hop.
    • Entri log yang cocok dengan filter sink log _Required hanya dirutekan ke bucket log _Required project tujuan jika berasal dari project tujuan.
    • Hanya sink gabungan yang berada dalam hierarki resource entri log yang memproses entri log.

    Misalnya, asumsikan tujuan sink log di project A adalah project B. Kemudian, hal berikut berlaku:

    • Karena batas satu hop, sink log di project B tidak dapat mengalihkan entri log ke project Google Cloud .
    • Bucket log _Required project B hanya menyimpan entri log yang berasal dari project B. Bucket log ini tidak menyimpan entri log yang berasal dari resource lain, termasuk yang berasal dari project A.
    • Jika hierarki resource project A dan project B berbeda, entri log yang dirutekan sink log di project A ke project B tidak akan dikirim ke sink gabungan dalam hierarki resource project B.
    • Jika project A dan project B memiliki 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 log ke sink di project A.

Pengaruh entri log pemilihan rute terhadap metrik berbasis log

Metrik berbasis log adalah metrik Cloud Monitoring yang berasal dari konten entri log. Misalnya, Anda dapat menggunakan metrik berbasis log untuk menghitung jumlah entri log yang berisi pesan tertentu atau mengekstrak informasi latensi yang dicatat dalam entri log. Anda dapat menampilkan metrik berbasis log dalam diagram Cloud Monitoring, dan kebijakan pemberitahuan dapat memantau metrik ini.

Metrik berbasis log yang ditentukan sistem berlaku di tingkat project. Metrik berbasis log yang ditentukan pengguna dapat diterapkan di level project atau level bucket log. Metrik berbasis log dengan cakupan bucket berguna saat Anda menggunakan sink gabungan untuk merutekan entri log ke bucket log, dan saat Anda merutekan entri log dari satu project ke bucket log di project lain.

Metrik berbasis log yang ditentukan sistem
Router Log menghitung entri log jika semua hal berikut benar:
  • Entri log akan melewati sink log project tempat metrik berbasis log ditentukan.
  • Entri log disimpan di bucket log. Bucket log dapat berada di project mana pun.

    Misalnya, project A memiliki sink log yang tujuannya adalah project B. Asumsikan juga bahwa sink log di project B merutekan entri log ke bucket log. Dalam skenario ini, entri log yang dirutekan dari project A ke project B berkontribusi pada metrik berbasis log yang ditentukan sistem project A. Entri log ini juga berkontribusi pada metrik berbasis log yang ditentukan sistem project B.

Metrik berbasis log yang ditentukan pengguna
Router Log menghitung entri log jika semua hal berikut benar:
  • Penagihan diaktifkan di project tempat metrik berbasis log ditentukan.
  • Untuk metrik cakupan bucket, entri log disimpan di bucket log tempat metrik berbasis log ditentukan.
  • Untuk metrik cakupan project, entri log akan melewati sink log project tempat metrik berbasis log ditentukan.

Untuk informasi selengkapnya, lihat Ringkasan metrik berbasis log.

Praktik terbaik

Untuk praktik terbaik tentang penggunaan perutean untuk tata kelola data atau untuk kasus penggunaan umum, lihat dokumen berikut:

Contoh: Memusatkan penyimpanan log

Bagian ini menguraikan cara mengonfigurasi penyimpanan terpusat. Penyimpanan terpusat menyediakan satu tempat untuk membuat kueri data log, yang menyederhanakan kueri saat Anda menelusuri tren atau menyelidiki masalah. Dari perspektif keamanan, Anda juga memiliki satu lokasi penyimpanan, yang dapat menyederhanakan tugas analis keamanan Anda.

Memusatkan penyimpanan log untuk project dalam folder

Misalkan Anda mengelola folder dan ingin memusatkan penyimpanan entri log. Untuk kasus penggunaan ini, Anda dapat melakukan hal berikut:

  1. Di folder, Anda membuat project bernama CentralStorage.
  2. Buat sink gabungan intersepsi untuk folder Anda dan konfigurasikan sink tersebut untuk merutekan semua entri log. Anda menetapkan tujuan sink menjadi project bernama CentralStorage.

Saat entri log yang berasal dari folder atau salah satu resource turunan tiba, entri log tersebut akan dikirim ke sink gabungan yang menangkap yang Anda buat. Penampung tersebut merutekan entri log ke project bernama CentralStorage. Penampung log dalam project ini memproses entri log:

  • Sink log _Default merutekan semua entri log yang cocok dengan filter sink ke bucket log _Default. Bucket log ini adalah lokasi penyimpanan terpusat Anda.

  • Sink log _Required merutekan ke bucket log _Required entri log yang cocok dengan filter sink dan yang berasal dari project CentralStorage. Bucket log ini bukan lokasi penyimpanan terpusat. Namun, Anda dapat menyimpan semua data log secara terpusat. Untuk contohnya, lihat Menyimpan log audit di lokasi pusat.

Setelah pemrosesan sink gabungan selesai, entri log 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. Akibatnya, 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:

  1. Buat project bernama CentralStorage.
  2. Untuk setiap project kecuali CentralStorage, Anda mengedit sink log _Default dan menetapkan tujuannya sebagai project bernama CentralStorage.

Anda mungkin bertanya-tanya mengapa contoh sebelumnya menetapkan tujuan sink log _Default menjadi project, bukan bucket log _Default dalam project tersebut. Alasan utamanya adalah kesederhanaan dan konsistensi. Saat Anda merutekan entri log ke project, sink log di project tujuan mengontrol entri log mana yang disimpan dan tempat penyimpanannya. Artinya, Anda memusatkan fungsi filter dan tujuan. Jika ingin mengubah entri log yang disimpan atau tempat penyimpanannya, Anda hanya perlu mengubah sink log di satu project.

Memusatkan penyimpanan log untuk log audit

Anda dapat menyimpan entri log secara terpusat yang cocok dengan sink log _Required. Jika Anda ingin menyimpan entri log ini secara terpusat, lakukan salah satu hal berikut:

  • Buat sink log yang merutekan entri log yang cocok dengan sink log _Required ke bucket log terpusat.

  • Konfigurasikan sink log seperti pada dua contoh sebelumnya, lalu tambahkan sink log di project tujuan yang merutekan entri log yang cocok dengan sink log _Required ke bucket log. Anda juga dapat mengedit filter di sink log _Default.

Sebelum menerapkan strategi tersebut, tinjau panduan penetapan harga.

Harga

Untuk mempelajari harga Cloud Logging, lihat harga Google Cloud Observability.

Langkah berikutnya

Untuk membantu Anda merutekan dan menyimpan data Cloud Logging, lihat dokumen berikut: