全部产品
Search
文档中心

Simple Log Service:Instalasi dan konfigurasi

更新时间:Nov 16, 2025

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 Simple Log Service 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 Informasi Dasar, temukan titik akhir publik dan internal 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 Simple Log Service berfungsi.

      Catatan

      Pengujian ini hanya memverifikasi konektivitas lapisan jaringan. Simple Log Service mengembalikan kesalahan karena permintaan tidak memiliki parameter API yang diperlukan. Perilaku ini diharapkan.

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

Pilih metode instalasi

Pilih metode instalasi berikut berdasarkan jenis kluster dan kebutuhan Anda.

Metode instalasi

Skenario

Instal pada kluster ACK (mode DaemonSet)

Kumpulkan log dari kluster ACK yang dikelola dan khusus dalam Akun Alibaba Cloud dan wilayah yang sama.

Instal pada kluster yang dikelola sendiri (mode DaemonSet)

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

  • Kumpulkan log dari kluster Kubernetes yang diterapkan di pusat data yang Anda kelola sendiri.

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

Instal dalam mode Sidecar

Kumpulkan log dari aplikasi tertentu dengan persyaratan berikut:

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

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

Instal pada kluster ACK (mode DaemonSet)

Catatan

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

Anda dapat menginstal LoongCollector dengan satu klik di Konsol Alibaba Cloud Container Service for Kubernetes (ACK). Secara default, log kontainer dari kluster dikumpulkan ke proyek Simple Log Service dalam akun dan wilayah yang sama. Untuk mengumpulkan log lintas akun atau wilayah, lihat Instal pada kluster yang dikelola sendiri (mode DaemonSet).

Instal pada kluster ACK yang dikelola 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 Logging, temukan loongcollector, lalu klik Install.

  4. Setelah instalasi selesai, Simple Log Service secara otomatis membuat sumber daya berikut di wilayah tempat kluster ACK berada. Anda dapat masuk ke Konsol Simple Log Service untuk melihatnya.

    Jenis sumber daya

    Nama sumber daya

    Tujuan

    Proyek

    k8s-log-${cluster_id}

    Unit manajemen sumber daya yang mengisolasi log dari layanan berbeda.

    Kelompok mesin

    k8s-group-${cluster_id}

    Kelompok mesin untuk loongcollector-ds. Terutama digunakan untuk pengumpulan log.

    k8s-group-${cluster_id}-cluster

    Kelompok mesin untuk loongcollector-cluster. Terutama digunakan untuk pengumpulan metrik.

    k8s-group-${cluster_id}-singleton

    Kelompok mesin instansi tunggal. Terutama digunakan untuk beberapa konfigurasi pengumpulan instansi tunggal.

    Penyimpanan log

    config-operation-log

    Penting

    Jangan menghapus Logstore ini.

    Menyimpan log dari alibaba-log-controller dalam komponen LoongCollector. Ditagih dengan cara yang sama seperti Logstore standar. Untuk informasi selengkapnya, lihat Item penagihan untuk mode bayar-per-data-ditulis. Jangan membuat konfigurasi pengumpulan di Logstore ini.

Instal saat membuat kluster ACK yang dikelola baru

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

  2. Klik Create Cluster. Di halaman Component Configurations, pilih Enable Log Service. Anda dapat membuat Proyek baru atau menggunakan Proyek yang sudah ada.

    Topik ini hanya menjelaskan konfigurasi yang terkait dengan Simple Log Service. Untuk informasi selengkapnya tentang item konfigurasi lainnya, lihat Buat kluster ACK yang dikelola.
  3. Saat Anda memilih Create New Project, Simple Log Service secara default membuat sumber daya berikut. Anda dapat masuk ke Konsol Simple Log Service untuk melihatnya.

    Jenis sumber daya

    Nama sumber daya

    Tujuan

    Proyek

    k8s-log-${cluster_id}

    Unit manajemen sumber daya yang mengisolasi log dari layanan berbeda.

    Kelompok mesin

    k8s-group-${cluster_id}

    Kelompok mesin untuk loongcollector-ds. Terutama digunakan untuk pengumpulan log.

    k8s-group-${cluster_id}-cluster

    Kelompok mesin untuk loongcollector-cluster. Terutama digunakan untuk pengumpulan metrik.

    k8s-group-${cluster_id}-singleton

    Kelompok mesin instansi tunggal. Terutama digunakan untuk beberapa konfigurasi pengumpulan instansi tunggal.

    Penyimpanan log

    config-operation-log

    Penting

    Jangan menghapus Logstore ini.

    Menyimpan log dari alibaba-log-controller dalam komponen LoongCollector. Ditagih dengan cara yang sama seperti Logstore standar. Untuk informasi selengkapnya, lihat Item penagihan untuk mode bayar-per-data-ditulis. Jangan membuat konfigurasi pengumpulan di Logstore ini.

