Merutekan log ke tujuan yang didukung

Dokumen ini menjelaskan cara membuat dan mengelola sink untuk mengarahkan entri log ke tujuan yang didukung.

Cloud Logging secara otomatis membuat dan mengelola akun layanan untuk sink log yang merutekan log ke tujuan yang bukan merupakan bucket log dalam project Google Cloud saat ini. Anda dapat membuat dan mengelola akun layanan yang digunakan oleh sink di beberapa project. Untuk informasi selengkapnya, lihat Mengonfigurasi sink log dengan akun layanan yang dikelola pengguna.

Ringkasan

Sinks mengontrol cara Cloud Logging merutekan log. Dengan menggunakan sink, Anda dapat mengarahkan beberapa atau semua 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. Anda dapat menggabungkan data Cloud Logging dengan data lain dengan mengupgrade bucket log untuk menggunakan Log Analytics, lalu membuat set data BigQuery tertaut. Untuk mendapatkan informasi tentang cara melihat entri log yang disimpan di bucket log, lihat Ringkasan log dan kueri serta Melihat log yang dirutekan ke bucket Cloud Logging.
  • Set data BigQuery: Menyediakan penyimpanan entri log di set data BigQuery. Anda dapat menggunakan kemampuan analisis big data pada entri log yang disimpan. Untuk menggabungkan data Cloud Logging Anda dengan sumber data lain, sebaiknya upgrade bucket log Anda untuk menggunakan Log Analytics, lalu buat set data BigQuery tertaut. Untuk mendapatkan informasi tentang cara melihat entri log yang diarahkan ke BigQuery, baca artikel Melihat log yang dirutekan ke BigQuery.
  • Bucket Cloud Storage: Menyediakan penyimpanan entri log di Cloud Storage. Entri log disimpan sebagai file JSON. Untuk mengetahui informasi tentang cara melihat entri log yang dirutekan ke Cloud Storage, baca bagian Melihat log yang dirutekan ke Cloud Storage.
  • Pub/Sub topic: Memberikan dukungan untuk integrasi pihak ketiga. Entri log diformat ke dalam JSON, lalu dirutekan ke topik Pub/Sub. Untuk mengetahui informasi tentang cara melihat entri log yang dirutekan ke Pub/Sub, baca bagian Melihat log yang dirutekan ke Pub/Sub.
  • Splunk: Memberikan dukungan untuk Splunk. Anda harus mengarahkan entri log Anda ke topik Pub/Sub, lalu berlangganan ke topik tersebut menggunakan Splunk.
  • Project Google Cloud: Merutekan entri log ke project Google Cloud lain. Saat Anda mengarahkan entri log ke project Google Cloud yang berbeda, Router Log project tujuan akan menerima entri log dan memprosesnya. Sink dalam project tujuan menentukan cara entri log yang diterima dirutekan. Error Reporting dapat menganalisis entri log saat project tujuan merutekan entri log tersebut ke bucket log yang dimiliki oleh project tujuan.
  • Resource lainnya: Merutekan entri log Anda ke tujuan yang didukung yang berada dalam project berbeda. Untuk mengetahui informasi tentang jalur yang akan digunakan, lihat Format jalur tujuan.

Sink termasuk dalam resource Google Cloud tertentu: project, akun penagihan, folder, dan organisasi Google Cloud. Saat menerima entri log, resource akan merutekan entri log sesuai dengan sink yang terdapat dalam resource tersebut. Entri log dikirim ke tujuan yang terkait dengan setiap sink yang cocok.

Sink gabungan adalah jenis sink yang menggabungkan dan merutekan entri log dari resource Google Cloud yang berisi organisasi atau folder. Untuk mengetahui petunjuknya, lihat Menyusun 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. Penggunaan konsol Google Cloud memiliki keunggulan berikut dibandingkan metode lainnya:

  • Lihat dan kelola semua sink Anda di satu tempat.
  • Lihat pratinjau entri log mana yang cocok dengan filter sink sebelum Anda membuat sink.
  • Membuat dan mengizinkan tujuan sink untuk sink Anda.

Sebelum memulai

Petunjuk dalam dokumen ini menjelaskan cara membuat dan mengelola sink di level project Google Cloud. Anda juga dapat membuat sink non-gabungan untuk akun penagihan, folder, dan organisasi.

