全部产品
Search
文档中心

Simple Log Service:Instalasi dan konfigurasi

更新时间:Jan 23, 2026

LoongCollector adalah agen pengumpulan log generasi berikutnya untuk Alibaba Cloud Simple Log Service (SLS) dan merupakan versi peningkatan dari Logtail. Topik ini menjelaskan cara menginstal LoongCollector di kluster Kubernetes, baik dalam mode DaemonSet maupun Sidecar.

Persiapan

Sebelum menginstal LoongCollector, verifikasi koneksi jaringan antara node kluster Anda dan titik akhir SLS untuk memastikan LoongCollector dapat melaporkan data dengan benar.

  1. Dapatkan titik akhir layanan:

    1. Masuk ke Konsol Simple Log Service. Di daftar proyek, klik proyek tujuan.

    2. Klik ikon image di samping nama proyek untuk membuka halaman ikhtisar proyek.

    3. Di bagian Endpoint, temukan titik akhir publik dan pribadi untuk wilayah proyek tersebut.

  2. Uji koneksi: Masuk ke node kluster tempat Anda berencana menginstal komponen LoongCollector dan jalankan perintah curl berikut. Ganti ${ProjectName} dan ${SLS_ENDPOINT} dengan informasi aktual Anda.

    curl https://${Project_Name}.${SLS_ENDPOINT}
  3. Periksa hasilnya:

    • Jika perintah mengembalikan {"Error":{"Code":"OLSInvalidMethod",...}}, koneksi jaringan antara node Anda dan SLS berfungsi.

      Catatan

      Pengujian ini hanya memverifikasi konektivitas lapisan jaringan. SLS mengembalikan error karena permintaan tidak memiliki parameter API yang diperlukan—perilaku ini diharapkan.

    • Jika perintah timeout atau mengembalikan error lapisan jaringan lainnya, seperti Connection refused, ini menunjukkan kegagalan konektivitas jaringan. Periksa konfigurasi jaringan node, aturan security group, atau resolusi DNS.

Pilih metode instalasi

Pilih metode instalasi berikut berdasarkan jenis kluster dan kebutuhan Anda.

Metode instalasi

Kasus penggunaan

Instal pada kluster ACK (mode DaemonSet)

Kumpulkan log dari kluster ACK managed dan dedicated dalam Akun Alibaba Cloud dan wilayah yang sama.

Instal pada kluster self-managed (mode DaemonSet)

  • Kumpulkan log dari kluster ACK Alibaba Cloud di berbagai Akun Alibaba Cloud atau wilayah.

  • Kumpulkan log dari kluster Kubernetes yang diterapkan di pusat data self-managed Anda.

  • Kumpulkan log dari kluster Kubernetes yang diterapkan di penyedia cloud lain.

Instal dalam mode Sidecar

Kumpulkan log dari aplikasi tertentu dengan persyaratan berikut:

  • Isolasi resource: Mencegah agen DaemonSet memengaruhi pod lain di node tersebut.

  • Pengumpulan detail halus: Konfigurasikan sumber pengumpulan, aturan filter, dan tujuan output terpisah untuk setiap aplikasi.

Instal pada kluster ACK (mode DaemonSet)

Catatan

Jika Anda menggunakan logtail-ds dan ingin meningkatkan ke LoongCollector, Anda harus menguninstal logtail-ds sebelum menginstal LoongCollector.

Instal LoongCollector dengan satu klik di Konsol Alibaba Cloud Container Service for Kubernetes (ACK). Secara default, log kontainer dari kluster dikumpulkan ke proyek SLS dalam akun dan wilayah yang sama. Untuk mengumpulkan log lintas akun atau wilayah, lihat Instal pada kluster self-managed (mode DaemonSet).

Instal pada kluster ACK managed yang sudah ada

  1. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

  2. Di halaman Clusters, temukan kluster yang ingin Anda kelola dan klik namanya. Di panel navigasi kiri, klik Add-ons.

  3. Di tab Logs and Monitoring, temukan loongcollector, lalu klik Install.

  4. Setelah instalasi selesai, SLS secara otomatis membuat resource berikut di wilayah tempat kluster ACK berada. Masuk ke Konsol Simple Log Service untuk melihatnya.

    Jenis resource

    Nama resource

    Tujuan

    Project

    k8s-log-${cluster_id}

    Unit manajemen resource yang mengisolasi log dari layanan berbeda.

    Machine group

    k8s-group-${cluster_id}

    Machine group untuk loongcollector-ds. Terutama digunakan untuk pengumpulan log.

    k8s-group-${cluster_id}-cluster

    Machine group untuk loongcollector-cluster. Terutama digunakan untuk pengumpulan metrik.

    k8s-group-${cluster_id}-singleton

    Machine group instans tunggal. Terutama digunakan untuk beberapa konfigurasi pengumpulan instans tunggal.

    Logstore

    config-operation-log

    Penting

    Jangan hapus logstore ini.

    Menyimpan log dari alibaba-log-controller dalam komponen LoongCollector. Penagihannya sama seperti logstore standar. Untuk informasi selengkapnya, lihat Item penagihan untuk mode bayar-per-data-ditulis. Jangan buat konfigurasi pengumpulan di logstore ini.

Instal saat membuat kluster ACK managed baru

  1. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

  2. Klik Create Kubernetes Cluster. Di bagian Advanced Settings, SLS diaktifkan secara default. Klik Modify Default Configuration untuk membuat proyek atau menggunakan proyek yang sudah ada.

    Topik ini hanya menjelaskan konfigurasi terkait SLS. Untuk informasi selengkapnya tentang item konfigurasi lainnya, lihat Buat kluster ACK managed.
  3. Saat Anda memilih Create Project, SLS secara default membuat resource berikut. Masuk ke Konsol Simple Log Service untuk melihatnya.

    Jenis resource

    Nama resource

    Tujuan

    Project

    k8s-log-${cluster_id}

    Unit manajemen resource yang mengisolasi log dari layanan berbeda.

    Machine group

    k8s-group-${cluster_id}

    Machine group untuk loongcollector-ds. Terutama digunakan untuk pengumpulan log.

    k8s-group-${cluster_id}-cluster

    Machine group untuk loongcollector-cluster. Terutama digunakan untuk pengumpulan metrik.

    k8s-group-${cluster_id}-singleton

    Machine group instans tunggal. Terutama digunakan untuk beberapa konfigurasi pengumpulan instans tunggal.

    Logstore

    config-operation-log

    Penting

    Jangan hapus logstore ini.

    Menyimpan log dari alibaba-log-controller dalam komponen LoongCollector. Penagihannya sama seperti logstore standar. Untuk informasi selengkapnya, lihat Item penagihan untuk mode bayar-per-data-ditulis. Jangan buat konfigurasi pengumpulan di logstore ini.

