Untuk aplikasi Node.js, plugin dikelola untuk library logging Winston dan Bunyan yang populer. Winston adalah library tujuan umum, yang mengimplementasikan berbagai formator dan transpor log. Bunyan, yang dikhususkan untuk log JSON terstruktur, mendukung pemformatan log dengan memindahkan ke command line Bunyan.
Anda juga dapat menggunakan library klien Logging untuk Node.js secara langsung, atau membuat integrasi Anda sendiri dengan library logging pilihan Anda. Misalnya, Anda dapat menggunakan contoh framework log Pino.
Agen Logging tidak perlu diinstal untuk menggunakan Winston atau Bunyan di instance virtual machine (VM) Compute Engine.
Sebelum memulai
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Logging API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Logging API.
- Siapkan lingkungan Anda untuk pengembangan Node.js.
Mengonfigurasi logging
Bagian ini menjelaskan cara menginstal dan mengonfigurasi plugin untuk library logging Winston dan Bunyan. Untuk Bunyan, informasi diberikan tentang cara menggunakan Bunyan dengan aplikasi Node.js Express.
Anda dapat menggunakan library atau framework lain. Misalnya, Anda dapat menggunakan framework log Pino. Untuk kode contoh yang menggunakan OpenTelemetry untuk mengumpulkan metrik dan data rekaman aktivitas, serta framework log Pino untuk mengumpulkan data log, lihat Membuat rekaman aktivitas dan metrik dengan Node.js. Jika menggunakan Pino, Anda harus menerapkan pemetaan antara tingkat keparahan Pino dan tingkat keparahan yang digunakan oleh Cloud Logging. Untuk kode contoh, lihat Memetakan Tingkat Log Pino.
Menginstal dan mengonfigurasi plugin Winston
Cloud Logging menyediakan plugin untuk library Logging Node.js Winston. Plugin Logging untuk Winston menyediakan lapisan yang lebih sederhana dan lebih tinggi untuk menggunakan Logging.
Untuk menginstal dan mengonfigurasi plugin Winston, lakukan hal berikut:
Untuk menginstal plugin Logging Winston, gunakan npm:
npm install --save @google-cloud/logging-winston winston
Impor plugin dan tambahkan ke konfigurasi Winston Anda:
Konfigurasikan plugin Anda.
Anda dapat menyesuaikan perilaku plugin Winston menggunakan opsi konfigurasi yang sama yang didukung oleh library klien Cloud Cloud Logging API untuk Node.js. Opsi ini dapat diteruskan dalam objek
options
yang diteruskan ke konstruktor plugin.
Menginstal dan mengonfigurasi plugin Bunyan
Cloud Logging menyediakan plugin untuk library Logging Node.js Bunyan. Plugin Logging untuk Bunyan menyediakan lapisan tingkat tinggi yang lebih sederhana untuk menggunakan Logging.
Untuk menginstal dan mengonfigurasi plugin Bunyan, lakukan hal berikut:
Untuk menginstal plugin Bunyan logging, gunakan npm:
npm install --save bunyan @google-cloud/logging-bunyan
Impor plugin dan tambahkan ke konfigurasi Bunyan Anda:
Konfigurasikan plugin Anda.
Anda dapat menyesuaikan perilaku plugin Bunyan menggunakan opsi konfigurasi yang sama yang didukung oleh library klien Cloud Cloud Logging API untuk Node.js. Opsi ini dapat diteruskan dalam objek
options
yang diteruskan ke konstruktor plugin.
Menggunakan Bunyan dan Express
Anda dapat menyiapkan dan menggunakan Bunyan dengan Logging di aplikasi Node.js Express.
Untuk informasi selengkapnya tentang penginstalan, lihat dokumentasi untuk library Cloud Logging untuk Node.js. Anda juga dapat melaporkan masalah menggunakan issue tracker.
Menulis log dengan library klien Cloud Logging
Untuk informasi tentang cara menggunakan library klien Cloud Logging untuk Node.js secara langsung, lihat Library Klien Cloud Logging.
Menjalankan di Google Cloud
Agar aplikasi dapat menulis log menggunakan library Cloud Logging untuk Node.js, akun layanan untuk resource pokok harus memiliki peran IAM Logs Writer (roles/logging.logWriter
).
Sebagian besar lingkungan Google Cloud secara otomatis mengonfigurasi akun layanan default agar memiliki peran ini.
App Engine
Cloud Logging otomatis diaktifkan untuk App Engine, dan akun layanan default aplikasi Anda memiliki izin IAM secara default untuk menulis entri log.
Untuk menulis entri log dari aplikasi, sebaiknya gunakan Bunyan atau Winston seperti yang dijelaskan di halaman ini.
Untuk informasi selengkapnya, lihat Menulis dan melihat log.
Google Kubernetes Engine (GKE)
GKE secara otomatis memberikan peran IAM Logs Writer (roles/logging.logWriter
) ke akun layanan default.
Jika Anda menggunakan
Workload Identity Federation untuk GKE
dengan akun layanan default ini untuk mengizinkan workload mengakses Google Cloud API
tertentu, konfigurasi tambahan tidak diperlukan.
Namun, jika Anda menggunakan Workload Identity Federation untuk GKE dengan akun layanan IAM kustom, pastikan akun layanan kustom tersebut memiliki peran Logs Writer (roles/logging.logWriter
).
Jika diperlukan, Anda juga dapat menggunakan perintah berikut untuk menambahkan cakupan akses logging.write
saat membuat cluster:
gcloud container clusters create example-cluster-name \
--scopes https://www.googleapis.com/auth/logging.write
Compute Engine
Saat menggunakan instance VM Compute Engine, tambahkan cakupan akses cloud-platform
ke setiap instance. Saat membuat instance baru melalui konsol Google Cloud, Anda dapat melakukannya di bagian Akses identitas dan API pada panel Buat Instance. Gunakan akun layanan default Compute Engine atau akun layanan lain pilihan Anda, lalu pilih Allow full access to all Cloud APIs di bagian Identity and API access. Akun layanan mana pun yang Anda pilih, pastikan akun tersebut telah diberi peran Logs Writer di bagian IAM & Admin di konsol Google Cloud.
Fungsi Cloud Run
Fungsi Cloud Run memberikan peran Penulis Log secara default.
Library Cloud Logging untuk Node.js dapat digunakan tanpa perlu memberikan kredensial secara eksplisit.
Fungsi Cloud Run dikonfigurasi untuk menggunakan Cloud Logging secara otomatis.
Menjalankan secara lokal dan di tempat lain
Untuk menggunakan library Cloud Logging untuk Node.js di luar Google Cloud, termasuk menjalankan library di workstation Anda sendiri, di komputer pusat data, atau di instance VM dari penyedia cloud lain, Anda harus menyediakan ID project Google Cloud dan kredensial akun layanan yang sesuai langsung ke library Cloud Logging untuk Node.js.
Untuk akun layanan yang ada, lakukan langkah berikut:
Berikan peran IAM Logs Writer (
roles/logging.logWriter
) kepada akun layanan. Untuk informasi selengkapnya tentang peran IAM, lihat Kontrol akses.
Jika Anda tidak memiliki akun layanan, buat akun layanan. Untuk mengetahui informasi tentang proses ini, lihat Membuat akun layanan.
Untuk informasi umum tentang metode yang dapat Anda gunakan untuk melakukan autentikasi, lihat Istilah: akun layanan.
Gunakan Winston:Gunakan Bunyan:
Melihat log
Di konsol Google Cloud, buka halaman Logs Explorer:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Logging.
Di Logs Explorer, Anda harus menentukan satu atau beberapa resource, tetapi pemilihan resource mungkin tidak jelas. Berikut beberapa tips untuk membantu Anda memulai:
Jika Anda men-deploy aplikasi ke App Engine atau menggunakan library khusus App Engine, tetapkan resource Anda ke Aplikasi GAE.
Jika Anda men-deploy aplikasi di Compute Engine, tetapkan resource ke Instance VM GCE.
Jika Anda men-deploy aplikasi di Google Kubernetes Engine, konfigurasi logging cluster akan menentukan jenis resource entri log. Untuk diskusi mendetail tentang solusi Google Cloud Observability Lama dan Google Cloud Observability Kubernetes Monitoring, serta pengaruh opsi tersebut terhadap jenis resource, lihat Bermigrasi ke Google Cloud Observability Kubernetes Monitoring.
Jika aplikasi Anda menggunakan Cloud Logging API secara langsung, resource akan bergantung pada API dan konfigurasi Anda. Misalnya, dalam aplikasi, Anda dapat menentukan resource atau menggunakan resource default.
Jika Anda tidak melihat log apa pun di Logs Explorer, untuk melihat semua entri log, beralihlah ke mode kueri lanjutan dan gunakan kueri kosong.
- Untuk beralih ke mode kueri lanjutan, klik menu (▾) di bagian atas Logs Explorer, lalu pilih Konversikan ke filter lanjutan.
- Hapus konten yang muncul di kotak filter.
- Klik Kirim Filter.
Anda dapat memeriksa setiap entri untuk mengidentifikasi resource Anda.
Untuk informasi tambahan, lihat Menggunakan Logs Explorer.