Dokumen ini menjelaskan cara membuat sink gabungan. Sink gabungan memungkinkan Anda menggabungkan dan mengarahkan log yang dihasilkan oleh Google Cloud resource di organisasi atau folder Anda ke lokasi terpusat.
Sebelum memulai
Sebelum Anda membuat tujuan, pastikan hal berikut:
Anda memahami perilaku sink gabungan. Untuk mempelajari tujuan ini, lihat Ringkasan tujuan gabungan.
Anda memiliki Google Cloud folder atau organisasi dengan entri log yang dapat Anda lihat di Logs Explorer.
Anda memiliki salah satu peran IAM berikut untuk Google Cloud organisasi atau folder tempat Anda merutekan entri log.
- Pemilik (
roles/owner
) - Logging Admin (
roles/logging.admin
) - Logs Configuration Writer (
roles/logging.configWriter
)
Izin yang terdapat dalam peran ini memungkinkan Anda membuat, menghapus, atau mengubah sink. Untuk mengetahui informasi tentang cara menetapkan peran IAM, lihat Panduan kontrol akses Logging.
- Pemilik (
Tujuan sink gabungan ada atau Anda memiliki kemampuan untuk membuatnya.
Jika tujuannya adalah project Google Cloud , project dapat berada di organisasi mana pun. Semua tujuan lainnya dapat berada di project mana pun di organisasi mana pun.
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
-
Di konsol Google Cloud , buka halaman Log Router:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Logging.
Pilih folder atau organisasi yang sudah ada.
Pilih Buat sink.
Di panel Sink details, masukkan detail berikut:
Nama sink: Berikan ID untuk sink; perhatikan bahwa setelah Anda membuat sink, Anda tidak dapat mengganti nama sink, tetapi Anda dapat menghapusnya dan membuat sink baru.
Deskripsi sink (opsional): Jelaskan tujuan atau kasus penggunaan sink.
Di menu Select sink service, pilih jenis tujuan, lalu selesaikan dialog untuk menentukan tujuan. Anda dapat memilih tujuan yang ada atau membuat tujuan.
Untuk sink intersepsi, pilih Google Cloud project, lalu masukkan nama yang sepenuhnya memenuhi syarat untuk project Google Cloud tujuan:
logging.googleapis.com/projects/DESTINATION_PROJECT_ID
Untuk sink non-intersepsi, pilih tujuan, lalu masukkan nama tujuan yang sepenuhnya memenuhi syarat. Tujuan berikut didukung:
Google Cloud project
logging.googleapis.com/projects/DESTINATION_PROJECT_ID
Bucket Cloud Logging
logging.googleapis.com/projects/DESTINATION_PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME
BigQuery dataset
Anda harus memasukkan nama set data yang sepenuhnya memenuhi syarat dan memiliki akses tulis. Set data dapat berupa tabel berpartisi atau tabel yang di-shard menurut tanggal. Jangan masukkan nama set data tertaut. Set data tertaut bersifat hanya baca.
bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID
Bucket Cloud Storage
storage.googleapis.com/BUCKET_NAME
Topik Pub/Sub
pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
Splunk
Masukkan topik Pub/Sub untuk layanan Splunk Anda.
Di panel Pilih log untuk disertakan dalam sink, pilih resource yang akan disertakan dalam sink.
Untuk sink penyadapan, pilih Sadap log yang diserap oleh organisasi ini dan semua resource turunan.
Untuk sink non-penyisipan, pilih Sertakan log yang diserap oleh resource ini dan semua resource turunan.
Di kolom Buat filter penyertaan, masukkan ekspresi filter yang cocok dengan entri log yang ingin Anda sertakan. Jika Anda tidak menetapkan filter, semua entri log dari resource yang dipilih akan dirutekan ke tujuan.
Misalnya, Anda mungkin ingin membuat filter untuk merutekan semua log audit 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")
Untuk contoh filter, lihat bagian Membuat filter untuk sink gabungan di halaman ini.
Perhatikan bahwa panjang filter tidak boleh melebihi 20.000 karakter.
Opsional: Untuk memverifikasi bahwa Anda memasukkan filter yang benar, pilih Pratinjau log. Tindakan ini akan membuka Logs Explorer di tab baru dengan filter yang telah diisi otomatis.
Opsional: Di panel Pilih log yang akan dikecualikan dari sink, lakukan hal berikut:
Di kolom Nama filter pengecualian, masukkan nama.
Di kolom Buat filter pengecualian, 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.Misalnya, untuk mengecualikan entri log dari project tertentu agar tidak dirutekan ke tujuan, tambahkan filter pengecualian berikut:
logName:projects/PROJECT_ID
Untuk mengecualikan entri log dari beberapa project, gunakan operator logical-OR untuk menggabungkan klausa
logName
.
Anda dapat membuat hingga 50 filter pengecualian per sinkronisasi. Perhatikan bahwa panjang filter tidak boleh melebihi 20.000 karakter.
Pilih Buat sink.
Untuk menyelesaikan konfigurasi sink gabungan, berikan izin kepada akun layanan sink untuk menulis entri log ke tujuan sink. Untuk mengetahui informasi selengkapnya, lihat Menetapkan izin tujuan.
Untuk membuat sink, panggil perintah
gcloud logging sinks create
, dan pastikan Anda menyertakan opsi--include-children
.Sebelum menggunakan perintah berikut, lakukan 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. Untuk mengetahui informasi tentang format tujuan ini, lihat Format jalur tujuan.
- INCLUSION_FILTER: Filter inklusi untuk sink. Untuk contoh filter, lihat Membuat filter untuk sink gabungan.
- FOLDER_ID: ID folder. Jika Anda ingin membuat sink
di tingkat organisasi, ganti
--folder=FOLDER_ID
dengan-- organization=ORGANIZATION_ID
.
Jalankan perintah
gcloud logging sinks create
:gcloud logging sinks create SINK_NAME \ SINK_DESTINATION --include-children \ --folder=FOLDER_ID --log-filter="INCLUSION_FILTER"
Anda juga dapat memberikan opsi berikut:
- Untuk membuat sink yang mencegat, sertakan opsi
--intercept-children
.
Misalnya, jika Anda membuat sink gabungan di tingkat folder dan tujuannya adalah topik Pub/Sub, perintah Anda mungkin terlihat seperti berikut:
gcloud logging sinks create SINK_NAME \ pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID --include-children \ --folder=FOLDER_ID --log-filter="logName:activity"
Beri akun layanan untuk sink izin untuk menulis ke tujuan sink Anda. Untuk mengetahui informasi selengkapnya, lihat Menetapkan izin tujuan.
Tetapkan kolom
parent
menjadi organisasi atau folder Google Cloud tempat sink akan dibuat. Induknya harus berupa salah satu dari berikut:organizations/ORGANIZATION_ID
folders/FOLDER_ID
Di objek
LogSink
dalam isi permintaan metode, lakukan salah satu hal berikut:Tetapkan
includeChildren
keTrue
.Untuk membuat sink penyadapan, tetapkan juga kolom
interceptChildren
keTrue
.
Tetapkan kolom
filter
agar cocok dengan entri log yang ingin Anda sertakan.Untuk contoh filter, lihat Membuat filter untuk sink gabungan.
Panjang filter tidak boleh melebihi 20.000 karakter.
Tetapkan kolom
LogSink
yang tersisa seperti yang Anda lakukan untuk sink apa pun. Untuk mengetahui informasi selengkapnya, lihat Merutekan log ke tujuan yang didukung.Panggil
organizations.sinks.create
ataufolders.sinks.create
untuk membuat sink.Beri akun layanan untuk sink izin untuk menulis ke tujuan sink Anda. Untuk mengetahui informasi selengkapnya, lihat Menetapkan izin tujuan.
:
adalah operator substring. Jangan mengganti operator=
....
mewakili perbandingan filter tambahan.- Variabel ditunjukkan dengan teks berwarna. Ganti dengan nilai yang valid.
- Mulai 22 Mei 2023, saat Anda membuat sink dan tidak ada akun layanan untuk resource pokok, Logging akan membuat akun layanan. Logging menggunakan akun layanan yang sama untuk semua sink di resource pokok. Resource dapat berupa Google Cloud project, organisasi, folder, atau akun penagihan.
- Sebelum 22 Mei 2023, Logging membuat akun layanan untuk setiap tujuan. Mulai 22 Mei 2023, Logging menggunakan akun layanan bersama untuk semua sink di resource pokok.
Untuk mendapatkan informasi tentang akun layanan untuk tujuan ekspor Anda, lakukan langkah-langkah berikut:
-
Di konsol Google Cloud , buka halaman Log Router:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Logging.
Pilih more_vert Menu, lalu pilih Lihat detail sinkronisasi. Identitas penulis muncul di panel Sink details.
Jika nilai kolom
writerIdentity
berisi alamat email, lanjutkan ke langkah berikutnya. Jika nilainyaNone
, Anda tidak perlu mengonfigurasi izin tujuan.Salin identitas penulis sink ke papan klip Anda. Berikut ilustrasi identitas penulis:
serviceAccount:service-123456789012@gcp-sa-logging.
-
Berikan izin kepada akun utama yang ditentukan oleh identitas penulis sink untuk menulis data log ke tujuan:
-
Di Google Cloud konsol, buka halaman IAM:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah IAM & Admin.
Di toolbar konsol Google Cloud , pilih project yang menyimpan tujuan sink gabungan. Jika tujuannya adalah project, pilih project tersebut.
Klik
Berikan akses.Masukkan akun utama yang ditentukan oleh identitas penulis sink dan kemudian berikan peran IAM:
- projectGoogle Cloud : Berikan
peran Logs Writer
(
roles/logging.logWriter
). Secara khusus, akun utama memerlukan izinlogging.logEntries.route
. - Bucket log: Berikan
peran Logs Bucket Writer
(
roles/logging.bucketWriter
). - Bucket Cloud Storage: Berikan
peran Storage Object Creator
(
roles/storage.objectCreator
). - Set data BigQuery: Berikan
peran BigQuery Data Editor
(
roles/bigquery.dataEditor
). - Topik Pub/Sub, termasuk Splunk: Berikan
peran Pub/Sub Publisher
(
roles/pubsub.publisher
).
- projectGoogle Cloud : Berikan
peran Logs Writer
(
-
Pastikan Anda memiliki akses Pemilik di projectGoogle Cloud yang berisi tujuan. Jika Anda tidak memiliki akses Pemilik ke tujuan sink, minta pemilik project untuk menambahkan identitas penulis sebagai akun utama.
Untuk mendapatkan informasi tentang akun layanan untuk sink Anda, panggil metode
gcloud logging sinks describe
.Sebelum menggunakan perintah berikut, lakukan penggantian berikut:
- SINK_NAME: Nama sink log. Anda tidak dapat mengubah nama sink setelah membuatnya.
Jalankan perintah
gcloud logging sinks describe
:gcloud logging sinks describe SINK_NAME
Jika detail sink berisi kolom berlabel
writerIdentity
, lanjutkan ke langkah berikutnya. Jika detail tidak menyertakan kolomwriterIdentity
, Anda tidak perlu mengonfigurasi izin tujuan untuk sink.Salin identitas penulis sink ke papan klip Anda. Berikut ilustrasi identitas penulis:
serviceAccount:service-123456789012@gcp-sa-logging.
Berikan izin kepada identitas penulis sink untuk menulis data log ke tujuan dengan memanggil perintah
gcloud projects add-iam-policy-binding
.Sebelum menggunakan perintah berikut, lakukan penggantian berikut:
- PROJECT_ID: ID project. Pilih project yang menyimpan tujuan sink gabungan. Jika tujuannya adalah project, pilih project tersebut.
- PRINCIPAL: ID untuk akun utama yang ingin Anda
berikan peran. ID utama biasanya memiliki bentuk berikut:
PRINCIPAL-TYPE:ID
. Misalnya,user:my-user@example.com
. Untuk mengetahui daftar lengkap format yang dapat dimilikiPRINCIPAL
, lihat ID utama. ROLE: Peran IAM. Beri identitas penulis sink peran IAM berdasarkan tujuan sink log:
- projectGoogle Cloud : Berikan
peran Logs Writer
(
roles/logging.logWriter
). Secara khusus, akun utama memerlukan izinlogging.logEntries.route
. - Bucket log: Berikan
peran Logs Bucket Writer
(
roles/logging.bucketWriter
). - Bucket Cloud Storage: Berikan
peran Storage Object Creator
(
roles/storage.objectCreator
). - Set data BigQuery: Berikan
peran BigQuery Data Editor
(
roles/bigquery.dataEditor
). - Topik Pub/Sub, termasuk Splunk: Berikan
peran Pub/Sub Publisher
(
roles/pubsub.publisher
).
- projectGoogle Cloud : Berikan
peran Logs Writer
(
Jalankan perintah
gcloud projects add-iam-policy-binding
:gcloud projects add-iam-policy-binding PROJECT_ID --member=PRINCIPAL --role=ROLE
Pelajari cara membuat tampilan log pada bucket log. Tampilan log memungkinkan Anda memberikan akses baca kepada akun utama ke subset entri log yang disimpan dalam bucket log.
Untuk mengetahui informasi tentang cara mengelola sink yang ada, lihat Merutekan log ke tujuan yang didukung: Mengelola sink.
Jika Anda mengalami masalah saat menggunakan sink untuk merutekan log, lihat Memecahkan masalah perutean dan sink.
Untuk mempelajari cara melihat log di tujuannya, serta cara log diformat dan diatur, lihat Melihat log di tujuan sink
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
REST
Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
Untuk mengetahui informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Google Cloud .
Membuat sink gabungan
Untuk mengonfigurasi sink gabungan, buat sink, lalu berikan izin kepada sink untuk menulis ke tujuan. Bagian ini menjelaskan cara membuat sink gabungan. Untuk mengetahui informasi tentang memberikan izin ke tujuan, lihat bagian di halaman ini yang berjudul Menetapkan izin tujuan.
Anda dapat membuat hingga 200 sink per folder atau organisasi.
Konsol
Untuk membuat sink gabungan untuk folder atau organisasi Anda, lakukan hal berikut:
gcloud
Untuk membuat sink gabungan, gunakan perintah
logging sinks create
:REST
Untuk membuat sink gabungan, gunakan metode
organizations.sinks.create
ataufolders.sinks.create
Logging API. Siapkan argumen ke metode sebagai berikut:Setiap perubahan yang dilakukan pada sink mungkin memerlukan waktu beberapa menit untuk diterapkan.
Filter untuk sink yang digabungkan
Bagian ini memberikan contoh filter yang dapat Anda gunakan di sink gabungan. Untuk contoh lainnya, lihat Contoh kueri menggunakan Logs Explorer.
Beberapa contoh menggunakan notasi berikut:
Panjang filter dibatasi hingga 20.000 karakter.
Untuk mengetahui detail selengkapnya tentang sintaksis pemfilteran, lihat Bahasa kueri logging.
Pilih sumber log
Untuk merutekan entri log dari semua resource turunan, jangan tentukan project, folder, atau organisasi dalam filter penyertaan dan pengecualian sink Anda. Misalnya, Anda mengonfigurasi sink gabungan untuk organisasi dengan filter berikut:
resource.type="gce_instance"
Dengan filter sebelumnya, entri log dengan jenis resource instance Compute Engine yang ditulis ke turunan organisasi tersebut akan dirutekan oleh sink gabungan ke tujuan.
Namun, mungkin ada situasi saat Anda ingin menggunakan sink gabungan untuk merutekan entri log hanya dari resource turunan tertentu. Misalnya, untuk alasan kepatuhan, Anda mungkin ingin menyimpan log audit dari folder atau project tertentu di bucket Cloud Storage-nya sendiri. Dalam situasi ini, konfigurasikan filter penyertaan untuk menentukan setiap resource turunan yang entri lognya ingin dirutekan. Jika Anda ingin merutekan entri log dari folder dan semua project di dalam folder tersebut, filter harus mencantumkan folder dan setiap project yang ada di dalam folder tersebut, serta menggabungkan pernyataan dengan klausa
OR
.Filter berikut membatasi entri log ke project, folder, atau organisasi tertentu Google Cloud :
logName:"projects/PROJECT_ID/logs/" AND ...
logName:("projects/PROJECT_A_ID/logs/" OR "projects/PROJECT_B_ID/logs/") AND ...
logName:"folders/FOLDER_ID/logs/" AND ...
logName:"organizations/ORGANIZATION_ID/logs/" AND ...
Misalnya, untuk merutekan hanya entri log yang ditulis ke instance Compute Engine yang ditulis ke folder
my-folder
, gunakan filter berikut:logName:"folders/my-folder/logs/" AND resource.type="gce_instance"
Dengan filter sebelumnya, entri log yang ditulis ke resource selain
my-folder
, termasuk entri log yang ditulis ke project Google Cloud yang merupakan turunan darimy-folder
, tidak akan dirutekan ke tujuan.Pilih resource yang dipantau
Untuk merutekan entri log hanya dari resource yang dipantau tertentu dalam projectGoogle Cloud , gunakan beberapa perbandingan untuk menentukan resource secara tepat:
logName:"projects/PROJECT_ID/logs" AND resource.type=RESOURCE_TYPE AND resource.labels.instance_id=INSTANCE_ID
Untuk mengetahui daftar jenis resource, lihat Jenis resource yang dimonitor.
Pilih sampel entri log
Untuk merutekan sampel acak entri log, tambahkan fungsi bawaan
sample
. Misalnya, untuk merutekan hanya sepuluh persen entri log yang cocok dengan filter saat ini, gunakan penambahan ini:sample(insertId, 0.10) AND ...
Untuk mengetahui informasi selengkapnya, lihat fungsi
sample
.Untuk mengetahui informasi selengkapnya tentang filter Cloud Logging, lihat Bahasa kueri logging.
Menetapkan izin tujuan
Bagian ini menjelaskan cara memberikan izin Identity and Access Management kepada Logging untuk menulis entri log ke tujuan sink Anda. Untuk mengetahui daftar lengkap peran dan izin Logging, lihat Kontrol akses.
Saat Anda membuat atau memperbarui sink yang merutekan entri log ke tujuan selain bucket log di project saat ini, akun layanan untuk sink tersebut diperlukan. Logging otomatis membuat dan mengelola akun layanan untuk Anda:
Identitas penulis sink adalah ID akun layanan yang terkait dengan sink tersebut. Semua sink memiliki identitas penulis, kecuali jika sink tersebut menulis ke bucket log di project Google Cloud saat ini. Alamat email dalam identitas penulis mengidentifikasi prinsipal yang harus memiliki akses untuk menulis data ke tujuan.
Untuk mengarahkan entri log ke resource yang dilindungi oleh perimeter layanan, Anda harus menambahkan akun layanan untuk sink tersebut ke tingkat akses, lalu menetapkannya ke perimeter layanan tujuan. Hal ini tidak diperlukan untuk sink yang tidak digabungkan. Untuk mengetahui detailnya, lihat Kontrol Layanan VPC: Cloud Logging.
Untuk menetapkan izin agar sink Anda dapat merutekan ke tujuannya, lakukan hal berikut:
Konsol
gcloud
REST
Sebaiknya gunakan konsol Google Cloud atau Google Cloud CLI untuk memberikan peran ke akun layanan.
Langkah berikutnya
Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-07-10 UTC.
-