Untuk memulai, lakukan hal berikut:

  1. Pastikan Anda memiliki project Google Cloud dengan log yang dapat Anda lihat di Logs Explorer.

  2. Aktifkan API Cloud Logging.

    Mengaktifkan API

  3. Untuk mendapatkan izin yang diperlukan untuk 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.

    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 log ke tujuan, tujuan harus ada sebelum Anda membuat sink. Anda dapat membuat tujuan di project Google Cloud mana pun di organisasi mana pun.

    Beberapa batasan mungkin berlaku saat Anda mengarahkan log ke tujuan lain. Untuk informasi selengkapnya, lihat Batasan tujuan iklan.

Membuat sink

Berikut adalah petunjuk untuk membuat sink di project Google Cloud. Daripada menggunakan project Google Cloud, Anda dapat menentukan akun, folder, atau organisasi penagihan.

Anda dapat membuat hingga 200 sink per project Google Cloud.

Setelah membuat sink, pastikan Logging memiliki izin yang sesuai untuk menulis log ke tujuan sink Anda. Baca bagian Menetapkan izin tujuan.

Untuk membuat sink, lakukan langkah berikut:

Konsol

  1. Di panel navigasi konsol Google Cloud, pilih Logging, lalu pilih Log Router:

    Buka Router Log

  2. Pilih project Google Cloud yang ada.

  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 nama sink, tetapi dapat menghapusnya dan membuat sink baru.

    • Deskripsi sink (opsional): Jelaskan tujuan atau kasus penggunaan sink.

  5. Di panel Sink destination, pilih layanan dan tujuan sink menggunakan menu Select sink service.

    1. Untuk merutekan log ke layanan yang ada dalam project Google Cloud yang sama, pilih salah satu opsi berikut:

      • Bucket Cloud Logging: Pilih atau buat Logging bucket.
      • Tabel BigQuery: Pilih atau buat set data tertentu untuk menerima log yang dirutekan. Anda juga memiliki opsi untuk menggunakan tabel yang dipartisi.
      • Bucket Cloud Storage: Pilih atau buat bucket Cloud Storage tertentu untuk menerima log yang dirutekan.
      • Pub/Sub topic: Pilih atau buat topik tertentu untuk menerima log yang dirutekan.
      • Splunk: Pilih topik Pub/Sub untuk layanan Splunk Anda.
      • Google Cloud Project: Pilih atau buat project Google Cloud untuk menerima log yang dirutekan.
      • Other resource: Pilih opsi ini untuk mengarahkan entri log Anda ke tujuan yang didukung dalam project yang berbeda. Untuk mengetahui informasi tentang jalur yang akan digunakan, lihat Format jalur tujuan.
  6. Di panel Choose logs to include in sink, lakukan langkah berikut:

    1. Di kolom Build penyertaan filter, masukkan ekspresi filter yang cocok dengan entri log yang ingin disertakan. Untuk mempelajari sintaksis untuk menulis filter lebih lanjut, lihat Bahasa kueri logging.

      Jika Anda tidak menetapkan filter, semua log dari resource yang dipilih akan dirutekan ke tujuan.

      Misalnya, Anda mungkin ingin membuat filter untuk merutekan semua log Akses Data ke satu bucket Logging. Filter ini akan terlihat seperti berikut:

      log_id("cloudaudit.googleapis.com/data_access") OR log_id("externalaudit.googleapis.com/data_access")
      

      Perhatikan bahwa panjang filter tidak boleh melebihi 20.000 karakter.

    2. Untuk memastikan bahwa Anda memasukkan filter yang benar, pilih Pratinjau log. Tindakan ini akan membuka Logs Explorer di tab baru dengan filter yang telah diisi otomatis.

  7. (Opsional) Di panel Choose logs to filter out of sink, lakukan hal berikut:

    1. Di kolom Nama filter pengecualian, masukkan nama.

    2. Di kolom Build an exception filter, masukkan ekspresi filter 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.