Instal pada kluster self-managed (mode DaemonSet)

Kasus penggunaan

  • Kluster Kubernetes di pusat data self-managed

  • Kluster Kubernetes yang diterapkan di penyedia cloud lain

  • Mengumpulkan log kontainer dari kluster ACK Alibaba Cloud lintas akun atau wilayah

Catatan

Pastikan kluster self-managed Anda menjalankan Kubernetes 1.6 atau lebih baru.

Panduan pengguna

  1. Unduh dan ekstrak paket instalasi: Pada mesin tempat kubectl diinstal dan dikonfigurasi, jalankan perintah untuk wilayah kluster Anda guna mengunduh LoongCollector dan komponen dependennya.

    #Wilayah Tiongkok
    wget https://aliyun-observability-release-cn-shanghai.oss-cn-shanghai.aliyuncs.com/loongcollector/k8s-custom-pkg/3.0.12/loongcollector-custom-k8s-package.tgz; tar xvf loongcollector-custom-k8s-package.tgz; chmod 744 ./loongcollector-custom-k8s-package/k8s-custom-install.sh
    
    #Wilayah di luar Tiongkok
    wget https://aliyun-observability-release-ap-southeast-1.oss-ap-southeast-1.aliyuncs.com/loongcollector/k8s-custom-pkg/3.1.6/loongcollector-custom-k8s-package.tgz; tar xvf loongcollector-custom-k8s-package.tgz; chmod 744 ./loongcollector-custom-k8s-package/k8s-custom-install.sh
  2. Ubah file konfigurasi values.yaml: Di folder loongcollector-custom-k8s-package, ubah file konfigurasi ./loongcollector/values.yaml.

    Deskripsi

    values.yaml

    # ===================== Parameter wajib =====================
    # Nama proyek untuk pengumpulan log di kluster ini. Contoh: k8s-log-custom-sd89ehdq
    projectName: ""
    # Wilayah proyek. Contoh untuk Shanghai: cn-shanghai
    region: ""
    # ID Akun Alibaba Cloud pemilik proyek. Sertakan ID dalam tanda kutip. Contoh: "123456789"
    aliUid: ""
    # Jaringan yang digunakan. Opsi: Internet atau Intranet. Default: Internet
    net: Internet
    # ID AccessKey dan rahasia AccessKey dari Akun Alibaba Cloud atau pengguna RAM.
    accessKeyID: ""
    accessKeySecret: ""
    # ID kluster kustom. ID dapat berisi huruf besar, huruf kecil, angka, dan tanda hubung (-).
    clusterID: ""
    
    # ... Parameter opsional lainnya dihilangkan ...

    projectName String (Wajib)

    Nama proyek tempat LoongCollector mengunggah log. Konvensi penamaan sebagai berikut:

    • Nama proyek hanya boleh berisi huruf kecil, angka, dan tanda hubung (-).

    • Harus dimulai dengan huruf kecil dan diakhiri dengan huruf kecil atau angka.

    • Nama harus terdiri dari 3 hingga 63 karakter.

    region String (Wajib)

    ID wilayah tempat proyek berada. Untuk informasi selengkapnya, lihat Wilayah.

    aliUid String (Wajib)

    ID Akun Alibaba Cloud pemilik proyek.

    net String (Wajib)

    Jenis jaringan yang digunakan untuk mentransmisikan data log.

    • Internet (default): Jaringan publik.

    • Intranet: Jaringan internal.

    accessKeyID String (Wajib)

    ID AccessKey yang digunakan untuk mengakses proyek. Gunakan AccessKey dari pengguna Resource Access Management (RAM) dan berikan kebijakan sistem AliyunLogFullAccess kepada pengguna RAM tersebut. Untuk informasi selengkapnya tentang RAM, lihat Ikhtisar pengguna RAM.

    accessKeySecret String (Wajib)

    Rahasia AccessKey yang sesuai dengan ID AccessKey yang ditentukan.

    clusterID String (Wajib)

    ID kustom untuk kluster. Nama hanya boleh berisi huruf besar, huruf kecil, angka, dan tanda hubung (-).

    Penting

    Jangan gunakan ID kluster yang sama untuk kluster Kubernetes berbeda.

  3. Jalankan skrip instalasi: Di folder loongcollector-custom-k8s-package, jalankan perintah berikut untuk menginstal LoongCollector dan komponen dependennya.

    bash k8s-custom-install.sh install
  4. Verifikasi instalasi: Setelah instalasi selesai, jalankan perintah berikut untuk memeriksa status komponen:

    # Periksa status pod
    kubectl get po -n kube-system | grep loongcollector-ds

    Contoh hasil:

    loongcollector-ds-gnmnh   1/1     Running   0    63s

    Jika komponen gagal dimulai (statusnya bukan Running):

    1. Periksa konfigurasi: Verifikasi bahwa item konfigurasi di values.yaml benar.

    2. Periksa gambar: Jalankan perintah berikut dan periksa bagian Events pada output untuk memastikan gambar kontainer berhasil ditarik.

      kubectl describe pod loongcollector-ds -n kube-system
  5. Setelah komponen diinstal, SLS secara otomatis membuat resource berikut. Masuk ke Konsol Simple Log Service untuk melihatnya.

    Jenis resource

    Nama resource

    Tujuan

    Project

    Nilai projectName yang Anda tentukan di file values.yaml

    Unit manajemen resource yang mengisolasi log layanan berbeda.

    Machine group

    k8s-group-${cluster_id}

    Kumpulan node pengumpulan log.

    k8s-group-${cluster_id}-cluster

    Machine group untuk loongcollector-cluster, terutama digunakan untuk pengumpulan metrik.

    k8s-group-${cluster_id}-singleton

    Machine group instans tunggal, terutama digunakan untuk konfigurasi pengumpulan instans tunggal.

    Logstore

    config-operation-log

    Penting

    Jangan hapus logstore ini.

    Menyimpan log komponen alibaba-log-controller dalam LoongCollector. Penagihannya sama seperti logstore standar. Untuk informasi selengkapnya, lihat Item penagihan untuk mode bayar-per-data-ditulis. Jangan buat konfigurasi pengumpulan di logstore ini.

Instal menggunakan pola sidecar

