Dokumen ini memberikan informasi yang Anda butuhkan untuk membantu Anda memutuskan apakah akan mengirim log aplikasi ke Cloud Logging secara terprogram menggunakan library klien atau menggunakan agen logging. Agen logging mengirim data yang ditulis ke file, seperti
stdout atau file, sebagai log ke Cloud Logging. Layanan seperti
Google Kubernetes Engine, lingkungan fleksibel App Engine, dan Cloud Run Functions, berisi agen logging terintegrasi. Untuk Compute Engine, Anda dapat menginstal
Agen Operasional.
Agen ini mengumpulkan log dari lokasi file atau layanan logging yang diketahui seperti Windows Event Log, journald, atau syslogd.
Jika tidak dapat menggunakan library klien atau agen Logging, atau jika hanya ingin bereksperimen, Anda dapat menulis log menggunakan perintah
gcloud logging write
atau dengan mengirim perintah HTTP ke endpoint Cloud Logging API
entries.write.
Cloud Logging API mendukung panggilan HTTP dan gRPC. Agen Operasional dan sebagian besar library klien Logging memanggil Logging API gRPC. Library klien untuk beberapa bahasa memanggil REST Logging API.
Memilih agen atau library klien
Saat Anda memutuskan antara agen atau library klien, pertimbangkan pertanyaan berikut:
- Apakah aplikasi Anda berjalan di luar Google Cloud?
Jika aplikasi Anda tidak berjalan di Google Cloud, Anda memerlukan cara untuk mengirim log ke Logging API. Untuk merutekan log dari sistem lokal ke Logging, sebaiknya gunakan BindPlane, yang men-deploy dan mengelola pengumpul OpenTelemetry untuk mengirim telemetri ke Google Cloud. Untuk mengetahui informasi selengkapnya, lihat Tentang BindPlane.

