Menggunakan Cloud Logging dengan Container-Optimized OS

Container-Optimized OS menyertakan agen logging yang mengekspor beberapa log sistem dan container ke Cloud Logging. Hingga Container-Optimized OS 101, image Container-Optimized OS berbasis x86 menggunakan agen logging dalam container berdasarkan fluentd. Container-Optimized OS 105 mulai mengirimkan implementasi agen logging alternatif, fluent-bit. Mulai Container-Optimized OS 109, agen logging fluent-bit adalah default. Agen logging lama, fluentd, akan dihapus di Container-Optimized OS 113.

Semua versi image Container-Optimized OS berbasis Arm mengirimkan agen logging fluent-bit.

Mengaktifkan agen logging

Agen logging dinonaktifkan secara default. Anda dapat mengaktifkan fitur ini saat membuat instance baru atau dengan memperbarui instance yang ada.

Persyaratan Akses

Cloud Logging menyediakan peran IAM yang dapat Anda gunakan untuk memberikan akses yang sesuai. Untuk melihat log dalam project, Anda harus memiliki peran roles/logging.viewer dan aplikasi harus memiliki izin untuk menulis log. Anda dapat memberikan izin ini dengan menetapkan peran IAM roles/logging.logWriter ke akun layanan untuk aplikasi.

Untuk mengetahui informasi selengkapnya tentang izin dan peran, lihat Peran yang telah ditetapkan.

Membuat instance dengan agen logging diaktifkan

Konsol

Untuk menjalankan instance Compute Engine di Container-Optimized OS dengan agen logging fluent-bit yang diaktifkan, lakukan tindakan berikut:

  1. Buka halaman pembuatan instance Compute Engine di konsol Google Cloud.

    Membuat instance Compute Engine baru

  2. Tentukan Nama untuk instance Anda.

  3. Di bagian Boot disk, pilih image Container-Optimized OS.

  4. Klik Management, security, disks, networking, sole tenancy untuk memperluas opsi tambahan.

  5. Di tab Pengelolaan, scroll ke bagian Metadata. Tambahkan entri metadata baru, dengan Kunci sebagai google-logging-enabled dan Nilai sebagai true.

  6. Atau, tentukan opsi lain untuk kasus penggunaan Anda. Lihat Membuat dan mengonfigurasi instance untuk mengetahui detail selengkapnya.

  7. Klik Create untuk membuat dan mem-booting instance.

gcloud

Untuk menjalankan instance Compute Engine di Container-Optimized OS dengan agen logging yang diaktifkan, gunakan perintah gcloud compute instances create, dan sertakan google-logging-enabled=true dalam metadata. Contoh:

gcloud compute instances create instance-name \
    --image image-name \
    --image-project cos-cloud \
    --zone compute-zone \
    --metadata google-logging-enabled=true

Ganti kode berikut:

  • instance-name: nama instance VM Anda.
  • image-name: nama image Container-Optimized OS untuk instance. Contoh, --image=cos-113-18244-85-29.
  • compute-zone: zona komputasi untuk instance Anda.

Untuk mengetahui informasi selengkapnya tentang perintah gcloud, lihat dokumentasi referensi gcloud compute instances create. Untuk mengetahui detail selengkapnya tentang cara membuat instance Container-Optimized OS, lihat Membuat dan mengonfigurasi instance.

Memilih agen logging

Image Container-Optimized OS 105 dan 109 berbasis x86 mengirimkan dua implementasi agen logging: fluentd (lama) dan fluent-bit. Container-Optimized OS 105 menggunakan fluentd secara default dan Container-Optimized OS 109 menggunakan fluent-bit secara default. Anda dapat menggunakan entri metadata google-logging-use-fluentbit untuk mengubah perilaku default.

Untuk menggunakan agen logging fluent-bit di Container-Optimized OS 105, tetapkan nilai google-logging-use-fluentbit ke true.

Untuk menggunakan agen logging fluentd di Container-Optimized OS 109, tetapkan nilai google-logging-use-fluentbit ke false.

Mengaktifkan agen logging dalam metadata project

Mulai milestone 97, logging dapat diaktifkan di metadata project:

  gcloud compute project-info add-metadata \
    --metadata google-logging-enabled=true

