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 penerapan agen logging alternatif, fluent-bit. Mulai Container-Optimized OS 109, agen logging fluent-bit adalah agen default. Agen logging lama, fluentd, akan dihapus di Container-Optimized OS 113.

Semua versi image Container-Optimized OS berbasis Arm dilengkapi dengan 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 di 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 langkah-langkah berikut:

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

    Buat 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 meluaskan 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-boot instance.

gcloud

Untuk menjalankan instance Compute Engine di Container-Optimized OS dengan agen logging 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 menyediakan dua penerapan 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 di metadata project

Mulai tonggak pencapaian 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 yang ingin Anda akses lognya.

  3. Di bagian Logs, klik Cloud Logging.

  4. Tindakan ini akan membuka Logs Explorer untuk instance tertentu. Untuk mengetahui 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, membatasi hingga 10 log, dalam format JSON, dari 30 hari terakhir.

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

Bagaimana cara kerjanya?

Agen logging dikonfigurasi secara default untuk mengirim log dari layanan penting sistem tertentu dan container aplikasi pengguna ke backend Cloud Logging. Misalnya, log dari container 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 yang di-containerkan dari Google Cloud Observability. Perintah docker yang memulai agen logging ditentukan dalam sumber untuk layanan systemd stackdriver-logging Container-Optimized OS. Versi agen yang di-container yang sedang dijalankan ditentukan di direktori app-admin/stackdriver sumber Container-Optimized OS.

Untuk image Arm 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 dibangun 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 Docker gcplogs diaktifkan untuk satu atau beberapa container, log peringatan yang berlebihan dapat dikeluarkan oleh agen logging yang disertakan. Hal ini dapat membuat derau log dan/atau meningkatkan biaya terkait Cloud Logging.

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

Kompatibilitas konfigurasi agen Logging

Agen logging adalah container 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. Ini bukan masalah jika Anda hanya mengandalkan konfigurasi logging default yang ada di image OS. Namun, jika memiliki konfigurasi logging kustom, Anda mungkin mengalami gangguan saat memigrasikan workload ke image yang didasarkan pada arsitektur yang berbeda atau ke versi Container-Optimized OS yang lebih baru.

Referensi

  • Dokumentasi Agen Logging lama Google Cloud Observability . Agen logging yang di-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.