Atau, Anda dapat merutekan log ke Logging langsung dari aplikasi menggunakan library klien. Untuk lingkungan sementara, seperti komputasi Serverless, Anda harus menggunakan library klien untuk melakukan panggilan langsung ke Logging API.
- Apakah layanan Google Cloud yang menjalankan aplikasi Anda mendukung
- menulis konten
stdoutdanstderrke project Anda? Beberapa layanan Google Cloud dikelola sepenuhnya, sehingga Anda tidak perlu menggunakan agen untuk mengirim log ke project Google Cloud Anda. Anda dapat menggunakan framework logging yang sudah ada dalam bahasa pilihan Anda, seperti Go, Node.js, dan Python, untuk mengirim log ke Logging di produk yang mendukung
stdoutdanstderrsecara default. Keuntungan mengandalkanstdoutdanstderrdaripada menggunakan library klien adalah bahwa error aplikasi tidak akan mengganggu pengiriman log ke project Anda. Untuk mengetahui informasi tentang pengiriman log terstruktur melaluistdoutdanstderr, lihat bagian, Apakah aplikasi Anda memiliki fleksibilitas untuk mengubah format log?.Anda dapat menggunakan library klien Logging, tetapi perlu diingat bahwa library tersebut dapat memperkenalkan dependensi pada Logging untuk pengujian lokal, padahal Anda tidak memerlukannya. Penggunaan library klien juga mungkin memerlukan pengodean yang lebih kompleks untuk menangani buffering dan percobaan ulang secara eksplisit. Selain itu, setiap penggunaan library klien Logging akan membuat aliran koneksi baru ke API. Koneksi baru ini menimbulkan kompleksitas yang lebih besar, menggunakan port tambahan, dan mengirim permintaan terpisah hanya dengan log dari aplikasi, yang bisa menjadi tidak efisien jika tidak banyak log.
- Apakah log aplikasi perlu dapat diakses di lingkungan lokal Anda?
Jika perlu mengakses log aplikasi di lingkungan lokal, untuk tujuan debug dan lainnya, Anda dapat menggunakan modul logging di beberapa bahasa untuk menghasilkan output ke
stdoutdanstderr. Library klien logging untuk beberapa bahasa mendukung perutean log kestdoutdanstderr.Saat menjalankan aplikasi di layanan Google Cloud yang tidak mendukung pengiriman otomatis log yang ditulis ke
stdoutdanstderrke projectGoogle Cloud Anda, Anda dapat mengumpulkan logstdoutdanstderrdalam file di disk dan mengonfigurasi agen untuk meng-scrape log tersebut dan mengirimkannya ke Logging. Untuk mengetahui informasi selengkapnya, lihat panduan konfigurasi untuk Agen Operasional.- Apakah proses penginstalan agen dilakukan secara manual atau otomatis?
Beberapa layanan menginstal agen secara otomatis atau memungkinkan Anda menginstal agen sendiri. Jika layanan yang Anda gunakan tidak mengizinkan Anda menginstal agen, maka Anda harus menggunakan library klien untuk menggunakan Logging.
- Apakah Anda sudah menjalankan Fluentd di sistem Anda?
Jika sudah menjalankan Fluentd di sistem, dan ingin menggunakan daemon tersebut untuk mengirim log ke Logging, gunakan Google Cloud plugin Logging untuk fluentd.
- Apakah Anda juga mengumpulkan metrik aplikasi untuk Cloud Monitoring?
Di VM Compute Engine, Agen Operasional dapat mengumpulkan log dan sebagian besar metrik. Lihat Fitur Agen Operasional untuk mengetahui informasi selengkapnya.
Jika Agen Operasional tidak sesuai dengan kasus penggunaan Anda, Anda dapat menggunakan library klien Pemantauan untuk mengumpulkan metrik Anda.
- Apakah aplikasi Anda memiliki fleksibilitas untuk mengubah format log?
Pertanyaan ini membantu Anda memutuskan apakah aplikasi Anda dapat membuat log terstruktur. Logging mengenali log terstruktur jika Anda mengirim log ke Logging API dalam format logging terstruktur. Library klien menyediakan metode untuk menangani format ini.
Ada dua cara untuk menulis log terstruktur: yang pertama adalah menetapkan kolom tertentu dalam envelope
LogEntry, dan yang kedua adalah menetapkan kolomjsonPayloaddalam envelopeLogEntry. Skema untuk yang pertama ditentukan oleh Cloud Logging, sedangkan skema untuk yang kedua ditentukan oleh pengguna.Anda harus mengonfigurasi agen untuk mengenali log terstruktur. Secara default, agen dikonfigurasi untuk mendeteksi log dalam format JSON dan menanganinya sebagai log terstruktur. Jika aplikasi Anda memiliki format log sendiri yang tidak dapat Anda ubah, tetapi Anda ingin log tersebut dikenali sebagai log terstruktur, maka Anda harus menulis log dalam format logging terstruktur, biasanya JSON, ke
stdoutdanstderr, sehingga agen dapat mengenalinya sebagai log terstruktur. Jika tidak, Anda harus mengonfigurasi agen agar memahami format Anda sendiri.
Ringkasan setiap opsi
Library klien Cloud Logging
Kelebihan
- Anda dapat merutekan log langsung ke Cloud Logging API.
- Beberapa bahasa dapat menghasilkan log ke
stdoutdanstderrmenggunakan library.
Kekurangan
- Aplikasi yang error akan menghentikan pengiriman log ke project Google Cloud Anda.
Agen Operasional
Kelebihan
- Agen Operasional dapat mengirim log dan metrik menggunakan teknologi open source yang stabil: Fluent Bit untuk pengumpulan log dan OpenTelemetry Collector untuk pengumpulan metrik.
- Anda dapat mengumpulkan log dan metrik dari banyak aplikasi umum; lihat Memantau dan mengumpulkan log dari aplikasi pihak ketiga.
- Anda dapat menyimpan log di lingkungan lokal.
- Anda mungkin dapat memulihkan log dari error aplikasi.
- Ops Agent sedang dalam pengembangan aktif.
Kekurangan
- Fluent Bit hanya mendukung encoding UTF-8. Tidak mendukung konversi encoding.
Log
stdoutdanstderrotomatis dikirim ke project Google Cloud Anda- Keuntungan
- Proses ini adalah cara umum untuk memancarkan log ke lingkungan lokal.
- Anda dapat menggunakan library logging arbitrer.
- Anda mungkin dapat memulihkan log dari error aplikasi.
- Kekurangan
- Tidak semua lingkungan otomatis merutekan log ke Logging.
- Keuntungan