API

  1. Untuk membuat sink logging di project Google Cloud, gunakan projects.sinks.create di Logging API. Pada objek LogSink, berikan nilai yang diperlukan yang sesuai dalam isi permintaan metode:

    • name: ID untuk sink. Perlu diketahui bahwa setelah membuat sink, Anda tidak dapat mengganti nama sink, tetapi dapat menghapusnya dan membuat sink baru.
    • destination: Layanan dan tujuan ke tempat Anda ingin log Anda dirutekan. Untuk merutekan log ke project yang berbeda, atau ke tujuan yang ada dalam project lain, tetapkan kolom destination dengan jalur yang sesuai, seperti yang dijelaskan dalam Format jalur tujuan.

      Misalnya, jika tujuan sink Anda adalah set data BigQuery, destination akan terlihat seperti berikut:

      bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID
      
  2. Di objek LogSink, berikan informasi opsional yang sesuai:

    • filter : Menetapkan properti filter agar cocok dengan entri log yang ingin Anda sertakan dalam sink. Jika Anda tidak menetapkan filter, semua log dari project Google Cloud akan dirutekan ke tujuan. Perhatikan bahwa panjang filter tidak boleh melebihi 20.000 karakter.
    • exclusions: Tetapkan properti 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: Menetapkan properti ini untuk mendeskripsikan tujuan atau kasus penggunaan sink.
  3. Panggil projects.sinks.create untuk membuat sink.

  4. Jika respons API berisi kunci JSON berlabel "writerIdentity", berikan akun layanan sink izin 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 mengetahui informasi selengkapnya tentang cara membuat sink menggunakan Logging API, lihat referensi LogSink.

gcloud

Untuk membuat sink, jalankan perintah gcloud logging sinks create berikut.

Berikan nilai yang sesuai untuk variabel dalam perintah sebagai berikut:

  • SINK_NAME: ID untuk sink. Perlu diketahui bahwa setelah membuat sink, Anda tidak dapat mengganti nama sink, tetapi dapat menghapusnya dan membuat sink baru.
  • SINK_DESTINATION: Layanan dan tujuan ke tempat Anda ingin log dirutekan. Untuk merutekan log ke project yang berbeda, atau ke tujuan yang ada dalam project lain, tetapkan SINK_DESTINATION dengan jalur yang sesuai, seperti yang dijelaskan dalam Format jalur tujuan.

    Misalnya, jika tujuan sink Anda adalah set data BigQuery, SINK_DESTINATION akan terlihat seperti berikut:

    bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID
    
  • OPTIONAL_FLAGS menyertakan tanda berikut:

    • --log-filter : Gunakan flag ini untuk menyetel filter yang cocok dengan entri log yang ingin Anda sertakan dalam sink. Jika Anda tidak menetapkan filter, semua log dari project Google Cloud akan dirutekan ke tujuan.
    • --exclusion: Gunakan flag ini untuk menetapkan filter pengecualian bagi entri log yang ingin Anda kecualikan dari sink. Anda juga dapat menggunakan fungsi sample untuk memilih sebagian entri log yang akan dikecualikan. Flag ini dapat diulang; Anda dapat membuat hingga 50 filter pengecualian per sink.
    • --description: Gunakan flag ini untuk menjelaskan tujuan atau kasus penggunaan sink.
gcloud logging sinks create SINK_NAME SINK_DESTINATION OPTIONAL_FLAGS

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, termasuk flag dan contoh lainnya, lihat referensi gcloud logging sinks.

Sink log baru ke bucket Cloud Storage mungkin memerlukan waktu beberapa jam untuk mulai merutekan log. Sink ke Cloud Storage diproses setiap jam, sementara jenis tujuan lainnya diproses secara real time.

Sink tidak menentukan skema untuk set data BigQuery. Sebaliknya, entri log pertama yang diterima oleh BigQuery menentukan skema untuk tabel tujuan. Untuk mengetahui informasi selengkapnya, lihat Skema BigQuery untuk log yang dirutekan.

Untuk mengetahui informasi cara melihat log di tujuan sink, baca bagian Melihat log yang dirutekan ke bucket Cloud Logging.

Setelah membuat sink, Anda dapat melihat jumlah dan volume entri log yang diterima menggunakan metrik logging.googleapis.com/exports/.

Jika Anda menerima notifikasi error, lihat Memecahkan masalah pemilihan rute dan sink.

Jangan masukkan informasi sensitif di filter sink. Filter sink diperlakukan sebagai data layanan.

Format jalur tujuan