Instal pada kluster yang dikelola sendiri (mode DaemonSet)

Skenario

  • Kluster Kubernetes di pusat data yang dikelola sendiri

  • Kluster Kubernetes yang diterapkan di penyedia cloud lain

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

Catatan

Pastikan kluster yang Anda kelola sendiri menjalankan Kubernetes 1.6 atau lebih tinggi.

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 yang memiliki 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 yang memiliki 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 yang 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 citra: Jalankan perintah berikut dan periksa bagian Events pada output untuk memastikan citra kontainer berhasil ditarik.

      kubectl describe pod loongcollector-ds -n kube-system
  5. Setelah komponen diinstal, Simple Log Service secara otomatis membuat sumber daya berikut. Anda dapat masuk ke Konsol Simple Log Service untuk melihatnya.

    Jenis sumber daya

    Nama sumber daya

    Tujuan

    Proyek

    Nilai projectName yang Anda tentukan di file values.yaml

    Unit manajemen sumber daya yang mengisolasi log layanan berbeda.

    Kelompok mesin

    k8s-group-${cluster_id}

    Kumpulan node pengumpulan log.

    k8s-group-${cluster_id}-cluster

    Kelompok mesin untuk loongcollector-cluster, terutama digunakan untuk pengumpulan metrik.

    k8s-group-${cluster_id}-singleton

    Kelompok mesin instansi tunggal, terutama digunakan untuk konfigurasi pengumpulan instansi tunggal.

    Penyimpanan log

    config-operation-log

    Penting

    Jangan menghapus Logstore ini.

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

Instal menggunakan pola sidecar

Gunakan pola sidecar untuk manajemen log detail halus, isolasi data multi-penyewa, atau mengikat pengumpulan log ke siklus hidup aplikasi. Pola ini menyuntikkan kontainer LoongCollector (Logtail) terpisah ke dalam pod aplikasi untuk mengaktifkan 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 containers:

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

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

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

    Di larik 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 sumber daya
      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 drain penuh 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
      # Pemasangan volume (dibagi dengan kontainer aplikasi)
      volumeMounts:
        # Pemasangan baca-saja untuk direktori log aplikasi
        - name: ${shared_volume_name} # <-- Nama direktori log bersama
          mountPath: ${dir_containing_your_files} # <-- Jalur ke direktori bersama di sidecar
          readOnly: true
        # Pasang direktori komunikasi
        - name: tasksite
          mountPath: /tasksite
        # Pasang zona waktu
        - name: tz-config
          mountPath: /etc/localtime
          readOnly: true
    

2. Ubah logika siklus hidup kontainer aplikasi

Bergantung pada jenis beban kerja, Anda harus memodifikasi 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] Mendeteksi SIGTERM, memulai shutdown yang mulus..."

    # Kirim sinyal QUIT ke Nginx untuk penghentian yang mulus
    if [ -n "$NGINX_PID" ]; then
        kill -QUIT "$NGINX_PID" 2>/dev/null || true
        echo "[$(date)] [nginx-demo] Mengirim SIGQUIT ke PID Nginx: $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 tidak 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 shutdown mulus 10 menit

4. Deskripsi variabel

Variabel

Deskripsi

${your_aliyun_user_id}

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

${your_machine_group_user_defined_id}

Atur ID kustom untuk kelompok mesin. ID ini digunakan untuk membuat kelompok mesin kustom. Contoh: nginx-log-sidecar.

