All Products
Search
Document Center

Simple Log Service:Pengumpulan log kontainer Kubernetes

Last Updated:Aug 27, 2026

Pelajari cara mengumpulkan, memproses, dan menganalisis log kontainer Kubernetes dengan SLS dan LoongCollector. Topik ini mencakup konsep inti, mode penyebaran, alur kerja pengumpulan, dan praktik terbaik.

Di Konsol ACK, tampilan Pod logs menampilkan maksimal 500 entri log. Jika Anda memerlukan log lengkap dari kontainer Anda, gunakan SLS untuk mengumpulkan log kontainer kluster Kubernetes, yang memungkinkan penyimpanan dan kueri data log secara lengkap. Untuk petunjuk konfigurasi, lihat Kumpulkan log kontainer dari kluster Kubernetes menggunakan CRD (standard output/file).

Fitur

SLS menyediakan kemampuan berikut untuk pengumpulan log kontainer Kubernetes:

  • Dukungan log multi-sumber

    • Mengumpulkan berbagai tipe log: stdout, stderr, dan file log teks kontainer.

  • Filtering kontainer granular

    • Sertakan atau kecualikan kontainer berdasarkan namespace, nama pod, nama kontainer, label kontainer, atau variabel lingkungan.

  • Pemrosesan log lanjutan

  • Asosiasi metadata cerdas

  • Keandalan

Batasan

  • Runtime kontainer: Hanya Docker dan Containerd yang didukung.

    Docker:

    • Memerlukan izin untuk mengakses docker.sock.

    • Untuk pengumpulan standard output, hanya driver logging json-file yang didukung.

    • Hanya driver penyimpanan overlay dan overlay2 yang didukung. Untuk driver penyimpanan lain, Anda harus memasang direktori log menggunakan volume.

    Containerd:

    • Memerlukan izin untuk mengakses containerd.sock.

  • Batas log multi-baris:

    Baris terakhir yang dikumpulkan di-buffer selama 3 detik secara default untuk mencegah log multi-baris terpisah akibat penundaan output. Sesuaikan nilai ini melalui parameter BeginLineTimeoutMs (minimum: 1.000 ms).

  • Standard output:

    Ukuran maksimum entri log default adalah 512 KB (524.288 byte), dengan batas atas 8 MB (8.388.608 byte). Untuk meningkatkan batas ini, atur variabel lingkungan max_read_buffer_size pada kontainer LoongCollector.

    Penting

    Jangan aktifkan pengumpulan stdout dan stderr secara bersamaan karena dapat menyebabkan entri log saling bertumpuk secara tidak benar.

Ikhtisar alur kerja pengumpulan

  1. Siapkan sumber log: Identifikasi log stdout atau file teks yang akan dikumpulkan.

  2. Instal LoongCollector: Sebarkan collector untuk mengirimkan log ke SLS.

  3. Konfigurasikan aturan pengumpulan: Definisikan aturan pengumpulan log dan plugin parsing.

  4. Lakukan kueri dan analisis log: Pantau layanan Anda dengan data log yang telah dikumpulkan.

Proses utama

Persyaratan sumber log dan titik mount

  • Untuk log standard output, LoongCollector secara otomatis menemukan path file log berdasarkan metadata kontainer.

  • Untuk log file teks kontainer, LoongCollector secara default memasang direktori root host ke /logtail_host. Pemasangan manual biasanya tidak diperlukan. Jika Anda menggunakan titik mount kustom, pastikan memenuhi persyaratan berikut:

    Persyaratan titik mount kustom

    Path file log:

    • Jangan gunakan tautan simbolik:

      • Konfigurasi salah: /var/log -> /mnt/logs.

      • Konfigurasi benar: Gunakan path fisik /mnt/logs secara langsung.

    • Aturan pencocokan path mount: Jika direktori data kontainer aplikasi Anda dipasang menggunakan volume, path pengumpulan harus sama dengan atau merupakan subdirektori dari titik mount.

      1Mount point: /var/log/service
      2✅ Valid collection path: /var/log/service atau /var/log/service/subdir
      3❌ Invalid collection path: /var/log (Path tidak cukup spesifik)

Instal collector

LoongCollector mendukung dua mode penyebaran:

Mode penyebaran: DaemonSet atau sidecar.

  • Mode DaemonSet: Menyebarkan agen LoongCollector di setiap node secara otomatis. Cocok untuk sebagian besar skenario.

    • Dalam mode DaemonSet, metode penyebaran bergantung pada jenis kluster dan hubungan akun SLS Anda.

      • Untuk kluster Container Service for Kubernetes (ACK), komponen loongcollector-ds telah terintegrasi sebelumnya. Aktifkan di Konsol ACK untuk menyelesaikan instalasi. Secara default, log disimpan di proyek SLS milik akun pemilik kluster. Instalasi dan konfigurasi.

      • Untuk mengumpulkan log kluster ACK ke proyek SLS di bawah Akun Alibaba Cloud yang berbeda, instal LoongCollector secara manual dan konfigurasikan dengan ID atau AccessKey akun tujuan. Instalasi dan konfigurasi.

      • Untuk kluster yang dikelola sendiri, instal LoongCollector secara manual dan konfigurasikan dengan ID atau AccessKey Akun Alibaba Cloud tujuan. Instalasi dan konfigurasi.

      LoongCollector harus diinstal sebelum pengumpulan log dapat dimulai. Kumpulkan log kontainer dari kluster Kubernetes menggunakan CRD (standard output/file).
  • Mode sidecar: Menyuntikkan kontainer LoongCollector ke setiap pod aplikasi. Gunakan mode ini untuk kontainer serverless, pod ber-volume tinggi yang melebihi kapasitas DaemonSet, atau kluster dengan runtime kontainer aman. Kumpulkan log teks pod Kubernetes (mode sidecar).

Aturan pengumpulan

SLS mendukung dua metode untuk mendefinisikan aturan pengumpulan:

Metode konfigurasi

Fitur

Kasus penggunaan

Catatan

Kubernetes CRD

  • Integrasi Kubernetes native: Deklarasikan konfigurasi sebagai CRD untuk integrasi API Kubernetes yang mulus.

  • Konfigurasi sebagai Kode: Mendukung alur kerja GitOps dan memungkinkan kontrol versi.

  • Pembaruan real-time: Operator memantau perubahan dan menyinkronkannya ke LoongCollector secara otomatis.

Disarankan untuk kluster produksi dan lingkungan CI/CD.

  • Gunakan hanya satu metode untuk mengelola konfigurasi pengumpulan tertentu. Menggabungkan metode dapat membuat konfigurasi tidak valid.

  • Jika beberapa konfigurasi menargetkan file yang sama, aktifkan Izinkan pengumpulan ganda untuk satu file. Jika tidak, hanya satu konfigurasi yang berlaku secara acak. Atau, gunakan manipulasi data untuk memproses dan menyimpan beberapa salinan log.

Konsol Simple Log Service

  • Operasi sederhana: Konfigurasi grafis tanpa kode.

  • Verifikasi cepat: Pengujian dan validasi cepat.

  • Manajemen terpusat: Lihat semua konfigurasi di konsol terpadu.

Paling cocok untuk kluster kecil, debugging, atau lingkungan non-produksi.

Konsep utama

  • Kubernetes: Platform orkestrasi kontainer open-source yang mengotomatiskan penyebaran, penskalaan, dan manajemen aplikasi berkontainer.

  • Standard output, standard error, dan log file teks: Stdout menangkap output program normal (log bisnis, catatan operasional). Stderr menangkap error dan peringatan (stack trace, kegagalan startup). Keduanya diarahkan ke terminal dan ditangkap oleh engine kontainer. Log file teks ditulis ke file oleh aplikasi (misalnya, access.log Nginx) dan dihapus saat kontainer dihancurkan kecuali dipertahankan dengan volume.

  • Mekanisme checkpoint: Mencatat posisi pengumpulan dalam file, disimpan di /tmp/logtail_checkpoint secara default. Memastikan pengumpulan andal setelah LoongCollector restart atau terjadi kegagalan node.

  • LoongCollector (Logtail): Collector log berkinerja tinggi yang dikembangkan oleh Alibaba Cloud yang mendukung penyebaran DaemonSet dan sidecar di Kubernetes. LoongCollector adalah penerus Logtail dan sepenuhnya kompatibel mundur.

  • Kubernetes CRD: CustomResourceDefinition yang memungkinkan Anda mendefinisikan resource kustom untuk konfigurasi. SLS menggunakan AliyunPipelineConfig sebagai tipe CRD-nya.

  • Konfigurasi pengumpulan: Mendefinisikan aturan untuk tipe log, path pengumpulan, filtering, parsing, dan lokasi penyimpanan. Apa itu konfigurasi pengumpulan?.

  • Plugin parsing: Unit pemrosesan dalam konfigurasi plugin pemrosesan untuk menyusun, memisahkan, memfilter, atau mendesensitisasi konten log. Mendukung mode ekspresi reguler, pemisah, JSON, dan multi-baris.