Jika Anda mengarahkan rute ke tujuan yang berada dalam project lain, Anda harus memberikan informasi layanan Logging, BigQuery, Cloud Storage, atau Pub/Sub dan tujuan:

  • Untuk mengarahkan entri log ke bucket log Cloud Logging yang ada di project Google Cloud lain, tujuan sink adalah sebagai berikut:

    logging.googleapis.com/projects/DESTINATION_PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME
    
  • Untuk mengarahkan entri log ke project Google Cloud lainnya, jalur tujuan sink adalah sebagai berikut:

    logging.googleapis.com/projects/DESTINATION_PROJECT_ID
    
  • Untuk mengarahkan entri log ke set data BigQuery, tujuan sink adalah sebagai berikut:

    bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID
    
  • Untuk merutekan entri log ke bucket Cloud Storage, tujuan sink adalah sebagai berikut:

    storage.googleapis.com/BUCKET_NAME
    
  • Untuk merutekan entri log ke topik Pub/Sub, tujuan sink adalah sebagai berikut:

    pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
    

Kelola sink

Setelah sink dibuat, Anda dapat melakukan tindakan berikut pada sink:

  • Lihat detail sink
  • Memperbarui sink
  • Nonaktifkan sink
  • Hapus sink
  • Memecahkan masalah sink
  • Melihat volume log sink dan tingkat error

Sebelum Anda menghapus sink, pertimbangkan hal-hal berikut:

  • Anda tidak dapat menghapus sink _Default dan _Required, tetapi Anda dapat menonaktifkan sink _Default untuk berhenti merutekan log ke bucket Logging _Default.
  • Setelah dihapus, sink akan menghentikan pemilihan rute 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.

Perubahan apa pun yang dibuat pada sink mungkin memerlukan waktu beberapa menit untuk diterapkan.

Berikut adalah petunjuk untuk mengelola sink di project Google Cloud. Selain project Google Cloud, Anda dapat menentukan akun, folder, atau organisasi penagihan:

Konsol

  1. Di panel navigasi konsol Google Cloud, pilih Logging, lalu pilih Log Router:

    Buka Router Log

  2. Pilih project Google Cloud yang berisi sink Anda dengan menggunakan pemilih resource dari mana saja di Konsol Google Cloud:

    Project dipilih dari menu drop-down.

  3. Untuk melihat sink gabungan, pilih organisasi, folder, atau akun penagihan yang berisi sink.

Halaman Router Log berisi ringkasan tabel sink. 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.
  • Tujuan: Nama lengkap tujuan tempat entri log yang dirutekan akan dikirim.
  • Dibuat: Tanggal dan waktu sink dibuat.
  • Terakhir diperbarui: Tanggal dan waktu sink terakhir kali diedit.

Untuk setiap baris tabel, menu More actions menyediakan 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 log ke tujuan sink. Untuk mengetahui informasi selengkapnya tentang cara menonaktifkan sink, lihat Berhenti menyimpan log di bucket log.
  • Aktifkan sink: Memungkinkan Anda mengaktifkan sink yang dinonaktifkan dan memulai ulang log pemilihan rute ke tujuan sink.
  • Delete sink: Memungkinkan Anda menghapus sink dan berhenti merutekan log ke tujuan sink.
  • Memecahkan masalah sink: Membuka Logs Explorer tempat Anda dapat memecahkan masalah error dengan sink.
  • Lihat volume log sink dan tingkat error: Membuka Metrics Explorer tempat Anda dapat melihat dan menganalisis data dari sink.

Dengan mengklik salah satu nama kolom, Anda dapat mengurutkan data dalam urutan menaik atau menurun.

API

  • Guna melihat sink untuk project Google Cloud Anda, panggil projects.sinks.list.

  • Untuk melihat detail sink, panggil projects.sinks.get.

  • Untuk mengupdate sink, panggil projects.sink.update.

    Anda dapat memperbarui tujuan, filter, dan deskripsi sink. Anda juga dapat menonaktifkan atau mengaktifkan kembali sink.

  • Untuk menonaktifkan sink, panggil projects.sink.update dan tetapkan properti disabled ke true.

    Untuk mengaktifkan kembali sink, panggil projects.sink.update dan tetapkan properti disabled ke false.

  • Untuk menghapus sink, panggil projects.sinks.delete.

    Untuk mengetahui informasi selengkapnya tentang salah satu metode pengelolaan sink menggunakan Logging API, lihat referensi LogSink.