Gunakan pola sidecar untuk manajemen log detail halus, isolasi data multi-tenant, atau mengikat pengumpulan log ke siklus hidup aplikasi. Pola ini menyuntikkan kontainer LoongCollector (Logtail) terpisah ke dalam pod aplikasi untuk memungkinkan pengumpulan log khusus dalam pod tersebut. Jika Anda belum menerapkan aplikasi atau ingin menguji prosesnya, gunakan Lampiran: contoh YAML untuk memverifikasi alur dengan cepat.

1. Ubah konfigurasi YAML pod aplikasi

  1. Definisikan volume bersama

    Di spec.template.spec.volumes, tambahkan tiga volume bersama pada level yang sama dengan bagian containers:

    volumes:
      # Direktori log bersama (ditulis oleh kontainer aplikasi, dibaca oleh Sidecar)
      - name: ${shared_volume_name} # <-- Nama harus sama dengan nama di volumeMounts.
        emptyDir: {}
      
      # Direktori pensinyalan untuk komunikasi antar-kontainer (untuk mulai mulus dan berhenti)
      - name: tasksite
        emptyDir:
          medium: Memory  # Gunakan memori sebagai media untuk performa lebih baik.
          sizeLimit: "50Mi"
      
      # Konfigurasi zona waktu host bersama: Sinkronkan zona waktu semua kontainer dalam pod.
      - name: tz-config # <-- Nama harus sama dengan nama di volumeMounts.
        hostPath:
          path: /usr/share/zoneinfo/Asia/Shanghai  # Ubah zona waktu sesuai kebutuhan.
    
  2. Konfigurasikan mount volume untuk kontainer aplikasi

    Di bagian volumeMounts kontainer aplikasi Anda, seperti your-business-app-container, tambahkan konfigurasi mount berikut:

    Pastikan kontainer aplikasi menulis log ke direktori ${shared_volume_path} agar LoongCollector dapat mengumpulkannya.
    volumeMounts:
      # Mount volume log bersama ke direktori output log aplikasi.
      - name: ${shared_volume_name}
        mountPath: ${shared_volume_path}  # Contoh: /var/log/app
    
      # Mount direktori komunikasi.
      - name: tasksite
        mountPath: /tasksite  # Direktori bersama untuk komunikasi dengan kontainer LoongCollector.
    
      # Mount file zona waktu.
      - name: tz-config
        mountPath: /etc/localtime
        readOnly: true
    
  3. Suntikkan kontainer Sidecar LoongCollector

    Di array spec.template.spec.containers, tambahkan definisi kontainer Sidecar berikut:

    - name: loongcollector
      image: aliyun-observability-release-registry.cn-shenzhen.cr.aliyuncs.com/loongcollector/loongcollector:v3.1.1.0-20fa5eb-aliyun
      command: ["/bin/bash", "-c"]
      args:
        - |
          echo "[$(date)] LoongCollector: Memulai inisialisasi"
          
          # Mulai layanan LoongCollector.
          /etc/init.d/loongcollectord start
          
          # Tunggu konfigurasi diunduh dan layanan siap.
          sleep 15
          
          # Verifikasi status layanan.
          if /etc/init.d/loongcollectord status; then
            echo "[$(date)] LoongCollector: Layanan berhasil dimulai"
            touch /tasksite/cornerstone
          else
            echo "[$(date)] LoongCollector: Gagal memulai layanan"
            exit 1
          fi
          
          # Tunggu kontainer aplikasi selesai (melalui sinyal file tombstone).
          echo "[$(date)] LoongCollector: Menunggu kontainer bisnis selesai"
          until [[ -f /tasksite/tombstone ]]; do
            sleep 2
          done
          
          # Beri waktu untuk mengunggah log yang tersisa.
          echo "[$(date)] LoongCollector: Bisnis selesai, menunggu transmisi log"
          sleep 30
          
          # Hentikan layanan.
          echo "[$(date)] LoongCollector: Menghentikan layanan"
          /etc/init.d/loongcollectord stop
          echo "[$(date)] LoongCollector: Shutdown selesai"
      # Pemeriksaan kesehatan
      livenessProbe:
        exec:
          command: ["/etc/init.d/loongcollectord", "status"]
        initialDelaySeconds: 30
        periodSeconds: 10
        timeoutSeconds: 5
        failureThreshold: 3
      # Konfigurasi resource
      resources:
        requests:
          cpu: "100m"
          memory: "128Mi"
        limits:
          cpu: "2000m"
          memory: "2048Mi"
      # Konfigurasi variabel lingkungan
      env:
        - name: ALIYUN_LOGTAIL_USER_ID
          value: "${your_aliyun_user_id}"
        - name: ALIYUN_LOGTAIL_USER_DEFINED_ID
          value: "${your_machine_group_user_defined_id}"
        - name: ALIYUN_LOGTAIL_CONFIG
          value: "/etc/ilogtail/conf/${your_region_config}/ilogtail_config.json"
        # Aktifkan mode full drain untuk memastikan semua log dikirim sebelum pod dihentikan.
        - name: enable_full_drain_mode
          value: "true"  
        # Tambahkan informasi lingkungan pod sebagai tag log.
        - name: ALIYUN_LOG_ENV_TAGS
          value: "_pod_name_|_pod_ip_|_namespace_|_node_name_|_node_ip_"
        # Secara otomatis suntikkan metadata pod dan node sebagai tag log.
        - name: "_pod_name_"
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        - name: "_pod_ip_"
          valueFrom:
            fieldRef:
              fieldPath: status.podIP
        - name: "_namespace_"
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        - name: "_node_name_"
          valueFrom:
            fieldRef:
              fieldPath: spec.nodeName
        - name: "_node_ip_"
          valueFrom:
            fieldRef:
              fieldPath: status.hostIP
      # Mount volume (dibagi dengan kontainer aplikasi)
      volumeMounts:
        # Mount baca-saja direktori log aplikasi.
        - name: ${shared_volume_name} # <-- Nama direktori log bersama
          mountPath: ${dir_containing_your_files} # <-- Path direktori bersama di sidecar
          readOnly: true
        # Mount direktori komunikasi.
        - name: tasksite
          mountPath: /tasksite
        # Mount zona waktu.
        - name: tz-config
          mountPath: /etc/localtime
          readOnly: true
    

2. Ubah logika siklus hidup kontainer aplikasi

Bergantung pada jenis workload, Anda harus mengubah kontainer aplikasi untuk mendukung keluar yang terkoordinasi dengan Sidecar.

Tugas berumur pendek (Job/CronJob)