Penting

Pastikan ID ini unik dalam wilayah proyek Anda.

${your_region_config}

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

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

${shared_volume_name}

Atur nama kustom untuk volume.

Penting

Parameter name di bawah node volumeMounts harus sama dengan parameter name di bawah node volumes. Ini memastikan bahwa kontainer LoongCollector dan kontainer aplikasi dipasang pada volume yang sama.

${dir_containing_your_files}

Atur jalur pemasangan. Ini adalah 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. Periksa status pod untuk memastikan kontainer LoongCollector berhasil disuntikkan:

    kubectl describe pod <YOUR-POD-NAME>

    Jika status kedua kontainer (kontainer aplikasi dan loongcollector) adalah Normal, penyuntikan berhasil.

6. Buat kelompok mesin 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 kelompok mesin. Nama 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 ID: Pilih Custom Identifier.

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

  4. Periksa status heartbeat kelompok mesin: Setelah kelompok mesin dibuat, klik namanya dan lihat status heartbeat di area status.

    • OK: Menunjukkan bahwa LoongCollector berhasil terhubung ke Simple Log Service dan kelompok mesin telah terdaftar.

    • GAGAL:

      • 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 kelompok mesin Logtail untuk mendiagnosis masalah.

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

FAQ

Bagaimana cara memodifikasi konfigurasi LoongCollector untuk kluster ACK yang dikelola agar mengumpulkan log lintas akun atau wilayah?

Jika Anda menginstal LoongCollector dari Konsol Alibaba Cloud ACK, secara default log kontainer dari kluster dikumpulkan ke Proyek Simple Log Service dalam Akun Alibaba Cloud yang sama. Untuk mengumpulkan log kontainer lintas akun atau wilayah, Anda dapat menggunakan salah satu dari dua metode berikut:

Metode 1: Uninstall 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 yang dikelola sendiri (mode DaemonSet).

Metode 2: Perbarui konfigurasi Helm dan redeploy LoongCollector.

  1. Masuk ke Konsol Manajemen Container Service. Di panel navigasi kiri, pilih Applications > Helm.

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

    Kluster dan Proyek

    Parameter yang dimodifikasi

    Akun sama, wilayah berbeda

    region: ID Wilayah wilayah tempat Proyek Simple Log Service 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 Simple Log Service 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 Simple Log Service berada. Pisahkan beberapa ID akun dengan koma (,).

    region: ID Wilayah wilayah tempat Proyek berada.

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

  3. Buat kelompok mesin:

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

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

    3. Di kotak dialog Create Machine Group, Anda dapat mengonfigurasi parameter berikut dan klik OK.

      1. Masukkan nama untuk kelompok mesin.

      2. Untuk parameter Pengenal Kelompok Mesin, pilih Custom Identifier.

      3. Untuk Pengenal Kustom, masukkan k8s-group-${cluster_id}. Ganti ${cluster_id} dengan clusterID aktual kluster Anda.

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

  4. Setelah Anda memodifikasi konfigurasi, klik Update.


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

Langkah selanjutnya

Setelah Anda 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 kelompok mesin yang Anda buat di Langkah 3. ID harus cocok persis.

  3. Ganti ${your_region_config} dengan nama konfigurasi yang sesuai dengan wilayah dan jenis jaringan proyek Simple Log Service 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 sumber daya
          resources:
            requests:
              cpu: "100m"
              memory: "128Mi"
            limits:
              cpu: "500"
              memory: "512Mi"
          
          # Pemasangan 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 sumber daya
          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
          
          # Pemasangan 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 shutdown 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 startup dan penanganan sinyal
          command: ["/bin/sh", "-c"]
          args:
            - |
              # Definisikan fungsi penanganan sinyal
              _term_handler() {
                  echo "[$(date)] [nginx-demo] Mendeteksi SIGTERM, memulai shutdown yang mulus..."
                  
                  # Kirim sinyal QUIT ke Nginx untuk penghentian yang mulus
                  if [ -n "$NGINX_PID" ]; then
                      kill -QUIT "$NGINX_PID" 2>/dev/null || true
                      echo "[$(date)] [nginx-demo] Mengirim SIGQUIT ke PID Nginx: $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 tidak 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 sumber daya
          resources:
            requests:
              cpu: "200m"
              memory: "256Mi"
            limits:
              cpu: "1000m"
              memory: "1Gi"
          
          # Pemasangan 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 sumber daya
          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 drain penuh 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
          
          # Pemasangan 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 Proyek, klik proyek tujuan.

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

  3. Di bagian Informasi Dasar, 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 - Wilayah Lokal - Dihentikan)

    cn-nanjing

    Tiongkok (Fuzhou - Wilayah Lokal - Dihentikan)

    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 - Wilayah Mitra)

    me-central-1

