全部产品
Search
文档中心

Container Service for Kubernetes:Kumpulkan log aplikasi menggunakan variabel lingkungan pod

更新时间:Jan 07, 2026

Alibaba Cloud Simple Log Service (SLS) adalah layanan terpadu untuk data log yang memungkinkan pengumpulan, konsumsi, pengiriman, kueri, dan analisis data secara cepat tanpa perlu pengembangan. Kluster ACK serverless menyediakan fitur Simple Log Service yang dikelola. Anda dapat menggunakan variabel lingkungan SLS dalam kluster ACK serverless untuk mengumpulkan output standar dan file log dari kontainer aplikasi serta mengirimkannya ke SLS.

Penting
  • Disarankan untuk menggunakan CustomResourceDefinitions (CRDs) Simple Log Service dalam mengumpulkan log. Untuk informasi selengkapnya, lihat Kumpulkan log aplikasi menggunakan CRD.

  • Jangan gunakan CRD SLS dan variabel lingkungan secara bersamaan karena dapat menyebabkan kegagalan pengumpulan log.

Langkah 1: Buat aplikasi dan konfigurasikan Simple Log Service

Anda dapat membuat aplikasi dari citra atau templat YAML sekaligus mengonfigurasi Simple Log Service untuk mengumpulkan log kontainer. Untuk informasi selengkapnya tentang SLS, lihat Apa itu Simple Log Service?.

Buat dari citra

  1. Login ke ACK console. Di panel navigasi kiri, klik Clusters.

  2. Di bagian atas halaman Stateless, pilih namespace target dari daftar drop-down Namespace, lalu klik Create From Image.

    1. Pada tab Application Basic Information, atur Application Name, Replicas, dan Type, lalu klik Next.

    2. Pada tab Container Configuration, konfigurasikan parameter pada bagian Log Service.

      Catatan

      Topik ini hanya menjelaskan parameter yang terkait dengan Simple Log Service. Untuk informasi selengkapnya tentang parameter aplikasi lainnya, lihat Buat workload stateless (Deployment).

      Gambar berikut menunjukkan contoh konfigurasi.采集配置

      Item konfigurasi

      Deskripsi

      Konfigurasi Pengumpulan

      Jika konfigurasi pengumpulan berubah, Anda harus menghapus konfigurasi pengumpulan historis secara manual untuk mencegah duplikasi pengumpulan.

      Klik Collection Configuration. Atur Logstore dan Log Path in Container.

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

        Gunakan parameter ini untuk menentukan Logstore tempat log yang dikumpulkan disimpan. Jika Logstore yang ditentukan tidak ada, kluster ACK serverless akan secara otomatis membuat Logstore di proyek Simple Log Service yang terkait dengan kluster tersebut.

      • Log Path in Container: Jalur tempat Anda ingin mengumpulkan log. Misalnya, gunakan /usr/local/tomcat/logs/catalina.*.log untuk mengumpulkan log teks Tomcat.

        Catatan

        Jika Anda mengatur parameter ini ke stdout, output standar dan error standar akan dikumpulkan.

      Setiap konfigurasi pengumpulan secara otomatis dibuat sebagai konfigurasi untuk Logstore yang sesuai. Secara default, log dikumpulkan dalam mode sederhana (per baris). Untuk metode pengumpulan yang lebih lanjut, login ke Simple Log Service console dan ubah konfigurasi di proyek dan Logstore yang sesuai. Nama proyek secara default menggunakan awalan `k8s-log`.

      Custom Tag

      Klik Custom Tag. Atur Tag Name dan Tag Value.

      Setiap custom tag merupakan pasangan kunci-nilai yang ditambahkan ke data log yang dikumpulkan. Anda dapat menggunakan custom tag untuk menandai data log, misalnya dengan nomor versi.

    3. Setelah menyelesaikan konfigurasi, klik Next. Untuk informasi selengkapnya tentang langkah berikutnya, lihat Buat workload stateless (Deployment).