gcloud

  • Untuk melihat daftar sink untuk project Google Cloud Anda, 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 flag yang sesuai untuk menentukan resource yang berisi sink. Misalnya, jika Anda membuat sink di tingkat organisasi, gunakan flag --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 menjadi tujuan bucket Cloud Storage baru 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 tanda --disabled:

    gcloud logging sinks update _Default  --disabled
    

    Untuk mengaktifkan kembali sink, gunakan perintah gcloud logging sinks update, hapus flag --disabled, dan sertakan flag --no-disabled:

    gcloud logging sinks update _Default  --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.

Berhenti menyimpan log di bucket log

Untuk setiap project Google Cloud, Logging secara otomatis membuat dua bucket log: _Required dan _Default. Logging akan otomatis membuat dua sink log, _Required dan _Default, yang merutekan log ke bucket yang diberi nama.

Anda tidak dapat menonaktifkan sink _Required. Anda dapat menonaktifkan sink _Default untuk menghentikan penyimpanan log di bucket _Default. Anda juga dapat menonaktifkan sink yang ditentukan pengguna.

Jika Anda menonaktifkan semua sink di project Google Cloud yang mengirim log ke bucket _Default, tidak ada log baru yang akan disimpan di bucket log tersebut. Bucket _Default kosong saat semua log yang disimpan sebelumnya di bucket _Default telah memenuhi periode retensi bucket.

Untuk menonaktifkan sink project Google Cloud yang merutekan log ke bucket _Default, lakukan langkah-langkah berikut:

Konsol

  1. Di panel navigasi konsol Google Cloud, pilih Logging, lalu pilih Log Router:

    Buka Router Log

  2. Untuk menemukan semua sink yang merutekan log ke bucket _Default, filter sink menurut tujuan, lalu masukkan _Default.

    Menemukan semua sink yang merutekan log ke bucket default.

  3. Untuk setiap sink, pilih Menu , lalu pilih Disable sink.

Sink kini dinonaktifkan dan project Google Cloud Anda tidak lagi menyimpan log rute ke bucket _Default.

Untuk mengaktifkan kembali sink yang dinonaktifkan dan memulai ulang log perutean ke tujuan sink, lakukan langkah berikut:

  1. Di panel navigasi konsol Google Cloud, pilih Logging, lalu pilih Log Router:

    Buka Router Log

  2. Untuk menemukan semua sink yang dinonaktifkan yang sebelumnya dikonfigurasi untuk merutekan log ke bucket _Default, filter sink berdasarkan tujuan, lalu masukkan _Default.

  3. Untuk setiap sink, pilih Menu , lalu pilih Enable sink.

API

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

    Identifikasi sink yang diarahkan ke bucket _Default.

  2. Misalnya, untuk menonaktifkan sink _Default, panggil projects.sink.update dan tetapkan properti disabled ke true.

Sink _Default kini dinonaktifkan; dan tidak lagi merutekan log ke bucket _Default.

Untuk menonaktifkan sink lain di project Google Cloud yang dirutekan ke bucket _Default, ulangi langkah-langkah di atas.

Untuk mengaktifkan kembali sink, panggil projects.sink.update dan tetapkan properti disabled ke false.

gcloud

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

    gcloud logging sinks list
    
  2. Identifikasi sink yang diarahkan ke bucket _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. Misalnya, untuk menonaktifkan sink _Default, gunakan perintah gcloud logging sinks update dan sertakan flag --disabled:

    gcloud logging sinks update _Default  --disabled
    

Sink _Default kini dinonaktifkan; dan tidak lagi merutekan log ke bucket _Default.

Untuk menonaktifkan sink lain di project Google Cloud yang dirutekan ke bucket _Default, ulangi langkah-langkah di atas.

Untuk mengaktifkan kembali sink, gunakan perintah gcloud logging sinks update, hapus flag --disabled, dan sertakan flag --no-disabled:

gcloud logging sinks update _Default  --no-disabled

Tetapkan izin tujuan