# 1. Tunggu LoongCollector siap.
echo "[$(date)] Bisnis: Menunggu LoongCollector siap..."
until [[ -f /tasksite/cornerstone ]]; do
  sleep 1
done
echo "[$(date)] Bisnis: LoongCollector siap, memulai logika bisnis"

# 2. Jalankan logika bisnis inti (pastikan log ditulis ke direktori bersama).
echo "Hello, World!" >> /app/logs/business.log

# 3. Simpan kode keluar.
retcode=$?
echo "[$(date)] Bisnis: Tugas selesai dengan kode keluar: $retcode"

# 4. Beri tahu LoongCollector bahwa tugas bisnis selesai.
touch /tasksite/tombstone
echo "[$(date)] Bisnis: Tombstone dibuat, keluar"

exit $retcode

Layanan berumur panjang (Deployment/StatefulSet)

# Definisikan fungsi penanganan sinyal.
_term_handler() {
    echo "[$(date)] [nginx-demo] Menangkap SIGTERM, memulai shutdown yang mulus..."

    # Kirim sinyal QUIT ke Nginx untuk berhenti dengan mulus.
    if [ -n "$NGINX_PID" ]; then
        kill -QUIT "$NGINX_PID" 2>/dev/null || true
        echo "[$(date)] [nginx-demo] Mengirim SIGQUIT ke Nginx PID: $NGINX_PID"

        # Tunggu Nginx berhenti dengan mulus.
        wait "$NGINX_PID"
        EXIT_CODE=$?
        echo "[$(date)] [nginx-demo] Nginx berhenti dengan kode keluar: $EXIT_CODE"
    fi

    # Beri tahu LoongCollector bahwa kontainer aplikasi telah berhenti.
    echo "[$(date)] [nginx-demo] Menulis file tombstone"
    touch /tasksite/tombstone

    exit $EXIT_CODE
}

# Daftarkan penanganan sinyal.
trap _term_handler SIGTERM SIGINT SIGQUIT

# Tunggu LoongCollector siap.
echo "[$(date)] [nginx-demo]: Menunggu LoongCollector siap..."
until [[ -f /tasksite/cornerstone ]]; do 
    sleep 1
done
echo "[$(date)] [nginx-demo]: LoongCollector siap, memulai logika bisnis"

# Mulai Nginx.
echo "[$(date)] [nginx-demo] Memulai Nginx..."
nginx -g 'daemon off;' &
NGINX_PID=$!
echo "[$(date)] [nginx-demo] Nginx dimulai dengan PID: $NGINX_PID"

# Tunggu proses Nginx.
wait $NGINX_PID
EXIT_CODE=$?

# Juga beri tahu LoongCollector jika keluar bukan disebabkan oleh sinyal.
if [ ! -f /tasksite/tombstone ]; then
    echo "[$(date)] [nginx-demo] Keluar tak terduga, menulis tombstone"
    touch /tasksite/tombstone
fi

exit $EXIT_CODE

3. Atur periode terminasi yang mulus

Di spec.template.spec, atur periode tenggang terminasi yang cukup untuk memastikan LoongCollector memiliki waktu yang cukup untuk mengunggah log yang tersisa.

spec:
  # ... Konfigurasi spec lainnya yang sudah ada ...
  template:
    spec:
      terminationGracePeriodSeconds: 600  # Periode berhenti mulus 10 menit

4. Deskripsi parameter

Variabel

Deskripsi

${your_aliyun_user_id}

Atur ke ID Akun Alibaba Cloud Anda. Untuk informasi selengkapnya, lihat Konfigurasi pengenal pengguna.

${your_machine_group_user_defined_id}

Atur pengenal kustom untuk machine group guna membuat machine group kustom. Misalnya, nginx-log-sidecar.

Penting

Pastikan pengenal ini unik dalam wilayah proyek Anda.

${your_region_config}

Tentukan berdasarkan wilayah proyek Simple Log Service dan jenis jaringan untuk akses. Untuk informasi tentang wilayah, lihat Wilayah layanan.

Contoh: Jika proyek berada di wilayah Tiongkok (Hangzhou), gunakan cn-hangzhou untuk akses melalui jaringan internal Alibaba Cloud, dan gunakan cn-hangzhou-internet untuk akses melalui jaringan publik.

${shared_volume_name}

Atur nama kustom untuk volume.

Penting

Parameter name di bawah node volumeMounts dan parameter name di bawah node volumes harus diatur ke nilai yang sama. Ini memastikan bahwa kontainer LoongCollector dan kontainer aplikasi memasang volume yang sama.

${dir_containing_your_files}

Atur path mount, yaitu direktori dalam kontainer tempat log teks yang akan dikumpulkan berada.

5. Terapkan konfigurasi dan verifikasi hasilnya

  1. Jalankan perintah berikut untuk menerapkan perubahan:

    kubectl apply -f <YOUR-YAML>
  2. Lihat status pod untuk memastikan kontainer LoongCollector berhasil disuntikkan:

    kubectl describe pod <YOUR-POD-NAME>

    Jika Anda melihat dua kontainer (kontainer aplikasi dan kontainer loongcollector) dan statusnya normal, penyuntikan berhasil.

6. Buat machine group dengan pengenal kustom

  1. Masuk ke Konsol Simple Log Service dan klik proyek target.

  2. Di panel navigasi kiri, pilih imageResources > Machine Groups. Di samping Machine Groups, klik 机器组 > Create Machine Group.

  3. Di kotak dialog Create Machine Group, konfigurasikan parameter berikut dan klik OK.

    • Name: Nama machine group. Tidak dapat diubah setelah dibuat. Konvensi penamaan sebagai berikut:

      • Hanya boleh berisi huruf kecil, angka, tanda hubung (-), dan garis bawah (_).

      • Harus dimulai dan diakhiri dengan huruf kecil atau angka.

      • Harus terdiri dari 2 hingga 128 karakter.

    • Machine Group Identifier: Pilih Custom Identifier.

    • Custom Identifier: Masukkan nilai variabel lingkungan ALIYUN_LOGTAIL_USER_DEFINED_ID yang Anda atur untuk kontainer LoongCollector di file YAML di 1. Ubah konfigurasi YAML pod aplikasi. Nilainya harus persis sama. Jika tidak, asosiasi akan gagal.

  4. Periksa status heartbeat machine group: Setelah machine group dibuat, klik namanya dan lihat status heartbeat di area status.

    • OK: Menunjukkan bahwa LoongCollector berhasil terhubung ke SLS dan machine group terdaftar.

    • FAIL:

      • Konfigurasi mungkin belum berlaku. Diperlukan waktu sekitar 2 menit agar konfigurasi berlaku. Muat ulang halaman dan coba lagi nanti.

      • Jika status masih FAIL setelah 2 menit, lihat Pemecahan masalah machine group Logtail untuk mendiagnosis masalah.

