Dokumen ini menjelaskan cara membuat sink agregat. Dengan sink gabungan, Anda dapat menggabungkan dan merutekan log yang dihasilkan oleh resourceGoogle Cloud di organisasi atau folder ke lokasi terpusat.
Sebelum memulai
Sebelum membuat sink, pastikan hal berikut:
Anda memahami perilaku sink gabungan. Untuk mempelajari sink ini, lihat Ringkasan sink 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 organisasi atau folderGoogle Cloud 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 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 tersebut dapat berada di organisasi mana pun. Semua tujuan lainnya dapat berada di project apa pun di organisasi apa 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
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 informasi selengkapnya, lihat Mengautentikasi untuk menggunakan REST dalam Google Cloud dokumentasi autentikasi.
Membuat sink gabungan
Untuk mengonfigurasi sink gabungan, buat sink, lalu berikan izin sink untuk menulis ke tujuan. Bagian ini menjelaskan cara membuat sink gabungan. Untuk informasi tentang memberikan izin ke sink, lihat bagian halaman ini yang berjudul Menetapkan izin tujuan.
Anda dapat membuat hingga 200 sink per folder atau organisasi.
Konsol
Untuk membuat sink gabungan bagi folder atau organisasi Anda, lakukan tindakan 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 folder atau organisasi yang ada.
Pilih Create sink.
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.
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 dari 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 mengizinkan operasi tulis. Set data dapat berupa tabel yang dipartisi atau di-shard berdasarkan 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 Choose logs to include in sink, pilih resource yang akan disertakan dalam sink.
Untuk sink intersepsi, pilih Intercept logs ingested by this organization and all child resources.
Untuk sink yang tidak menyadap, pilih Sertakan log yang diserap oleh resource ini dan semua resource turunan.
Di kolom Build inclusion filter, 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 Choose logs to exclude from the sink, lakukan hal berikut:
Di kolom Nama filter pengecualian, masukkan nama.
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.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 OR logika untuk menggabungkan klausa
logName
.
Anda dapat membuat hingga 50 filter pengecualian per sink. Perhatikan bahwa panjang filter tidak boleh melebihi 20.000 karakter.
Pilih Create sink.
Untuk menyelesaikan konfigurasi sink gabungan, berikan izin kepada akun layanan untuk sink agar dapat menulis entri log ke tujuan sink. Untuk mengetahui informasi selengkapnya, lihat Menetapkan izin tujuan.
gcloud
Untuk membuat sink gabungan, gunakan perintah
logging sinks create
:Untuk membuat sink, panggil perintah
gcloud logging sinks create
, dan pastikan Anda menyertakan opsi--include-children
.Sebelum menggunakan perintah berikut, 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. Untuk 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 intersepsi, 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"
Berikan izin sink ke akun layanan untuk menulis ke tujuan sink Anda. Untuk mengetahui informasi selengkapnya, lihat Menetapkan izin tujuan.
REST
Untuk membuat sink gabungan, gunakan metode Logging API
organizations.sinks.create
ataufolders.sinks.create
. Siapkan argumen ke metode sebagai berikut:Tetapkan kolom
parent
menjadi Google Cloud organisasi atau folder tempat membuat sink. Induk harus berupa salah satu dari berikut ini:organizations/ORGANIZATION_ID
folders/FOLDER_ID
Dalam objek
LogSink
di isi permintaan metode, lakukan salah satu hal berikut:Tetapkan
includeChildren
keTrue
.Untuk membuat sink intersepsi, tetapkan 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.Berikan izin sink ke akun layanan untuk menulis ke tujuan sink Anda. Untuk mengetahui informasi selengkapnya, lihat Menetapkan izin tujuan.
Setiap perubahan yang dilakukan pada sink mungkin memerlukan waktu beberapa menit untuk diterapkan.
Filter untuk sink gabungan
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:
:
adalah operator substring. Jangan mengganti operator=
....
mewakili perbandingan filter tambahan.- Variabel ditunjukkan dengan teks berwarna. Ganti dengan nilai yang valid.
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 di 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, karena alasan kepatuhan, Anda dapat 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 Anda arahkan. Jika Anda ingin merutekan entri log dari folder dan semua project dalam folder tersebut, filter harus mencantumkan folder dan setiap project yang terdapat dalam folder tersebut, dan juga menggabungkan pernyataan dengan klausa
OR
.Filter berikut membatasi entri log ke project, folder, atau organisasi Google Cloud tertentu:
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 turunanmy-folder
, tidak dirutekan ke tujuan.Pilih resource yang dimonitor
Untuk merutekan entri log hanya dari resource tertentu yang dipantau 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 daftar jenis resource, lihat Jenis resource yang dimonitor.
Memilih contoh 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 ke Logging untuk menulis entri log ke tujuan sink Anda. Untuk daftar lengkap peran dan izin Logging, lihat Kontrol akses.
Saat Anda membuat atau memperbarui sink yang merutekan entri log ke tujuan selain bucket log dalam project saat ini, akun layanan untuk sink tersebut diperlukan. Logging otomatis membuat dan mengelola akun layanan untuk Anda:
- 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 sink. Mulai 22 Mei 2023, logging menggunakan akun layanan bersama untuk semua sink di resource pokok.
Identitas penulis sink adalah ID akun layanan yang terkait dengan sink tersebut. Semua sink memiliki identitas penulis kecuali jika menulis ke bucket log dalam project Google Cloud saat ini. Alamat email dalam identitas penulis mengidentifikasi akun utama yang harus memiliki akses untuk menulis data ke tujuan.
Untuk merutekan 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 dirutekan ke tujuannya, lakukan hal berikut:
Konsol
Untuk mendapatkan informasi tentang akun layanan untuk sink Anda, lakukan hal 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 sink. 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 ini 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 konsol Google Cloud , buka halaman IAM:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah IAM & Admin.
Di toolbar Google Cloud console, 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, lalu berikan peran IAM:
- Google Cloud project: 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
).
- Google Cloud project: Berikan
peran Logs Writer
(
-
gcloud
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, buat 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 ini 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, buat 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. Berikan peran IAM kepada identitas penulis sink berdasarkan tujuan sink log:
- Google Cloud project: 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
).
- Google Cloud project: Berikan
peran Logs Writer
(
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.
Langkah berikutnya
Pelajari cara membuat tampilan log di bucket log. Tampilan log memungkinkan Anda memberikan akses baca kepada akun utama ke sebagian entri log yang disimpan di bucket log.
Untuk 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 pemilihan rute dan sink.
Untuk mempelajari cara melihat log di tujuannya, serta cara log diformat dan diatur, lihat Melihat log di tujuan sink
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-06-30 UTC.
-