Bagian ini menjelaskan cara memberikan izin Pengelolaan Identitas dan Akses kepada Logging untuk menulis log ke tujuan sink Anda. Untuk mengetahui daftar lengkap peran dan izin Logging, lihat Kontrol akses.

Cloud Logging membuat akun layanan bersama untuk suatu resource saat sink log 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 saat ini. Jika tujuan sink adalah bucket log dalam project Google Cloud saat ini, sink tidak memerlukan izin tujuan tambahan. Oleh karena itu, nilai kolom identitas penulis dicantumkan sebagai None di konsol, dan tidak dilaporkan oleh API serta perintah Google Cloud CLI.

Berikut adalah petunjuk untuk menetapkan izin level project Google Cloud agar sink Anda dirutekan ke tujuannya. Daripada project Google Cloud, Anda dapat menentukan akun, folder, atau organisasi penagihan:

Konsol

  1. Untuk mendapatkan identitas penulis sink—alamat email—dari sink baru, lakukan langkah berikut:

    1. Di panel navigasi konsol Google Cloud, pilih Logging, lalu pilih Log Router:

      Buka Router Log

    2. Pilih Menu, lalu pilih View sink details. Identitas penulis muncul di panel Sink details.

  2. Jika nilai kolom writerIdentity berisi alamat email, lanjutkan ke langkah berikutnya. Jika nilainya adalah None, Anda tidak perlu mengonfigurasi izin tujuan untuk sink.

  3. Untuk menyalin identitas penulis sink ke papan klip, klik Copy.

  4. Jika Anda memiliki akses Pemilik ke tujuan, tambahkan akun layanan sebagai akun utama IAM di project tujuan:

    • Untuk tujuan Cloud Storage, tambahkan identitas penulis sink sebagai akun utama dengan menggunakan IAM, lalu berikan peran Storage Object Creator (roles/storage.objectCreator).
    • Untuk tujuan BigQuery, tambahkan identitas penulis sink sebagai akun utama dengan 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 berbagai project Google Cloud, tambahkan identitas penulis sink sebagai akun utama menggunakan IAM, lalu berikan peran Logs Bucket Writer (roles/logging.bucketWriter).
    • Untuk tujuan project Google Cloud, tambahkan identitas penulis sink sebagai akun utama dengan menggunakan IAM, lalu berikan peran Penulis Log (roles/logging.logWriter). Secara khusus, akun utama memerlukan izin logging.logEntries.route.
    Jika Anda tidak memiliki akses Owner ke tujuan sink, minta pemilik project untuk menambahkan identitas penulis sebagai akun utama.

API

  1. Panggil metode API projects.sinks.list untuk mencantumkan sink dalam project Google Cloud Anda.

  2. Temukan sink yang izinnya ingin Anda ubah, dan jika detail sink berisi kunci JSON berlabel "writerIdentity", lanjutkan ke langkah berikutnya. Jika detailnya tidak menyertakan kolom "writerIdentity", Anda tidak perlu mengonfigurasi izin tujuan untuk sink.

  3. Jika Anda memiliki akses Pemilik IAM ke tujuan, tambahkan akun layanan ke tujuan dengan melakukan hal berikut:

    • Untuk tujuan Cloud Storage, tambahkan identitas penulis sink sebagai akun utama dengan menggunakan IAM, lalu berikan peran Storage Object Creator (roles/storage.objectCreator).
    • Untuk tujuan BigQuery, tambahkan identitas penulis sink sebagai akun utama dengan 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 berbagai project Google Cloud, tambahkan identitas penulis sink sebagai akun utama menggunakan IAM, lalu berikan peran Logs Bucket Writer (roles/logging.bucketWriter).
    • Untuk tujuan project Google Cloud, tambahkan identitas penulis sink sebagai akun utama dengan menggunakan IAM, lalu berikan peran Penulis Log (roles/logging.logWriter). Secara khusus, akun utama memerlukan izin logging.logEntries.route.
    Jika Anda tidak memiliki akses Owner ke tujuan sink, minta pemilik project untuk menambahkan identitas penulis sebagai akun utama.