Setiap pod sesuai dengan instans LoongCollector terpisah. Gunakan pengenal kustom berbeda untuk aplikasi atau lingkungan berbeda guna memfasilitasi manajemen detail halus.

FAQ

Bagaimana cara mengubah konfigurasi LoongCollector untuk kluster ACK managed agar mengumpulkan log lintas akun atau wilayah?

Jika Anda menginstal LoongCollector dari Konsol ACK Alibaba Cloud, secara default log kontainer dari kluster dikumpulkan ke proyek SLS dalam Akun Alibaba Cloud yang sama. Untuk mengumpulkan log kontainer lintas akun atau wilayah, gunakan salah satu dari dua metode berikut:

Metode 1: Uninstal dan instal ulang.

  1. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

  2. Di halaman Clusters, temukan kluster yang ingin Anda kelola dan klik namanya. Di panel navigasi kiri, klik Add-ons.

  3. Di tab Logs and Monitoring, temukan loongcollector dan klik Uninstall.

  4. Instal ulang komponen tersebut. Untuk informasi selengkapnya, lihat Instal pada kluster self-managed (mode DaemonSet).

Metode 2: Perbarui konfigurasi Helm dan redeploy LoongCollector.

  1. Masuk ke Konsol ACK. Masuk ke halaman kluster. Di panel navigasi kiri, pilih Applications > Helm.

  2. Di halaman Helm, temukan loongcollector, lalu di kolom Actions, klik Update. Di halaman Update Release, ubah hanya konfigurasi yang dijelaskan dalam tabel berikut, lalu klik OK.

    Kluster dan proyek

    Parameter yang diubah

    Akun sama, wilayah berbeda

    region: ID Wilayah tempat Proyek SLS berada.

    net: Atur nilainya ke `Internet`. Data tidak dapat ditransfer antar-wilayah melalui jaringan internal.

    Akun berbeda, wilayah sama

    aliUid: ID Akun Alibaba Cloud tempat Proyek SLS berada. Pisahkan beberapa ID akun dengan koma (,).

    net: Atur nilainya ke `Intranet`. Data dapat ditransfer dalam wilayah yang sama melalui jaringan internal.

    Akun berbeda, wilayah berbeda

    aliUid: ID Akun Alibaba Cloud tempat Proyek SLS berada. Pisahkan beberapa ID akun dengan koma (,).

    region: ID Wilayah tempat Proyek berada.

    net: Atur nilainya ke `Internet`. Data tidak dapat ditransfer antar-wilayah melalui jaringan internal.

  3. Buat machine group:

    1. Masuk ke Konsol Simple Log Service dan klik Proyek target.

    2. Di panel navigasi kiri, buka imageResources > Machine Groups. Di sebelah kanan Machine Groups, klik 机器组 > Create Machine Group.

    3. Di kotak dialog Create Machine Group, konfigurasikan parameter berikut dan klik OK.

      1. Masukkan nama untuk machine group.

      2. Atur Machine Group Identifier ke Custom Identifier.

      3. Di bidang Custom Identifier, masukkan k8s-group-${cluster_id}. Ganti ${cluster_id} dengan clusterID aktual kluster Anda.

    4. Setelah machine group dibuat, temukan di daftar machine group dan klik namanya. Di bagian Machine Group Configurations > Machine Group Status, periksa status Heartbeat. Status OK menunjukkan bahwa machine group berhasil dibuat. Jika heartbeat gagal, verifikasi identitas pengguna dan pengenal kustom.

  4. Setelah Anda mengubah konfigurasi, klik OK.


Bagaimana cara mengumpulkan log kontainer dari kluster Alibaba Cloud ACK Edge, ACK One, ACS, dan ACK Serverless?

Langkah selanjutnya

Setelah menginstal LoongCollector, lihat Kumpulkan log kontainer dari kluster Kubernetes. Topik ini menjelaskan prinsip inti, proses utama, rekomendasi pemilihan, dan praktik terbaik. Kemudian, buat konfigurasi pengumpulan menggunakan salah satu metode berikut:

Lampiran: Contoh YAML

Contoh ini menyediakan konfigurasi deployment Kubernetes lengkap yang mencakup kontainer aplikasi NGINX dan kontainer sidecar LoongCollector. Konfigurasi ini cocok untuk mengumpulkan log kontainer menggunakan pola sidecar.

Sebelum memulai, lakukan tiga penggantian berikut:

  1. Ganti ${your_aliyun_user_id} dengan UID Akun Alibaba Cloud Anda.

  2. Ganti ${your_machine_group_user_defined_id} dengan ID kustom machine group yang Anda buat di Langkah 3. ID harus persis sama.

  3. Ganti ${your_region_config} dengan nama konfigurasi yang sesuai dengan wilayah dan jenis jaringan proyek SLS Anda.

    Contoh: Untuk proyek di wilayah Tiongkok (Hangzhou), gunakan cn-hangzhou untuk akses jaringan internal atau cn-hangzhou-internet untuk akses jaringan publik.

Tugas berumur pendek (Job/CronJob)

apiVersion: batch/v1
kind: Job
metadata:
  name: demo-job
