Merutekan log ke tujuan yang didukung

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:

  1. Enable the Cloud Logging API.

    Enable the API

  2. Pastikan project Google Cloud Anda berisi entri log yang dapat Anda lihat di Logs Explorer.

  3. 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.

  4. 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.

  5. Sebelum membuat sink, tinjau batasan yang berlaku untuk tujuan sink. Untuk mengetahui informasi selengkapnya, lihat bagian Batasan tujuan dalam dokumen ini.

  6. 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.

    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" dan severity >= "ERROR". Kueri sebenarnya adalah resource.type = "gce_instance" AND severity >= "ERROR". Cloud Logging mendukung batasan disjungtif, OR, dan batasan konjungtif, AND. Saat menggunakan pernyataan OR, sebaiknya Anda mengelompokkan klausa dengan tanda kurung. Untuk mengetahui informasi selengkapnya, lihat Bahasa kueri logging.

Untuk membuat sink, lakukan hal berikut:

Konsol

  1. Di konsol Google Cloud, buka halaman Log Router:

    Buka Router Log

    Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Logging.

  2. 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 bernama Project-B, pilih Project-A.

  3. Pilih Create sink.

  4. 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.

  5. 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:

      • 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:

      1. Pilih Referensi lainnya.
      2. Masukkan nama yang sepenuhnya memenuhi syarat untuk tujuan. Untuk informasi tentang sintaksis, lihat Format jalur tujuan.
  6. Tentukan entri log yang akan disertakan:

    1. Buka panel Choose logs to include in sink.

    2. 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.

    3. Untuk memverifikasi bahwa Anda memasukkan filter yang benar, pilih Pratinjau log. Logs Explorer akan terbuka di tab baru dengan filter yang telah diisi sebelumnya.

  7. (Opsional) Konfigurasikan filter pengecualian untuk menghapus beberapa entri log yang disertakan:

    1. Buka panel Choose logs to filter out of sink.

    2. Di kolom Nama filter pengecualian, masukkan nama.

    3. 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.

  8. Pilih Create sink.

  9. 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:

  1. 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 fungsi sample 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.

  2. 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

  1. Untuk membuat sink logging di project Google Cloud, gunakan projects.sinks.create di Logging API. Dalam objek LogSink, 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 kolom destination 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
      
  2. Dalam objek LogSink, berikan informasi opsional yang sesuai:

    • filter : Tetapkan kolom filter 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 fungsi sample 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.
  3. Panggil projects.sinks.create untuk membuat sink.

  4. 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.
  • 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.
  • 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

  1. Di konsol Google Cloud, buka halaman Log Router:

    Buka Router Log

    Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Logging.

  2. 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 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 API projects.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 API projects.sinks.get:

    gcloud logging sinks describe SINK_NAME
    
  • Untuk memperbarui sink, gunakan perintah gcloud logging sinks update, yang sesuai dengan metode API projects.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 bernama my-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 API projects.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 API projects.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 objek LogSink ke true, lalu panggil projects.sink.update.

    Untuk mengaktifkan kembali sink, tetapkan kolom disabled di objek LogSink ke false, lalu panggil projects.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

  1. Di konsol Google Cloud, buka halaman Log Router:

    Buka Router Log

    Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Logging.

  2. Untuk menemukan semua sink yang merutekan entri log ke bucket log _Default, filter sink menurut tujuan, lalu masukkan _Default.
  3. Untuk setiap sink, pilih 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:

  1. Di konsol Google Cloud, buka halaman Log Router:

    Buka Router Log

    Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Logging.

  2. Untuk menemukan semua sink yang merutekan entri log ke bucket log _Default, filter sink menurut tujuan, lalu masukkan _Default.
  3. Untuk setiap sink, pilih Menu, lalu pilih Aktifkan sink.

gcloud

  1. Untuk melihat daftar sink untuk project Google Cloud, gunakan perintah gcloud logging sinks list, yang sesuai dengan metode Logging API projects.sinks.list:

    gcloud logging sinks list
    
  2. Identifikasi sink yang merutekan ke bucket log _Default. Untuk mendeskripsikan sink, termasuk melihat nama tujuan, gunakan perintah gcloud logging sinks describe, yang sesuai dengan metode Logging API projects.sinks.get:

    gcloud logging sinks describe SINK_NAME
    
  3. 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

  1. Untuk melihat sink untuk project Google Cloud Anda, panggil metode Logging API projects.sinks.list.

    Identifikasi sink yang merutekan ke bucket _Default.

  2. Misalnya, untuk menonaktifkan sink _Default, tetapkan kolom disabled dalam objek LogSink ke true, lalu panggil projects.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 objek LogSink ke false, lalu panggil projects.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

  1. 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.

  2. Untuk mendapatkan identitas penulis sink—alamat email—dari sink baru, lakukan hal berikut:

    1. Di konsol Google Cloud, buka halaman Log Router:

      Buka Router Log

      Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Logging.

    2. Di toolbar, pilih project yang berisi sink.
    3. Pilih Menu, lalu pilih Lihat detail sink. Identitas penulis muncul di panel Sink details.
  3. Jika nilai kolom writerIdentity berisi alamat email, lanjutkan ke langkah berikutnya. Jika nilainya None, Anda tidak perlu mengonfigurasi izin tujuan untuk sink.

  4. Salin identitas penulis sink ke papan klip Anda.

  5. Jika tujuan adalah layanan dalam project yang berbeda, atau jika merupakan project lain, pilih project tujuan di toolbar.

  6. Tambahkan akun layanan sebagai akun utama IAM di project tujuan:

    1. Di konsol Google Cloud, buka halaman IAM:

      Buka IAM

      Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah IAM & Admin.

    2. Pilih project tujuan.

    3. Klik Berikan akses.

    4. 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 izin logging.logEntries.route.

gcloud

  1. 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.

  2. Dapatkan akun layanan dari kolom writerIdentity di sink Anda:

    gcloud logging sinks describe SINK_NAME
    
  3. Temukan sink yang izinnya ingin Anda ubah, dan jika detail sink berisi baris dengan writerIdentity, lanjutkan ke langkah berikutnya. Jika detail tidak menyertakan kolom writerIdentity, Anda tidak perlu mengonfigurasi izin tujuan untuk sink.

    Identitas penulis untuk akun layanan terlihat mirip dengan hal berikut:

    serviceAccount:service-123456789012@gcp-sa-logging.
    
  4. 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 dimiliki PRINCIPAL, 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 izin logging.logEntries.route.

    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 project B, Anda tidak dapat merutekan entri log dari project B ke project lain.

    • Log audit tidak dirutekan ke bucket log _Required di project tujuan.

      Misalnya, jika Anda merutekan entri log dari project A ke project B, bucket log _Required di project A akan berisi log audit untuk project A. Log audit untuk project A tidak dirutekan ke project B. 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 folder X. Jika entri log berasal dari project A, entri log akan diproses oleh sink gabungan di folder X dan sink di project A. Sekarang, misalkan project A berisi sink yang merutekan entri lognya ke project B, yang ada di folder Y. Entri log dari project A melewati sink di project B; namun, entri log tersebut tidak melewati sink gabungan di folder Y.

  • 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