Jenis transfer jaringan Loongcollector

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

  1. Masuk ke Konsol Simple Log Service. Di bagian Projects, klik proyek target.

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

  3. Di tab Endpoints, Anda dapat melihat informasi nama domain untuk proyek saat ini. Jenis transfer jaringan berbeda sesuai dengan titik akhir berbeda. Memilih jenis transfer jaringan yang tepat dapat membantu membuat transmisi data log lebih cepat dan stabil.

Jenis jaringan

Jenis titik akhir yang sesuai

Deskripsi

Skenario

Jaringan internal Alibaba Cloud

Titik akhir internal

Jaringan internal Alibaba Cloud adalah jaringan bersama gigabit. Mentransfer data log melalui jaringan internal Alibaba Cloud lebih cepat dan stabil dibandingkan melalui Internet. Jaringan internal mencakup VPC dan jaringan klasik.

Instance ECS dan proyek Simple Log Service berada di wilayah yang sama, atau server lokal terhubung ke jaringan internal.

Catatan

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

Internet

Titik akhir publik

Mentransfer data log melalui Internet tidak hanya dibatasi oleh bandwidth jaringan tetapi juga dapat dipengaruhi oleh fluktuasi jaringan, latensi, dan kehilangan paket, yang dapat memengaruhi kecepatan dan stabilitas pengumpulan data.

Anda dapat memilih untuk mentransfer data melalui Internet dalam dua kasus berikut:

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

  • Server berasal dari penyedia layanan cloud lain atau pusat data lokal.

Akselerasi transfer

Titik akhir akselerasi

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

Jika server bisnis Anda dan proyek Simple Log Service berada di wilayah di daratan Tiongkok dan wilayah di luar daratan Tiongkok, masing-masing, mentransfer data melalui Internet dapat menyebabkan latensi jaringan tinggi dan ketidakstabilan. Anda dapat memilih untuk menggunakan akselerasi transfer untuk mentransfer data. Untuk informasi selengkapnya, lihat Akselerasi transfer.

Mode operasi Loongcollector

Atribut

Mode DaemonSet

Mode Sidecar

Metode deployment

Menyebarkan satu kontainer pengumpulan di setiap node.

Menyebarkan satu kontainer pengumpulan di setiap pod.

Konsumsi sumber daya

Rendah (berbagi sumber daya node)

Tinggi (ditempati oleh setiap pod secara individual)

Skenario

Pengumpulan log terpadu di tingkat node.

Pengumpulan log terisolasi untuk aplikasi tertentu.

Isolasi

Berbagi tingkat node

Kemandirian 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 yang sederhana, konsumsi sumber daya rendah, dan konfigurasi fleksibel. Namun, mode ini memberikan isolasi yang 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 penskalaan otomatis DaemonSet dan kelompok mesin berbasis pengenal menghilangkan kebutuhan untuk manajemen manual instansi LoongCollector.

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). Hal ini membuat file log tersedia di jalur pemasangan kedua kontainer aplikasi dan Sidecar sehingga LoongCollector dapat membacanya secara langsung. Mode ini memiliki isolasi data multi-penyewa dan performa yang baik. Namun, mode ini mengonsumsi lebih banyak sumber daya dan lebih kompleks untuk dikonfigurasi serta dipelihara.

  • Dalam mode Sidecar, 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 sumber daya khusus ke LoongCollector. Hal 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.