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 OS image yang Dioptimalkan dan berbasis x86 menggunakan agen logging dalam container yang berbasis fluentd. Container-Optimized OS 105 mulai mengirimkan implementasi agen logging alternatif, {i>fluent-bit<i}. Mulai Container-Optimized OS 109, agen logging bit yang fasih menjadi default-nya. Agen logging lama, yang fasih, akan dihapus di Container-Optimized OS 113.

Semua versi Image Container-Optimized OS berbasis Arm mengirimkan agen logging yang fasih dengan bit.

Mengaktifkan agen logging

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

Persyaratan Akses

Cloud Logging memberikan peran IAM yang dapat Anda gunakan untuk memberikan akses yang sesuai. Untuk melihat log dalam sebuah 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 lebih lanjut tentang izin dan peran, lihat Peran yang telah ditetapkan.

Membuat instance dengan agen logging diaktifkan

Konsol

Untuk menjalankan instance Compute Engine pada Container-Optimized OS dengan agen logging bit fasih yang diaktifkan, lakukan hal berikut:

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

    Membuat instance Compute Engine baru

  2. Tentukan Nama instance.

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

  4. Klik Pengelolaan, keamanan, disk, jaringan, tenancy tunggal untuk memperluas opsi tambahan.

  5. Di tab Management, scroll ke bagian Metadata. Tambahkan entri metadata baru, dengan Key sebagai google-logging-enabled dan Value sebagai true.

  6. (Opsional) Tentukan opsi lain untuk kasus penggunaan Anda. Baca Membuat dan mengonfigurasi instance untuk mengetahui detail lebih lanjut.

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

gcloud

Untuk menjalankan instance Compute Engine pada OS yang Dioptimalkan untuk Container 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-family cos-stable \
    --image-project cos-cloud \
    --zone compute-zone \
    --metadata google-logging-enabled=true

Ganti kode berikut:

  • instance-name: nama instance VM Anda.
  • compute-zone: zona komputasi untuk instance Anda.

Untuk mengetahui informasi selengkapnya tentang perintah gcloud, baca dokumentasi referensi gcloud compute instances create. Untuk mengetahui detail selengkapnya tentang cara membuat instance OS yang Dioptimalkan untuk Container, baca 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 fasih 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 bit yang fasih pada Container-Optimized OS 105, tetapkan nilai google-logging-use-fluentbit ke true.

Untuk menggunakan agen logging yang lancar pada Container-Optimized OS 109, tetapkan nilai google-logging-use-fluentbit ke false.

Mengaktifkan agen logging di 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 VM instances

  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 ditentukan. 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, sehingga membatasi hingga 10 log dalam format JSON dari 30 hari terakhir.

Untuk mengetahui informasi selengkapnya tentang perintah gcloud, baca 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 sistem yang dipilih, log audit, error log jurnal, dll. Lihat sumber konfigurasi khusus Container-Optimized OS (image x86 dan Image Arm) untuk mengetahui konfigurasi logging default yang lengkap.

Untuk image x86 Container-Optimized OS 105 dan yang lebih lama, agen logging adalah agen Logging lama dalam container milik Google Cloud Observability. Perintah docker yang memulai agen logging ditentukan dalam sumber untuk layanan sistemd stackdriver-logging. Versi agen dalam container yang sedang dijalankan ditentukan dalam direktori app-admin/stackdriver 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 dibangun ke dalam OS dan diupdate bersama dengan OS image.

Keterbatasan Yang Telah Diketahui

Kompatibilitas dengan driver gcplogs

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

Solusinya adalah tidak menggunakan gcplogs sebagai driver logging Docker, melainkan 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 Anda tidak perlu menggunakan kedua solusi secara bersamaan.

Kompatibilitas konfigurasi agen logging

Agen logging adalah container berbasis lancar pada image OS yang Dioptimalkan dan berbasis Container x86 dan biner yang fasih pada image OS yang Dioptimalkan dan berbasis Arm. Konfigurasi kedua agen tersebut tidak kompatibel. Ini bukan masalah jika Anda hanya mengandalkan konfigurasi logging default yang ada dalam OS image. Namun, jika memiliki konfigurasi logging kustom, Anda mungkin mengalami kerusakan saat memigrasikan workload ke image yang didasarkan pada arsitektur yang berbeda atau ke Container-Optimized OS versi baru.

Referensi

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