spec:
  backoffLimit: 3                   
  activeDeadlineSeconds: 3600        
  completions: 1                     
  parallelism: 1                    
  
  template:
    spec:
      restartPolicy: Never         
      terminationGracePeriodSeconds: 300 
      
      containers:
        # Kontainer aplikasi
        - name: demo-job
          image: debian:bookworm-slim
          command: ["/bin/bash", "-c"]
          args:
            - |
              # Tunggu LoongCollector siap.
              echo "[$(date)] Bisnis: Menunggu LoongCollector siap..."
              until [[ -f /tasksite/cornerstone ]]; do 
                sleep 1
              done
              echo "[$(date)] Bisnis: LoongCollector siap, memulai logika bisnis"
              
              # Jalankan logika bisnis.
              echo "Hello, World!" >> /app/logs/business.log
              
              # Simpan kode keluar.
              retcode=$?
              echo "[$(date)] Bisnis: Tugas selesai dengan kode keluar: $retcode"
              
              # Beri tahu LoongCollector bahwa tugas bisnis selesai.
              touch /tasksite/tombstone
              echo "[$(date)] Bisnis: Tombstone dibuat, keluar"
              
              exit $retcode
          
          # Batas resource
          resources:
            requests:
              cpu: "100m"
              memory: "128Mi"
            limits:
              cpu: "500"
              memory: "512Mi"
          
          # Mount volume
          volumeMounts:
            - name: app-logs
              mountPath: /app/logs
            - name: tasksite
              mountPath: /tasksite


        # Kontainer Sidecar LoongCollector
        - name: loongcollector
          image: aliyun-observability-release-registry.cn-hongkong.cr.aliyuncs.com/loongcollector/loongcollector:v3.1.1.0-20fa5eb-aliyun
          command: ["/bin/bash", "-c"]
          args:
            - |
              echo "[$(date)] LoongCollector: Memulai inisialisasi"
              
              # Mulai layanan LoongCollector.
              /etc/init.d/loongcollectord start
              
              # Tunggu konfigurasi diunduh dan layanan siap.
              sleep 15
              
              # Verifikasi status layanan.
              if /etc/init.d/loongcollectord status; then
                echo "[$(date)] LoongCollector: Layanan berhasil dimulai"
                touch /tasksite/cornerstone
              else
                echo "[$(date)] LoongCollector: Gagal memulai layanan"
                exit 1
              fi
              
              # Tunggu kontainer aplikasi selesai.
              echo "[$(date)] LoongCollector: Menunggu kontainer bisnis selesai"
              until [[ -f /tasksite/tombstone ]]; do 
                sleep 2
              done
              
              echo "[$(date)] LoongCollector: Bisnis selesai, menunggu transmisi log"
              # Beri waktu cukup untuk mentransmisikan log yang tersisa.
              sleep 30
              
              echo "[$(date)] LoongCollector: Menghentikan layanan"
              /etc/init.d/loongcollectord stop
              
              echo "[$(date)] LoongCollector: Shutdown selesai"
          
          # Pemeriksaan kesehatan
          livenessProbe:
            exec:
              command: ["/etc/init.d/loongcollectord", "status"]
            initialDelaySeconds: 30
            periodSeconds: 10
            timeoutSeconds: 5
            failureThreshold: 3
          
          # Konfigurasi resource
          resources:
            requests:
              cpu: "100m"
              memory: "128Mi"
            limits:
              cpu: "500m"
              memory: "512Mi"
          
          # Konfigurasi variabel lingkungan
          env:
            - name: ALIYUN_LOGTAIL_USER_ID
              value: "your-user-id"
            - name: ALIYUN_LOGTAIL_USER_DEFINED_ID
              value: "your-user-defined-id"
            - name: ALIYUN_LOGTAIL_CONFIG
              value: "/etc/ilogtail/conf/cn-hongkong/ilogtail_config.json"
            - name: ALIYUN_LOG_ENV_TAGS
              value: "_pod_name_|_pod_ip_|_namespace_|_node_name_"
            
            # Penyuntikan informasi pod
            - name: "_pod_name_"
              valueFrom:
                fieldRef:
                  fieldPath: metadata.name
            - name: "_pod_ip_"
              valueFrom:
                fieldRef:
                  fieldPath: status.podIP
            - name: "_namespace_"
              valueFrom:
                fieldRef:
                  fieldPath: metadata.namespace
            - name: "_node_name_"
              valueFrom:
                fieldRef:
                  fieldPath: spec.nodeName
          
          # Mount volume
          volumeMounts:
            - name: app-logs
              mountPath: /app/logs
              readOnly: true
            - name: tasksite
              mountPath: /tasksite
            - name: tz-config
              mountPath: /etc/localtime
              readOnly: true
      
      # Definisi volume
      volumes:
        - name: app-logs
          emptyDir: {}
        - name: tasksite
          emptyDir:
            medium: Memory
            sizeLimit: "10Mi"
        - name: tz-config
          hostPath:
            path: /usr/share/zoneinfo/Asia/Shanghai

Layanan berumur panjang (Deployment/StatefulSet)

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-demo
  namespace: production
  labels:
    app: nginx-demo
    version: v1.0.0
