Menyiapkan Cloud Logging untuk Ruby

Anda dapat menulis log ke Cloud Logging dari aplikasi Ruby dengan menggunakan library Cloud Logging untuk Ruby, atau dengan menggunakan library klien Cloud Logging untuk Ruby secara langsung.

Agen Cloud Logging tidak perlu diinstal untuk menggunakan library Cloud Logging untuk Ruby di instance VM Compute Engine.

Sebelum memulai

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Cloud Logging API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Cloud Logging API.

    Enable the API

  8. Instal Ruby 2.2+ atau yang lebih baru.

Menginstal library

Kami menyediakan library Cloud Logging untuk Ruby, yang menyediakan implementasi logger yang mudah digunakan untuk framework web Ruby berbasis Rack:

  1. Tambahkan gem Google Cloud Observability ke Gemfile Anda:

    gem "stackdriver"
  2. Gunakan Bundler untuk menginstal gem:

    bundle install
    

Mengaktifkan library

Jika Anda menggunakan Ruby on Rails, Bundler akan otomatis memuat library ke dalam aplikasi saat dimulai, yang menetapkan Rails.logger default ke instance logger Cloud Logging.

Aplikasi berbasis Rack lainnya dapat menggunakan Middleware Rack untuk mengganti logger Rack dengan logger Cloud Logging jika framework web Anda mendukung logger Rack:

require "google/cloud/logging"

use Google::Cloud::Logging::Middleware

Mengonfigurasi library

Anda dapat menyesuaikan perilaku library Cloud Logging untuk Ruby. Lihat konfigurasi library untuk mengetahui daftar opsi konfigurasi yang mungkin.

Menggunakan Logger Cloud Logging

Setelah library Cloud Logging untuk Ruby diaktifkan, Anda dapat menggunakan logger di aplikasi:

logger.info "Hello World!"
logger.error "Oh No!"

Untuk informasi selengkapnya tentang penginstalan, lihat dokumentasi untuk library Cloud Logging untuk Ruby. 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 Ruby secara langsung, lihat Library Klien Cloud Logging.

Menjalankan di Google Cloud

Agar aplikasi dapat menulis log menggunakan library Cloud Logging untuk Ruby, 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 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.

Menjalankan secara lokal dan di tempat lain

Untuk menggunakan library Cloud Logging untuk Ruby 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 project ID Google Cloud dan kredensial akun layanan yang sesuai secara langsung ke library Cloud Logging untuk Ruby.

Untuk akun layanan yang ada, lakukan langkah berikut:

  1. Berikan peran IAM Logs Writer (roles/logging.logWriter) kepada akun layanan. Untuk informasi selengkapnya tentang peran IAM, lihat Kontrol akses.

  2. Siapkan Kredensial Default Aplikasi.

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.

Menggunakan antarmuka konfigurasi Ruby on Rails:

Berikan parameter melalui antarmuka konfigurasi Ruby on Rails jika Anda menggunakan framework Ruby on Rails:

# Add this to config/environments/*.rb
Rails.application.configure do |config|
  # Stackdriver Logging specific parameters
  config.google_cloud.logging.project_id = "YOUR-PROJECT-ID"
  config.google_cloud.logging.keyfile    = "/path/to/service-account.json"
end

Anda juga dapat menetapkan konfigurasi bersama untuk semua gem Google Cloud Observability menggunakan:

# Add this to config/environments/*.rb
Rails.application.configure do |config|
  # Stackdriver Shared parameters
  config.google_cloud.project_id = "YOUR-PROJECT-ID"
  config.google_cloud.keyfile    = "/path/to/service-account.json"
end

Logging diaktifkan secara default saat Rails berjalan dalam mode produksi. Untuk mengaktifkan Logging dalam mode pengembangan, tambahkan tambahan berikut:

# Add this to config/environments/development.rb
Rails.application.configure do |config|
  config.google_cloud.use_logging = true
end

Menggunakan antarmuka konfigurasi instrumentasi:

Berikan parameter melalui antarmuka konfigurasi saat digunakan di aplikasi berbasis Rack lainnya:

require "google/cloud/logging"

Google::Cloud.configure do |config|
  # Stackdriver Logging specific parameters
  config.logging.project_id = "YOUR-PROJECT-ID"
  config.logging.keyfile    = "/path/to/service-account.json"
end

Anda juga dapat menetapkan konfigurasi bersama untuk semua gem Google Cloud Observability menggunakan:

require "stackdriver"

Google::Cloud.configure do |config|
  # Stackdriver Shared parameters
  config.project_id = "YOUR-PROJECT-ID"
  config.keyfile    = "/path/to/service-account.json"
end

Melihat log

Di konsol Google Cloud, buka halaman Logs Explorer:

Buka 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.

    1. Untuk beralih ke mode kueri lanjutan, klik menu (▾) di bagian atas Logs Explorer, lalu pilih Konversikan ke filter lanjutan.
    2. Hapus konten yang muncul di kotak filter.
    3. Klik Kirim Filter.

    Anda dapat memeriksa setiap entri untuk mengidentifikasi resource Anda.

Untuk informasi tambahan, lihat Menggunakan Logs Explorer.