Cara kerja

  1. Pengguna membuat Custom Resource (CR) menggunakan kubectl untuk mendefinisikan aturan pengumpulan.

  2. loongcollector-operator terus-menerus memantau perubahan CR di kluster.

  3. Saat perubahan terdeteksi, Operator mengonversi CR menjadi konfigurasi LoongCollector dan menerapkannya ke Simple Log Service.

  4. Agen LoongCollector secara berkala mengirim heartbeat ke Simple Log Service untuk mengambil pembaruan konfigurasi, menarik konfigurasi pengumpulan terbaru, dan menerapkannya secara dinamis.

  5. Agen loongcollector-ds mengumpulkan log sesuai konfigurasi baru dan mengirimkannya ke SLS melalui titik akhir yang dikonfigurasi.

Mode DaemonSet

Menyebarkan agen LoongCollector di setiap node untuk mengumpulkan log dari semua kontainer di node tersebut. Menawarkan operasi sederhana, konsumsi sumber daya rendah, dan konfigurasi fleksibel, tetapi isolasi tenant lebih lemah.

Cara kerja mode DaemonSet

  • Dalam mode DaemonSet, Kubernetes menjalankan tepat satu kontainer LoongCollector di setiap node untuk mengumpulkan log dari semua kontainer di node tersebut.

  • Kubernetes secara otomatis membuat dan menghancurkan kontainer LoongCollector saat node bergabung atau meninggalkan kluster, sehingga menghilangkan kebutuhan manajemen instans manual.

Mode sidecar

Menyuntikkan sidecar LoongCollector bersama kontainer aplikasi di setiap pod. Direktori log aplikasi dibagikan melalui volume Kubernetes (emptyDir, hostPath, atau PVC), memungkinkan LoongCollector membaca file log secara langsung. Memberikan isolasi tenant kuat dan kinerja tinggi, tetapi mengonsumsi lebih banyak sumber daya.

Cara kerja mode sidecar

  • Dalam mode sidecar, setiap pod menjalankan kontainer LoongCollector khusus. Pengumpulan log diisolasi antar pod.

  • Volume bersama harus dipasang ke kontainer aplikasi dan LoongCollector agar dapat mengakses file log.

  • Saat volume log pod melebihi kapasitas DaemonSet, mode sidecar memungkinkan Anda mengalokasikan sumber daya khusus untuk LoongCollector.

  • Lingkungan serverless tidak memiliki node, sehingga DaemonSet tidak dapat diterapkan. Mode sidecar terintegrasi langsung dengan arsitektur serverless.

Penemuan kontainer

LoongCollector harus mengidentifikasi kontainer yang sedang berjalan di node sebelum mengumpulkan log-nya. Proses ini disebut penemuan kontainer.

  • LoongCollector berkomunikasi langsung dengan daemon runtime kontainer di node, bukan dengan kube-apiserver kluster. Hal ini menghindari beban tambahan pada kube-apiserver.

  • LoongCollector mengakses socket runtime kontainer (Docker atau Containerd) di host. Mendukung penyertaan atau pengecualian kontainer berdasarkan namespace, nama pod, label pod, atau variabel lingkungan.

Pengumpulan output standar

LoongCollector secara otomatis mengidentifikasi API atau driver logging yang tepat untuk setiap runtime kontainer (Docker, Containerd) berdasarkan metadata. Membaca aliran stdout secara langsung tanpa mengakses sistem file kontainer.

LoongCollector secara berkala menyimpan progres pengumpulan ke file checkpoint dan melanjutkan dari posisi terakhir setelah restart.

Pengumpulan log file teks kontainer

  • Kubernetes mengisolasi sistem file kontainer, sehingga collector tidak dapat langsung mengakses file di kontainer lain. LoongCollector memasang sistem file root host untuk mengakses file kontainer aplikasi secara tidak langsung.

  • Secara default, sistem file root host dipasang ke /logtail_host. Pemasangan manual biasanya tidak diperlukan. Misalnya, jika file log kontainer berada di /log/app.log dan path host-nya adalah /var/lib/docker/containers/<container-id>/log/app.log, LoongCollector membacanya dari /logtail_host/var/lib/docker/containers/<container-id>/log/app.log.

Parsing log multi-baris

LoongCollector menggunakan ekspresi reguler yang ditentukan pengguna untuk mencocokkan awal baris log.

  • Pencocokan berhasil: Baris tersebut dianggap sebagai awal entri log baru.

  • Pencocokan gagal: Baris tersebut ditambahkan ke entri log saat ini.

Saat baris lain cocok dengan ekspresi reguler awal-baris, hal ini menyelesaikan entri log saat ini dan memulai entri baru.

Pemrosesan log saat kontainer berhenti

Runtime

Risiko latensi penghancuran

Integritas log

Optimasi

Docker

Saat kontainer dihentikan, LoongCollector segera melepaskan handle file kontainer, memungkinkan kontainer keluar secara normal.