spec:
  replicas: 3
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 1      
      maxSurge: 1          
  selector:
    matchLabels:
      app: nginx-demo
  template:
    metadata:
      labels:
        app: nginx-demo
        version: v1.0.0    
    spec:
      terminationGracePeriodSeconds: 600  # Periode berhenti mulus 10 menit
      
      containers:
        # Kontainer aplikasi - Aplikasi web
        - name: nginx-demo
          image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6          
          # Perintah mulai dan penanganan sinyal
          command: ["/bin/sh", "-c"]
          args:
            - |
              # Definisikan fungsi penanganan sinyal.
              _term_handler() {
                  echo "[$(date)] [nginx-demo] Menangkap SIGTERM, memulai shutdown yang mulus..."
                  
                  # Kirim sinyal QUIT ke Nginx untuk berhenti dengan mulus.
                  if [ -n "$NGINX_PID" ]; then
                      kill -QUIT "$NGINX_PID" 2>/dev/null || true
                      echo "[$(date)] [nginx-demo] Mengirim SIGQUIT ke Nginx PID: $NGINX_PID"
                      
                      # Tunggu Nginx berhenti dengan mulus.
                      wait "$NGINX_PID"
                      EXIT_CODE=$?
                      echo "[$(date)] [nginx-demo] Nginx berhenti dengan kode keluar: $EXIT_CODE"
                  fi
                  
                  # Beri tahu LoongCollector bahwa kontainer aplikasi telah berhenti.
                  echo "[$(date)] [nginx-demo] Menulis file tombstone"
                  touch /tasksite/tombstone
                  
                  exit $EXIT_CODE
              }
              
              # Daftarkan penanganan sinyal.
              trap _term_handler SIGTERM SIGINT SIGQUIT

              # Tunggu LoongCollector siap.
              echo "[$(date)] [nginx-demo]: Menunggu LoongCollector siap..."
              until [[ -f /tasksite/cornerstone ]]; do 
                sleep 1
              done
              echo "[$(date)] [nginx-demo]: LoongCollector siap, memulai logika bisnis"
              
              # Mulai Nginx.
              echo "[$(date)] [nginx-demo] Memulai Nginx..."
              nginx -g 'daemon off;' &
              NGINX_PID=$!
              echo "[$(date)] [nginx-demo] Nginx dimulai dengan PID: $NGINX_PID"
              
              # Tunggu proses Nginx.
              wait $NGINX_PID
              EXIT_CODE=$?
              
              # Juga beri tahu LoongCollector jika keluar bukan disebabkan oleh sinyal.
              if [ ! -f /tasksite/tombstone ]; then
                  echo "[$(date)] [nginx-demo] Keluar tak terduga, menulis tombstone"
                  touch /tasksite/tombstone
              fi
              
              exit $EXIT_CODE
                    
          # Konfigurasi resource
          resources:
            requests:
              cpu: "200m"
              memory: "256Mi"
            limits:
              cpu: "1000m"
              memory: "1Gi"
          
          # Mount volume
          volumeMounts:
            - name: nginx-logs
              mountPath: /var/log/nginx
            - name: tasksite
              mountPath: /tasksite
            - name: tz-config
              mountPath: /etc/localtime
              readOnly: true

        # Kontainer Sidecar LoongCollector
        - name: loongcollector
          image: aliyun-observability-release-registry.cn-shenzhen.cr.aliyuncs.com/loongcollector/loongcollector:v3.1.1.0-20fa5eb-aliyun
          command: ["/bin/bash", "-c"]
          args:
            - |
              echo "[$(date)] LoongCollector: Memulai inisialisasi"
              
              # Mulai layanan LoongCollector.
              /etc/init.d/loongcollectord start
              
              # Tunggu konfigurasi diunduh dan layanan siap.
              sleep 15
              
              # Verifikasi status layanan.
              if /etc/init.d/loongcollectord status; then
                echo "[$(date)] LoongCollector: Layanan berhasil dimulai"
                touch /tasksite/cornerstone
              else
                echo "[$(date)] LoongCollector: Gagal memulai layanan"
                exit 1
              fi
              
              # Tunggu kontainer aplikasi selesai.
              echo "[$(date)] LoongCollector: Menunggu kontainer bisnis selesai"
              until [[ -f /tasksite/tombstone ]]; do 
                sleep 2
              done
              
              echo "[$(date)] LoongCollector: Bisnis selesai, menunggu transmisi log"
              # Beri waktu cukup untuk mentransmisikan log yang tersisa.
              sleep 30
              
              echo "[$(date)] LoongCollector: Menghentikan layanan"
              /etc/init.d/loongcollectord stop
              
              echo "[$(date)] LoongCollector: Shutdown selesai"
          
          # Pemeriksaan kesehatan
          livenessProbe:
            exec:
              command: ["/etc/init.d/loongcollectord", "status"]
            initialDelaySeconds: 30
            periodSeconds: 10
            timeoutSeconds: 5
            failureThreshold: 3
          # Konfigurasi resource
          resources:
            requests:
              cpu: "100m"
              memory: "128Mi"
            limits:
              cpu: "2000m"
              memory: "2048Mi"
          
          # Konfigurasi variabel lingkungan
          env:
            - name: ALIYUN_LOGTAIL_USER_ID
              value: "${your_aliyun_user_id}"
            - name: ALIYUN_LOGTAIL_USER_DEFINED_ID
              value: "${your_machine_group_user_defined_id}"
            - name: ALIYUN_LOGTAIL_CONFIG
              value: "/etc/ilogtail/conf/${your_region_config}/ilogtail_config.json"
            
            # Aktifkan mode full drain untuk memastikan semua log dikirim saat pod berhenti.
            - name: enable_full_drain_mode
              value: "true"
            
            # Tambahkan informasi lingkungan pod sebagai tag log.
            - name: "ALIYUN_LOG_ENV_TAGS"
              value: "_pod_name_|_pod_ip_|_namespace_|_node_name_|_node_ip_"
            # Dapatkan informasi pod dan node.
            - name: "_pod_name_"
              valueFrom:
                fieldRef:
                  fieldPath: metadata.name
            - name: "_pod_ip_"
              valueFrom:
                fieldRef:
                  fieldPath: status.podIP
            - name: "_namespace_"
              valueFrom:
                fieldRef:
                  fieldPath: metadata.namespace
            - name: "_node_name_"
              valueFrom:
                fieldRef:
                  fieldPath: spec.nodeName
            - name: "_node_ip_"
              valueFrom:
                fieldRef:
                  fieldPath: status.hostIP
          
          # Mount volume
          volumeMounts:
            - name: nginx-logs
              mountPath: /var/log/nginx
              readOnly: true
            - name: tasksite
              mountPath: /tasksite
            - name: tz-config
              mountPath: /etc/localtime
              readOnly: true
      
      # Definisi volume
      volumes:
        - name: nginx-logs
          emptyDir: {}
        - name: tasksite
          emptyDir:
            medium: Memory
            sizeLimit: "50Mi"
        - name: tz-config
          hostPath:
            path: /usr/share/zoneinfo/Asia/Shanghai

Informasi terkait

Wilayah

  1. Masuk ke Konsol Simple Log Service. Di daftar Project, klik proyek tujuan.

  2. Klik ikon image di sebelah kanan nama proyek untuk membuka halaman ikhtisar proyek.

  3. Di bagian Basic Information, lihat nama wilayah proyek saat ini. Untuk pemetaan antara nama wilayah dan ID Wilayah, lihat tabel berikut.

    Wilayah adalah lokasi geografis pusat data fisik untuk layanan Alibaba Cloud. ID Wilayah adalah pengenal unik wilayah layanan Alibaba Cloud.

    Nama wilayah

    ID Wilayah

    Tiongkok (Qingdao)

    cn-qingdao

    Tiongkok (Beijing)

    cn-beijing

    Tiongkok (Zhangjiakou)

    cn-zhangjiakou

    Tiongkok (Hohhot)

    cn-huhehaote

    Tiongkok (Ulanqab)

    cn-wulanchabu

    Tiongkok (Hangzhou)

    cn-hangzhou

    Tiongkok (Shanghai)

    cn-shanghai

    Tiongkok (Nanjing - Local Region - Decommissioning)

    cn-nanjing

    Tiongkok (Fuzhou - Local Region - Decommissioning)

    cn-fuzhou

    Tiongkok (Shenzhen)

    cn-shenzhen

    Tiongkok (Heyuan)

    cn-heyuan

    Tiongkok (Guangzhou)

    cn-guangzhou

    Filipina (Manila)

    ap-southeast-6

    Korea Selatan (Seoul)

    ap-northeast-2

    Malaysia (Kuala Lumpur)

    ap-southeast-3

    Jepang (Tokyo)

    ap-northeast-1

    Thailand (Bangkok)

    ap-southeast-7

    Tiongkok (Chengdu)

    cn-chengdu

    Singapura

    ap-southeast-1

    Indonesia (Jakarta)

    ap-southeast-5

    Tiongkok (Hong Kong)

    cn-hongkong

    Jerman (Frankfurt)

    eu-central-1

    AS (Virginia)

    us-east-1

    AS (Silicon Valley)

    us-west-1

    Inggris (London)

    eu-west-1

    UEA (Dubai)

    me-east-1

    SAU (Riyadh - Partner Region)

    me-central-1