gcloud

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

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

    Nilai kolom SERVICE_ACCT_NAME dalam langkah-langkah berikut adalah identitas penulis, yang terlihat mirip dengan berikut:

    serviceAccount:service-123456789012@gcp-sa-logging.iam.gserviceaccount.com
    
  3. Jika Anda memiliki akses Pemilik IAM ke tujuan, tambahkan akun layanan ke tujuan dengan melakukan hal berikut:

    • Untuk tujuan Cloud Storage, tambahkan identitas penulis sink sebagai akun utama dengan menggunakan IAM, lalu berikan peran Storage Object Creator (roles/storage.objectCreator).
    • Untuk tujuan BigQuery, tambahkan identitas penulis sink sebagai akun utama dengan 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 berbagai project Google Cloud, tambahkan identitas penulis sink sebagai akun utama menggunakan IAM, lalu berikan peran Logs Bucket Writer (roles/logging.bucketWriter).
    • Untuk tujuan project Google Cloud, tambahkan identitas penulis sink sebagai akun utama dengan menggunakan IAM, lalu berikan peran Penulis Log (roles/logging.logWriter). Secara khusus, akun utama memerlukan izin logging.logEntries.route.
    Jika Anda tidak memiliki akses Owner ke tujuan sink, minta pemilik project untuk menambahkan identitas penulis sebagai akun utama.

    Misalnya, untuk memberikan peran Logs Writer (roles/logging.logWriter) ke akun layanan service-123456789012@gcp-sa-logging.iam.gserviceaccount.com di project my-test-project, jalankan perintah berikut:

    gcloud projects add-iam-policy-binding my-test-project --member='serviceAccount:service-123456789012@gcp-sa-logging.iam.gserviceaccount.com' --role='roles/logging.logWriter'
    

Batasan tujuan

Bergantung pada tujuan rute log Anda, mungkin ada beberapa batasan.

Merutekan ke bucket log di berbagai project Google Cloud

Batasan berikut berlaku saat Anda mengarahkan log ke bucket log di berbagai project Google Cloud:

  • Error Reporting dinonaktifkan pada log yang disimpan di bucket log yang menggunakan kunci enkripsi yang dikelola pelanggan.

Merutekan ke project Google Cloud yang berbeda

Batasan berikut berlaku saat Anda merutekan log ke project Google Cloud yang berbeda:

  • Ada batas satu hop. Misalnya, jika Anda mengarahkan entri log dari project A ke project B, Anda tidak dapat mengarahkan entri log dari project B ke project lain.

  • Log audit tidak dirutekan ke bucket _Required di project tujuan. Anda harus membuat sink atau bucket lain untuk menyimpannya.

  • Jika organisasi atau folder yang berisi project Google Cloud yang menjadi tujuan perutean memiliki sink gabungan yang sudah ada, log tidak akan dirutekan oleh sink gabungan tersebut.

Contoh kode

Untuk menggunakan kode library klien guna mengonfigurasi sink dalam bahasa pilihan Anda, lihat Mencatat log library klien: Sink log.

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.

Pulihkan filter sink _Default

Jika mengedit filter untuk sink _Default, Anda mungkin ingin memulihkan filter default-nya. Untuk melakukannya, masukkan filter penyertaan 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")

Mengecualikan container dan log pod Google Kubernetes Engine

Untuk mengecualikan log pod dan container Google Kubernetes Engine untuk sistem GKE namespaces, 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 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 log node, pod, dan container Google Kubernetes Engine yang tersimpan dalam bucket log, gunakan Metrics Explorer di Cloud Monitoring.

Mengecualikan log Dataflow tidak diperlukan untuk kemampuan dukungan

Untuk mengecualikan 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 di Cloud Monitoring.

Kemampuan mendukung

Meskipun Cloud Logging memberi Anda kemampuan untuk mengecualikan log agar tidak disimpan dalam bucket log, sebaiknya Anda mempertimbangkan untuk menyimpan log yang membantu dengan dukungan. Menggunakan log ini dapat membantu Anda memecahkan dan mengidentifikasi masalah pada aplikasi Anda dengan cepat.

Misalnya, log sistem GKE berguna untuk memecahkan masalah aplikasi dan cluster GKE Anda karena log tersebut dibuat untuk peristiwa yang terjadi di cluster Anda. 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 menulis setidaknya log sistem (labels."dataflow.googleapis.com/log_type"="system") dan log dukungan (labels."dataflow.googleapis.com/log_type"="supportability") untuk mencatat bucket ke dalam 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