Jika pengumpulan tertunda sebelum kontainer berhenti, misalnya karena latensi jaringan atau penggunaan sumber daya tinggi, beberapa log yang dihasilkan tepat sebelum berhenti mungkin hilang.

Tingkatkan frekuensi pengiriman log (kurangi flush_interval).

Containerd

Jika pengumpulan tertunda, misalnya karena latensi jaringan atau penggunaan sumber daya tinggi, kontainer aplikasi mungkin tidak segera dihancurkan.

Saat kontainer dihentikan, LoongCollector terus memegang handle file untuk kontainer tersebut, menjaga file log tetap terbuka hingga seluruh konten terkirim.

Konfigurasikan max_hold_buffer_size untuk membatasi penggunaan memori.

Setelah pod dihapus, log yang telah dikumpulkan ke LogStore Simple Log Service tidak terpengaruh. Log tersebut dipertahankan selama periode retensi data LogStore dan tetap dapat di-query dalam periode tersebut. Anda dapat mengubah periode retensi di Konsol Simple Log Service.

Setelah pod dihapus, konfigurasi pengumpulan berbasis label atau namespace secara otomatis diterapkan ke pod baru yang memiliki label yang sama. Saat pembaruan rolling Deployment menghapus pod lama dan membuat yang baru, Simple Log Service secara otomatis mengumpulkan log dari pod baru, dan Anda tidak perlu mengonfigurasi ulang aturan pengumpulan.

Pengambilan metadata kontainer

LoongCollector mengambil metadata Kubernetes secara langsung melalui API CRI (Container Runtime Interface), memungkinkan pelabelan metadata non-intrusif dan real-time selama pengumpulan.

  • Docker: LoongCollector menggunakan Docker Client untuk berkomunikasi dengan Docker Daemon dalam pengambilan metadata. API utama meliputi:

    • ContainerList: Menampilkan daftar kontainer yang sedang berjalan di node.

    • ContainerInspect: Mengembalikan konfigurasi dan status kontainer secara detail.

    • Events: Mendengarkan event siklus hidup kontainer secara real-time.

    Field metadata utama yang diambil melalui Docker Client:

    • LogPath: Path host dari file log stdout kontainer.

    • GraphDriver.Data: Path host dari rootfs kontainer, digunakan untuk akses sistem file dan troubleshooting.

  • Containerd: LoongCollector menggunakan CRI untuk mendukung lingkungan containerd dan CRI-O, mengumpulkan metadata dari runtime dasar seperti runc atau Kata Containers.

    • CRI menyediakan path host dari file log stdout tetapi tidak menyediakan path rootfs kontainer. LoongCollector menggunakan metode berikut untuk menemukannya:

      • Pencarian path file: Mencari path rootfs kontainer di sistem file host menggunakan ID kontainer.

      • Interaksi langsung dengan containerd: LoongCollector dapat melewati CRI dan berkomunikasi langsung dengan containerd untuk mendapatkan path rootfs dan metadata lain yang tidak tersedia melalui CRI.

Praktik terbaik

Kueri terpadu lintas lingkungan

Untuk melakukan kueri log lintas lingkungan (misalnya, testing dan produksi), gunakan salah satu metode berikut:

  • Simpan semua data lingkungan di LogStore yang sama dan tambahkan tag untuk membedakan lingkungan. Kumpulkan log kontainer dari kluster menggunakan konsol (standard output/file).

  • Kumpulkan data ke LogStore atau proyek terpisah. Buat StoreView untuk kueri lintas LogStore. Metode ini tidak memiliki biaya penyimpanan tambahan tetapi bersifat read-only dan tidak mendukung peringatan. Gunakan field tag untuk mengidentifikasi LogStore sumber setiap entri log.

  • (Disarankan) Kumpulkan data ke LogStore atau proyek terpisah. Gunakan manipulasi data untuk menyalin data terpilih ke LogStore terpusat. Mendukung parsing sebelum penyimpanan dan peringatan, tetapi merupakan fitur berbayar.

Mengumpulkan log dari beberapa sumber

Setiap konfigurasi pengumpulan menargetkan satu sumber. Buat konfigurasi terpisah untuk setiap sumber log.

Pengumpulan granular dan isolasi multi-tenant

Di lingkungan multi-tenant, gunakan proyek terpisah untuk mengisolasi data. Data lintas proyek tidak dapat diakses satu sama lain, dan setiap proyek dapat memiliki izin akses independen.

Operasi otomatis dan integrasi CI/CD

Gunakan metode CRD untuk memasukkan konfigurasi pengumpulan ke dalam alur kerja GitOps atau IaC guna manajemen pengumpulan log yang otomatis dan dapat dilacak.