Jenis transfer jaringan Loongcollector

Titik akhir adalah nama domain akses untuk Simple Log Service. Ini adalah URL yang digunakan untuk mengakses proyek dan data lognya, serta terkait dengan wilayah tempat proyek berada. Simple Log Service menyediakan titik akhir pribadi, titik akhir publik, dan titik akhir akselerasi. Anda dapat melihat titik akhir sebagai berikut:

  1. Masuk ke Konsol Simple Log Service dan klik proyek target di daftar proyek.

  2. Klik ikon image di sebelah kanan nama proyek untuk membuka halaman ikhtisar proyek.

  3. Di bagian Endpoints, Anda dapat melihat informasi titik akhir untuk proyek saat ini. Metode transmisi jaringan berbeda sesuai dengan titik akhir berbeda. Metode transmisi jaringan yang sesuai membantu memastikan transmisi data log yang lebih cepat dan stabil.

Jenis jaringan

Nama domain yang berlaku

Deskripsi

Skenario

Jaringan pribadi Alibaba Cloud

Titik akhir pribadi

Jaringan pribadi Alibaba Cloud adalah jaringan bersama gigabit. Mentransmisikan data log melalui jaringan pribadi Alibaba Cloud lebih cepat dan stabil dibandingkan melalui jaringan publik. Jaringan pribadi mencakup VPC dan jaringan klasik.

Instance ECS dan proyek Simple Log Service berada di wilayah yang sama, atau server on-premises terhubung ke jaringan pribadi.

Catatan

Buat proyek Simple Log Service di wilayah yang sama dengan instance ECS Anda. Ini memungkinkan Anda mengumpulkan log dari instance ECS melalui jaringan pribadi Alibaba Cloud tanpa mengonsumsi bandwidth publik.

Jaringan publik

Titik akhir publik

Saat Anda menggunakan jaringan publik untuk mentransmisikan data log, kecepatan dan stabilitas pengumpulan data dapat dipengaruhi oleh batasan bandwidth jaringan, fluktuasi jaringan, latensi, dan kehilangan paket.

Anda dapat memilih untuk mentransmisikan data melalui jaringan publik dalam dua kasus berikut:

  • Instance ECS dan proyek Simple Log Service berada di wilayah berbeda.

  • Server berasal dari penyedia cloud lain atau pusat data on-premises.

Akselerasi transfer

Titik akhir akselerasi

Metode ini menggunakan titik keberadaan (POPs) CDN Alibaba Cloud untuk mempercepat pengumpulan log. Ini menawarkan keunggulan signifikan dalam latensi jaringan dan stabilitas dibandingkan pengumpulan jaringan publik. Namun, Anda dikenai biaya untuk trafiknya.

Jika server bisnis Anda dan proyek Simple Log Service berada di wilayah berbeda, seperti satu di Tiongkok daratan dan yang lain di luar Tiongkok, Anda mungkin mengalami latensi jaringan tinggi dan transmisi tidak stabil saat menggunakan jaringan publik. Dalam kasus ini, Anda dapat memilih untuk menggunakan akselerasi transfer. Untuk informasi selengkapnya, lihat Akselerasi transfer.

Mode operasi Loongcollector

Atribut

Mode DaemonSet

Mode Sidecar

Metode deployment

Men-deploy satu kontainer pengumpulan di setiap node.

Men-deploy satu kontainer pengumpulan di setiap pod.

Konsumsi resource

Rendah (membagi resource node)

Tinggi (ditempati oleh setiap pod secara individual)

Kasus penggunaan

Pengumpulan log terpadu di tingkat node.

Pengumpulan log terisolasi untuk aplikasi tertentu.

Isolasi

Berbagi di tingkat node

Kemandirian di tingkat pod

Cara kerja mode DaemonSet

LoongCollector diterapkan di setiap node kluster untuk mengumpulkan log dari semua kontainer di node tersebut. Mode ini memiliki O&M sederhana, konsumsi resource rendah, dan konfigurasi fleksibel. Namun, isolasinya lemah.

  • Dalam mode DaemonSet, kluster Kubernetes memastikan hanya satu kontainer LoongCollector yang berjalan di setiap node. Kontainer ini mengumpulkan log dari semua kontainer lain di node yang sama.

  • Saat node baru bergabung ke kluster, Kubernetes secara otomatis membuat kontainer LoongCollector di atasnya. Saat node meninggalkan kluster, Kubernetes secara otomatis menghancurkan kontainer LoongCollector di node tersebut. Mekanisme auto-scaling DaemonSet dan machine group berbasis pengenal menghilangkan kebutuhan untuk manajemen manual instans LoongCollector.

image

Cara kerja mode Sidecar

Kontainer Sidecar LoongCollector disuntikkan ke setiap pod bersama kontainer aplikasi. Direktori log kontainer aplikasi dipasang sebagai volume bersama menggunakan volume Kubernetes, seperti emptyDir, hostPath, atau volume persisten (PV). Ini membuat file log tersedia di path mount kedua kontainer aplikasi dan Sidecar sehingga LoongCollector dapat membacanya secara langsung. Mode ini memiliki isolasi data multi-tenant dan performa yang baik. Namun, mengonsumsi lebih banyak resource dan lebih kompleks untuk dikonfigurasi serta dipelihara.

  • Dalam mode Sidecar, satu kontainer LoongCollector berjalan di setiap pod untuk mengumpulkan log dari semua kontainer lain dalam pod tersebut. Pengumpulan log untuk pod berbeda diisolasi.

  • Untuk mengumpulkan file log dari kontainer lain dalam pod yang sama, Anda dapat menggunakan volume bersama. Volume yang sama harus dipasang ke kontainer aplikasi dan kontainer LoongCollector.

  • Jika volume data pod di node sangat besar dan melebihi batas performa pengumpulan mode DaemonSet, Anda dapat menggunakan mode Sidecar untuk mengalokasikan resource khusus ke LoongCollector. Ini meningkatkan performa dan stabilitas pengumpulan log.

  • Kontainer serverless tidak memiliki konsep node, sehingga mode deployment DaemonSet tradisional tidak dapat digunakan. Dalam skenario ini, mode Sidecar dapat dikombinasikan dengan arsitektur serverless untuk memastikan proses pengumpulan log yang fleksibel dan adaptif.

image