Buat dari file YAML

  1. Login ke ACK console. Di panel navigasi kiri, klik Clusters.

  2. Di bagian atas halaman Stateless, pilih namespace target dari daftar drop-down Namespace, lalu klik Create From YAML.

  3. Pada halaman Create, pilih templat contoh. Di editor Template, konfigurasikan file YAML, lalu klik Create.

    Templat menggunakan sintaks Kubernetes. Untuk menentukan konfigurasi pengumpulan untuk suatu kontainer, gunakan env untuk menambahkan konfigurasi pengumpulan dan custom tag. Kemudian, buat volumeMounts dan volumes yang sesuai berdasarkan konfigurasi pengumpulan tersebut. Kode berikut menunjukkan contoh file YAML pod:

    apiVersion: v1
    kind: Pod
    metadata:
      name: my-demo
    spec:
      containers:
      - name: my-demo-app
        image: 'registry.cn-hangzhou.aliyuncs.com/log-service/docker-log-test:latest'
        args:
        - -c
        - mkdir -p /log;while true; do echo hello world; date; echo hello sls >> /var/log/test.log; sleep 1;done
        command:
        - /bin/sh
        env:
        ######### Konfigurasikan variabel lingkungan ###########
        - name: aliyun_logs_log-stdout
          value: stdout
        - name: aliyun_logs_log-varlog
          value: /var/log/*.log
        - name: aliyun_logs_mytag1_tags
          value: tag1=v1
        ######### Konfigurasikan Volume Mounts ###########
        volumeMounts:
        - name: volumn-sls-mydemo
          mountPath: /var/log
      volumes:
      - name: volumn-sls-mydemo
        emptyDir: {}

    Tambahkan konfigurasi berikut ke file YAML pod contoh sesuai kebutuhan:

    Catatan

    Untuk opsi pengumpulan log lanjutan, lihat Langkah 2: Konfigurasikan parameter lanjutan untuk variabel lingkungan.

    1. Buat konfigurasi pengumpulan dan custom tag menggunakan variabel lingkungan. Semua variabel lingkungan yang terkait konfigurasi harus menggunakan awalan aliyun_logs_.

      1. Buat aturan konfigurasi pengumpulan:

        - name: aliyun_logs_log-stdout
          value: stdout
        - name: aliyun_logs_log-varlog
          value: /var/log/*.log

        Contoh ini membuat dua konfigurasi pengumpulan dalam format aliyun_logs_{key}. Nilai {key} yang sesuai adalah log-stdout dan log-varlog.

        • aliyun_logs_log-stdout: Variabel env ini menentukan konfigurasi untuk membuat Logstore bernama log-stdout dan mengatur jalur pengumpulan log ke stdout. Konfigurasi pengumpulan Simple Log Service yang sesuai, juga bernama log-stdout, mengumpulkan output standar dari kontainer dan mengirimkannya ke Logstore log-stdout.

        • aliyun_logs_log-varlog: Variabel env ini menentukan konfigurasi yang membuat Logstore bernama log-varlog untuk mengumpulkan log dari jalur /var/log/*.log. Nama konfigurasi pengumpulan Simple Log Service yang sesuai juga log-varlog. Konfigurasi ini mengumpulkan log dari file di jalur /var/log/*.log kontainer dan menyimpannya di Logstore log-varlog.

      2. Buat aturan custom tag:

        - name: aliyun_logs_mytag1_tags
          value: tag1=v1

        Setelah mengonfigurasi tag, bidang yang sesuai akan secara otomatis ditambahkan ke log yang dikumpulkan dari kontainer. Nama tag, seperti mytag1, hanya boleh berisi huruf kecil, angka, dan tanda hubung (-).

    2. Jika konfigurasi pengumpulan Anda menentukan jalur selain stdout, Anda harus membuat volumeMounts yang sesuai. Dalam contoh ini, karena konfigurasi mengumpulkan log dari /var/log/*.log, volumeMounts untuk /var/log ditambahkan.

Langkah 2: Konfigurasikan parameter lanjutan untuk variabel lingkungan

Konfigurasi LoongCollector berbasis variabel lingkungan mendukung berbagai parameter. Anda dapat menggunakan variabel lingkungan untuk mengonfigurasi pengaturan lanjutan guna memenuhi kebutuhan pengumpulan log Anda.

Penting

Anda tidak dapat menggunakan variabel lingkungan untuk mengonfigurasi pengumpulan log dalam skenario komputasi tepi.

Variabel

Deskripsi

Contoh

Catatan penggunaan

aliyun_logs_{key}

  • Variabel ini wajib. {key} hanya boleh berisi huruf kecil, angka, dan tanda hubung (-).

  • Jika aliyun_logs_{key}_logstore yang ditentukan tidak ada, logstore bernama {key} akan dibuat.

  • Untuk mengumpulkan stdout kontainer, atur nilai ke stdout. Anda juga dapat mengatur nilai ke jalur di dalam kontainer untuk mengumpulkan file log.

  • - name: aliyun_logs_catalina
    
      value: stdout
  • - name: aliyun_logs_access-log
    
      value: /var/log/nginx/access.log
  • Secara default, log dikumpulkan dalam mode sederhana. Jika Anda ingin mengurai log yang dikumpulkan, kami sarankan Anda mengonfigurasi pengaturan terkait di konsol Simple Log Service atau menggunakan CRD.

  • {key} menentukan nama konfigurasi Logtail. Nama konfigurasi harus unik dalam kluster Kubernetes.

aliyun_logs_{key}_tags

Opsional. Variabel ini digunakan untuk menambahkan tag ke data log. Nilai harus dalam format {tag-key}={tag-value}.

- name: aliyun_logs_catalina_tags

  value: app=catalina

Tidak berlaku.

aliyun_logs_{key}_project

Opsional. Variabel ini menentukan proyek Simple Log Service. Proyek default adalah proyek yang Anda tentukan saat membuat kluster.

- name: aliyun_logs_catalina_project

  value: my-k8s-project

Proyek harus dideploy di wilayah yang sama dengan Logtail.

aliyun_logs_{key}_logstore

Opsional. Variabel ini menentukan logstore Simple Log Service. Nilai default: {key}.

- name: aliyun_logs_catalina_logstore

  value: my-logstore

Tidak berlaku.

aliyun_logs_{key}_shard

Opsional. Variabel ini menentukan jumlah shard logstore. Nilai valid: 1 hingga 10. Nilai default: 2.

Catatan

Jika logstore yang Anda tentukan sudah ada, variabel ini tidak berlaku.

- name: aliyun_logs_catalina_shard

  value: '4'

Tidak berlaku.

aliyun_logs_{key}_ttl

Opsional. Variabel ini menentukan periode retensi log. Nilai valid: 1 hingga 3650.

  • Untuk menyimpan data log secara permanen, atur nilai ke 3650.

  • Periode retensi default adalah 90 hari.

Catatan

Jika logstore yang Anda tentukan sudah ada, variabel ini tidak berlaku.

- name: aliyun_logs_catalina_ttl

  value: '3650'

Tidak berlaku.

aliyun_logs_{key}_machinegroup

Opsional. Variabel ini menentukan kelompok node tempat aplikasi dideploy. Kelompok mesin default adalah kelompok tempat Logtail dideploy. Untuk informasi selengkapnya tentang cara menggunakan variabel ini, lihat Kumpulkan log kontainer dari kluster ACK.

- name: aliyun_logs_catalina_machinegroup

  value: my-machine-group

Tidak berlaku.

aliyun_logs_{key}_logstoremode

Opsional. Variabel ini menentukan jenis logstore. Nilai default: standard. Nilai valid: standard dan query.

Catatan

Jika logstore yang Anda tentukan sudah ada, variabel ini tidak berlaku.

  • standard: Logstore standar. Jenis logstore ini mendukung fitur analisis log dan cocok untuk skenario seperti pemantauan waktu nyata dan analisis interaktif. Anda dapat menggunakan jenis logstore ini untuk membangun sistem observabilitas yang komprehensif.

  • query: Logstore query. Jenis logstore ini mendukung kueri berkinerja-tinggi. Biaya traffic indeks logstore Query kira-kira separuh dari logstore standard. Logstore Query tidak mendukung analisis SQL. Logstore Query cocok untuk skenario dengan volume data besar, periode retensi log panjang, atau tidak memerlukan analisis log. Periode retensi log dianggap panjang jika log disimpan selama berminggu-minggu atau berbulan-bulan.

  • - name: aliyun_logs_catalina_logstoremode
      value: standard 
  • - name: aliyun_logs_catalina_logstoremode
      value: query 

Untuk menggunakan variabel ini, pastikan versi citra logtail-ds adalah 1.3.1 atau lebih baru.

  • Custom Requirement 1: Collect Data From Multiple Applications To The Same Logstore

    Dalam skenario ini, konfigurasikan parameter aliyun_logs_{key}_logstore. Contoh berikut menunjukkan cara mengumpulkan stdout dari dua aplikasi ke stdout-logstore.

    {key} Aplikasi 1 diatur ke app1-stdout, dan {key} Aplikasi 2 diatur ke app2-stdout.

    Konfigurasikan variabel lingkungan berikut untuk Aplikasi 1:

    # Konfigurasikan variabel lingkungan
        - name: aliyun_logs_app1-stdout
          value: stdout
        - name: aliyun_logs_app1-stdout_logstore
          value: stdout-logstore

    Konfigurasikan variabel lingkungan berikut untuk Aplikasi 2:

    # Konfigurasikan variabel lingkungan
        - name: aliyun_logs_app2-stdout
          value: stdout
        - name: aliyun_logs_app2-stdout_logstore
          value: stdout-logstore
  • Custom Requirement 2: Collect Data From Multiple Applications To Different Projects

    Dalam skenario ini, lakukan langkah-langkah berikut:

    1. Buat kelompok mesin di setiap proyek dan atur pengenal kustom kelompok mesin dalam format berikut: k8s-group-{cluster-id}, di mana {cluster-id} adalah ID kluster. Anda dapat menentukan nama kelompok mesin kustom.

    2. Tentukan proyek, logstore, dan kelompok mesin dalam variabel lingkungan untuk setiap aplikasi. Nama kelompok mesin sama dengan yang Anda buat pada langkah sebelumnya.

      Dalam contoh berikut, {key} Aplikasi 1 diatur ke app1-stdout, dan {key} Aplikasi 2 diatur ke app2-stdout. Jika kedua aplikasi dideploy di kluster ACK yang sama, Anda dapat menggunakan kelompok mesin yang sama untuk kedua aplikasi tersebut.

      Konfigurasikan variabel lingkungan berikut untuk Aplikasi 1:

      # Konfigurasikan variabel lingkungan
          - name: aliyun_logs_app1-stdout
            value: stdout
          - name: aliyun_logs_app1-stdout_project
            value: app1-project
          - name: aliyun_logs_app1-stdout_logstore
            value: app1-logstore
          - name: aliyun_logs_app1-stdout_machinegroup
            value: app1-machine-group

      Konfigurasikan variabel lingkungan berikut untuk Aplikasi 2:

      # Konfigurasikan variabel lingkungan
          - name: aliyun_logs_app2-stdout
            value: stdout
          - name: aliyun_logs_app2-stdout_project
            value: app2-project
          - name: aliyun_logs_app2-stdout_logstore
            value: app2-logstore
          - name: aliyun_logs_app2-stdout_machinegroup
            value: app1-machine-group

Langkah 3: Tampilkan log

  1. Login ke ACK console. Di panel navigasi kiri, klik Clusters.

  2. Pada halaman Log Center, klik tab Application Logs. Pilih Logstore yang diinginkan untuk melihat log dari kontainer aplikasi Anda.