Log akses

Konsol

  1. Buka halaman VM instances.

    Buka halaman Instance VM

  2. Klik nama instance Container-Optimized OS tempat Anda ingin mengakses log.

  3. Di bagian Logs, klik Cloud Logging.

  4. Tindakan ini akan membuka Logs Explorer untuk instance yang diberikan. Untuk informasi selengkapnya, lihat Menggunakan Logs Explorer.

gcloud

Untuk mengakses log, gunakan perintah gcloud logging read. Contoh:

gcloud logging read \
"resource.type=gce_instance AND resource.labels.instance_id=instance-id" \
    --limit 10 \
    --format json \
    --freshness 30d

Ganti kode berikut:

  • instance-id: ID instance VM Anda.

Perintah ini mencoba membaca log dari instance VM dengan instance-id, yang membatasi hingga 10 log, dalam format JSON, dari 30 hari terakhir.

Untuk informasi selengkapnya tentang perintah gcloud, lihat dokumentasi referensi gcloud logging read.

Bagaimana cara kerjanya?

Agen logging dikonfigurasi secara default untuk mengirim log dari layanan kritis sistem tertentu dan penampung aplikasi pengguna ke backend Cloud Logging. Misalnya, log dari penampung docker, layanan systemd yang dipilih, log audit, error log jurnal, dll. Lihat sumber konfigurasi khusus Container-Optimized OS (image x86 dan image Arm) untuk konfigurasi logging default lengkap.

Untuk image x86 Container-Optimized OS 105 dan yang lebih lama, agen logging adalah agen Logging lama dalam container Google Cloud Observability. Perintah docker yang memulai agen logging ditentukan di sumber untuk layanan systemd stackdriver-logging Container-Optimized OS. Versi agen container yang dijalankan ditentukan di direktori app-admin/stackdriver sumber Container-Optimized OS.

Untuk image Arm dari semua versi dan image x86 untuk Container-Optimized OS 109 dan yang lebih baru, agen logging adalah paket OS bawaan yang disebut fluent-bit. Agen ini di-build ke dalam OS dan diupdate bersama dengan image OS.

Batasan Umum

Kompatibilitas dengan driver gcplogs

Mulai dari milestone 89, jika agen logging yang disertakan dengan Container-Optimized OS diaktifkan dan driver logging gcplogs Docker diaktifkan untuk satu atau beberapa penampung, log peringatan yang berlebihan dapat dihasilkan oleh agen logging yang disertakan. Hal ini dapat menyebabkan derau log dan/atau meningkatkan biaya terkait Cloud Logging.

Solusi untuk mengatasinya adalah dengan tidak menggunakan gcplogs sebagai driver logging Docker, dan menggunakan driver default seperti yang dikonfigurasi oleh Container-Optimized OS. Perhatikan bahwa agen logging yang disertakan dengan Container-Optimized OS akan mengekspor log penampung ke Cloud Logging, sehingga penggunaan kedua solusi secara bersamaan tidak diperlukan.

Kompatibilitas konfigurasi agen logging

Agen logging adalah penampung berbasis fluentd pada image Container-Optimized OS berbasis x86 dan biner fluent-bit pada image Container-Optimized OS berbasis Arm. Konfigurasi kedua agen tidak kompatibel. Hal ini tidak menjadi masalah jika Anda hanya mengandalkan konfigurasi logging default yang disertakan dalam image OS. Namun, jika memiliki konfigurasi logging kustom, Anda mungkin mengalami kerusakan saat memigrasikan workload ke image yang didasarkan pada arsitektur yang berbeda atau ke OS yang Dioptimalkan untuk Container versi yang lebih baru.

Referensi

  • Dokumentasi agen Logging lama Google Cloud Observability. Agen logging dalam container yang disertakan dengan Container-Optimized OS adalah subset dari agen Logging lama, sehingga dokumentasi ini dapat memberikan konteks tentang agen secara lebih umum, di luar cakupan Container-Optimized OS.
  • Dokumentasi Google Cloud Observability. Halaman beranda untuk dokumentasi Google Cloud Observability; mungkin berguna untuk konteks.