All Products
Search
Document Center

Container Compute Service:Konfigurasikan pengumpulan log aplikasi menggunakan variabel lingkungan pod

Last Updated:Jun 22, 2026

Container Compute Service (ACS) terintegrasi dengan Alibaba Cloud Simple Log Service (SLS). Anda dapat mengaktifkan layanan log saat membuat kluster ACS untuk mengumpulkan log kontainer dari kluster secara cepat, termasuk stdout kontainer dan file teks di dalam kontainer. Topik ini menjelaskan cara mengumpulkan log aplikasi di kluster ACS dengan menggunakan variabel lingkungan pod.

Langkah 1: Aktifkan add-on Log Service

Anda dapat memilih Enable Log Service saat membuat kluster ACS agar add-on Log Service diaktifkan secara otomatis. Jika opsi ini tidak dipilih saat pembuatan kluster, ikuti langkah-langkah berikut untuk mengaktifkan add-on pada kluster yang sudah ada.

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

  2. Pada halaman Clusters, klik nama kluster target. Di panel navigasi kiri, klik Add-ons.

  3. Pada bagian Logs and Monitoring, temukan alibaba-log-controller. Klik Install. Pada kotak dialog Install, klik OK.

Penting

Jika Anda telah menyesuaikan konfigurasi dan variabel lingkungan untuk alibaba-log-controller, peningkatan akan menimpa parameter tersebut, sehingga Anda harus mengonfigurasinya ulang.

Langkah 2: Konfigurasikan pengumpulan log saat pembuatan aplikasi

Saat membuat aplikasi, Anda dapat mengonfigurasinya untuk mengumpulkan log kontainer menggunakan Konsol atau file YAML.

Wizard Konsol

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

  2. Pada halaman Clusters, klik nama kluster target. Di panel navigasi kiri, pilih Workloads > Deployments.

  3. Pada halaman Deployments, pilih namespace dari daftar drop-down Namespace. Lalu, di pojok kanan atas, klik Create from Image.

    Catatan

    Contoh ini menggunakan Deployment, tetapi prosesnya sama untuk jenis workload lain, seperti StatefulSets.

  4. Pada tab Basic Information, atur Name:, Replicas:, dan Type. Klik Next untuk menuju halaman Container.

    Catatan

    Bagian ini hanya menjelaskan konfigurasi yang terkait dengan Simple Log Service. Untuk informasi tentang item konfigurasi aplikasi lainnya, lihat Buat workload tanpa status (Deployment).

  5. Pada bagian Log, konfigurasikan informasi terkait log.

    1. Atur Collection Configuration.

      Klik ikon + untuk membuat konfigurasi pengumpulan baru. Setiap konfigurasi terdiri dari Logstore dan Log Path in Container (Can be set to stdout).

      • Logstore: Tentukan nama Logstore untuk menyimpan log yang dikumpulkan. Jika Logstore belum ada, ACS akan membuatnya secara otomatis di Proyek Simple Log Service yang terkait dengan kluster.

        Catatan

        Secara default, log di Logstore yang baru dibuat disimpan selama 90 hari.

      • Log Path in Container: Tentukan path tempat log dikumpulkan. Misalnya, gunakan /usr/local/tomcat/logs/catalina.*.log untuk mengumpulkan log teks dari Tomcat.

        Catatan

        Jika parameter ini diatur ke stdout, stdout dan stderr kontainer akan dikumpulkan.

        Setiap entri membuat konfigurasi pengumpulan untuk Logstore yang ditentukan. Secara default, log dikumpulkan dalam mode simple (baris per baris).

        Contoh: Atur nama Logstore menjadi access dan path log di kontainer menjadi /usr/local/tomcat/logs/catalina.*.log. Atur nama Logstore lain menjadi catalina dan path menjadi stdout. Catatan: Pastikan add-on log agent telah diterapkan ke kluster.

    2. Atur Custom Tag.

      Klik ikon + untuk membuat tag kustom baru. Setiap tag kustom adalah pasangan kunci-nilai yang ditambahkan ke log yang dikumpulkan. Gunakan tag ini untuk menambahkan metadata, seperti nomor versi, ke log kontainer Anda.

      Pada bidang Tag Name, masukkan release. Pada bidang Tag Value, masukkan 1.0.0.

  6. Setelah menyelesaikan konfigurasi, klik Next di pojok kanan atas.

    Untuk informasi tentang operasi selanjutnya, lihat Buat workload tanpa status (Deployment).

File YAML

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

  2. Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Workloads > Deployments.

  3. Pada halaman Deployments, pilih namespace dari daftar drop-down Namespace. Lalu, di pojok kanan atas, klik Create from YAML.

    Catatan

    Contoh ini menggunakan Deployment, tetapi prosesnya sama untuk jenis workload lain, seperti StatefulSets.

  4. Konfigurasikan file YAML.

    Sintaks file YAML sama dengan sintaks Kubernetes. Untuk menentukan konfigurasi pengumpulan untuk kontainer, Anda harus menggunakan env untuk menambahkan Collection Configuration dan Custom Tag. Kode berikut memberikan contoh pod sederhana:

    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'
        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
        command: ["sh", "-c"]
        args: ["echo 'Starting my demo app'; sleep 3600"]

    Konfigurasikan pengaturan berikut sesuai kebutuhan Anda.

    Catatan

    Untuk informasi lebih lanjut tentang persyaratan pengumpulan log tingkat lanjut, lihat Langkah 3: Parameter pengumpulan log lanjutan.

    1. Gunakan variabel lingkungan untuk membuat Collection Configuration dan Custom Tag. Semua variabel lingkungan terkait konfigurasi memiliki awalan aliyun_logs_.

      • Buat konfigurasi pengumpulan.

        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'
            env:
            - name: aliyun_logs_log-stdout
              value: stdout
            - name: aliyun_logs_log-varlog
              value: /var/log/*.log    
            command: ["sh", "-c"]
            args: ["echo 'Starting my demo app'; sleep 3600"]                    

        Dalam contoh ini, dua konfigurasi pengumpulan dibuat menggunakan format aliyun_logs_{key}. Nilai {key} yang sesuai adalah log-stdout dan log-varlog.

        • aliyun_logs_log-stdout: Variabel ini membuat konfigurasi pengumpulan untuk stdout kontainer. Log yang dikumpulkan dikirim ke Logstore bernama log-stdout. Konfigurasi pengumpulan Simple Log Service yang sesuai juga bernama log-stdout dan menggunakan log-stdout Logstore.

        • aliyun_logs_log-varlog: Variabel lingkungan ini menentukan konfigurasi yang membuat Logstore bernama log-varlog dan mengatur path pengumpulan log ke /var/log/*.log. Nama konfigurasi pengumpulan Simple Log Service yang sesuai juga log-varlog. Tujuan konfigurasi ini adalah mengumpulkan konten file /var/log/*.log dari kontainer dan mengirimkannya ke log-varlog Logstore.

      • Buat custom tag.

        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'
            env:
            - name: aliyun_logs_mytag1_tags
              value: tag1=v1           
            command: ["sh", "-c"]
            args: ["echo 'Starting my demo app'; sleep 3600"]            

        Simple Log Service secara otomatis menambahkan tag ini sebagai bidang ke semua log yang dikumpulkan dari kontainer. Dalam contoh ini, bagian mytag1 dari nama variabel dapat berupa nama apa pun yang tidak mengandung garis bawah (_).

    2. Jika Anda menentukan path pengumpulan selain stdout, Anda juga harus mendefinisikan volumeMounts yang sesuai dalam spesifikasi pod.

      Dalam contoh ini, konfigurasi pengumpulan mencakup pengumpulan /var/log/*.log. Oleh karena itu, volumeMounts untuk /var/log ditambahkan sesuai.

  5. Setelah menulis file YAML, klik Create untuk menerapkan konfigurasi ke kluster ACS.

Langkah 3: Parameter pengumpulan log lanjutan

Anda dapat menggunakan berbagai variabel lingkungan untuk mengonfigurasi parameter lanjutan sesuai kebutuhan pengumpulan log tertentu.

Parameter

Deskripsi

Contoh

Catatan

aliyun_logs_{key}

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

  • Jika Anda tidak mengatur variabel lingkungan aliyun_logs_{key}_logstore, Logstore bernama {key} akan dibuat secara default.

  • Nilai stdout mengumpulkan output standar kontainer. Nilai lain menentukan path log di dalam kontainer.

  • - name: aliyun_logs_catalina
      value: stdout
  • - name: aliyun_logs_access-log
      value: /var/log/nginx/access.log
  • Mode pengumpulan default adalah mode simple. Untuk mengurai konten log, kami sarankan menggunakan Konsol SLS.

  • {key} adalah nama konfigurasi pengumpulan yang dibuat oleh add-on Log Service dan harus unik dalam kluster Kubernetes.

aliyun_logs_{key}_tags

Opsional. Nilainya harus dalam format {tag-key}={tag-value} dan membantu mengidentifikasi log.

- name: aliyun_logs_catalina_tags
  value: app=catalina

Tidak berlaku.

aliyun_logs_{key}_project

Opsional. Proyek SLS. Jika variabel lingkungan ini tidak diatur, nilainya default ke Proyek yang dipilih saat instalasi add-on.

- name: aliyun_logs_catalina_project
  value: my-k8s-project

Proyek harus berada di wilayah yang sama tempat add-on Log Service dijalankan.

aliyun_logs_{key}_logstore

Opsional. Logstore SLS. Jika variabel lingkungan ini tidak diatur, nama Logstore default mengikuti nilai {key}.

- name: aliyun_logs_catalina_logstore
  value: my-logstore

Tidak berlaku.

aliyun_logs_{key}_shard

Opsional. Jumlah shard yang dibuat untuk Logstore. Nilai valid: 1 hingga 10. Jika variabel lingkungan ini tidak diatur, nilai default adalah 2.

Catatan

Parameter ini hanya berlaku saat Logstore dibuat; tidak memengaruhi Logstore yang sudah ada.

- name: aliyun_logs_catalina_shard
  value: 4

Tidak berlaku.

aliyun_logs_{key}_ttl

Opsional. Periode retensi log dalam hari. Nilai valid: 1 hingga 3650.

  • Nilai 3650 menunjukkan bahwa log disimpan secara permanen.

  • Jika variabel lingkungan ini tidak diatur, periode retensi default adalah 90 hari.

Catatan

Parameter ini hanya berlaku saat Logstore dibuat; tidak memengaruhi Logstore yang sudah ada.

- name: aliyun_logs_catalina_ttl
  value: 3650

Tidak berlaku.

aliyun_logs_{key}_machinegroup

Opsional. Kelompok mesin untuk aplikasi. Jika variabel lingkungan ini tidak diatur, nilainya default ke kelompok mesin yang dipilih saat instalasi add-on Log Service. Untuk informasi lebih lanjut tentang penggunaan parameter ini, lihat Kasus penggunaan khusus 2: Rutekan log dari aplikasi berbeda ke Proyek berbeda.

- name: aliyun_logs_catalina_machinegroup
  value: my-machine-group

Tidak berlaku.

aliyun_logs_{key}_logstoremode

Opsional. Jenis Logstore SLS. Jika parameter ini tidak ditentukan, nilai default adalah standard. Nilai valid:

Catatan

Parameter ini hanya berlaku saat Logstore dibuat; tidak memengaruhi Logstore yang sudah ada.

  • standard: Mendukung fitur analisis data komprehensif SLS. Jenis ini cocok untuk skenario seperti pemantauan waktu nyata, analisis interaktif, dan membangun sistem observabilitas lengkap.

  • query: Mendukung kueri berkinerja-tinggi. Biaya trafik indeks sekitar separuh dari jenis standard, tetapi tidak mendukung analisis SQL. Jenis ini cocok untuk skenario dengan volume data besar, periode retensi panjang (minggu atau bulan), dan tidak memerlukan analisis berbasis SQL.

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

Tidak berlaku.

  • Kasus penggunaan 1: Kumpulkan ke satu Logstore

    Untuk mengumpulkan data dari beberapa aplikasi ke Logstore yang sama, Anda dapat mengatur parameter aliyun_logs_{key}_logstore. Misalnya, konfigurasi berikut mengumpulkan stdout dua aplikasi dan mengirimkannya ke Logstore stdout-logstore.

    Dalam contoh ini, {key} untuk Aplikasi 1 adalah app1-stdout, dan {key} untuk Aplikasi 2 adalah app2-stdout.

    Variabel lingkungan untuk Aplikasi 1:

    apiVersion: v1
    kind: Pod
    metadata:
      name: my-demo-1
    spec:
      containers:
      - name: my-demo-app
        image: 'registry.cn-hangzhou.aliyuncs.com/log-service/docker-log-test:latest'
        env:    # Konfigurasikan variabel lingkungan
        - name: aliyun_logs_app1-stdout
          value: stdout
        - name: aliyun_logs_app1-stdout_logstore
          value: stdout-logstore
        command: ["sh", "-c"]
        args: ["echo 'Starting my demo app'; sleep 3600"]

    Variabel lingkungan untuk Aplikasi 2:

    apiVersion: v1
    kind: Pod
    metadata:
      name: my-demo-2
    spec:
      containers:
      - name: my-demo-app
        image: 'registry.cn-hangzhou.aliyuncs.com/log-service/docker-log-test:latest'
        env:	# Konfigurasikan variabel lingkungan
        - name: aliyun_logs_app2-stdout
          value: stdout
        - name: aliyun_logs_app2-stdout_logstore
          value: stdout-logstore
        command: ["sh", "-c"]
        args: ["echo 'Starting my demo app'; sleep 3600"]
  • Kasus penggunaan 2: Rutekan log ke Proyek berbeda

    Untuk mengumpulkan log dari aplikasi berbeda dan merutekannya ke Proyek berbeda, ikuti langkah-langkah berikut:

    1. Di setiap Proyek, buat kelompok mesin dengan pengenal kustom bernama k8s-group-{cluster-id}, di mana {cluster-id} adalah ID kluster. Nama kelompok mesin dapat disesuaikan.

    2. Konfigurasikan informasi Proyek, Logstore, dan kelompok mesin dalam variabel lingkungan untuk setiap aplikasi. Nama kelompok mesin harus sesuai dengan yang dibuat pada langkah sebelumnya.

      Dalam contoh berikut, {key} untuk Aplikasi 1 adalah app1-stdout, dan {key} untuk Aplikasi 2 adalah app2-stdout. Jika kedua aplikasi berada di kluster Kubernetes yang sama, mereka dapat menggunakan kelompok mesin yang sama.

      Variabel lingkungan untuk Aplikasi 1:

      apiVersion: v1
      kind: Pod
      metadata:
        name: my-demo-1
      spec:
        containers:
        - name: my-demo-app
          image: 'registry.cn-hangzhou.aliyuncs.com/log-service/docker-log-test:latest'
          env:	# 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
          command: ["sh", "-c"]
          args: ["echo 'Starting my demo app'; sleep 3600"]

      Variabel lingkungan untuk Aplikasi 2:

      apiVersion: v1
      kind: Pod
      metadata:
        name: my-demo-2
      spec:
        containers:
        - name: my-demo-app
          image: 'registry.cn-hangzhou.aliyuncs.com/log-service/docker-log-test:latest'
          env:	# Konfigurasikan variabel lingkungan untuk Aplikasi 2
          - 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
          command: ["sh", "-c"]
          args: ["echo 'Starting my demo app'; sleep 3600"]

Langkah 4: Lihat log di Konsol SLS

Contoh ini menunjukkan cara melihat log aplikasi yang dibuat menggunakan wizard Konsol. Setelah dikonfigurasi, Simple Log Service secara otomatis mengumpulkan log aplikasi tersebut, yang dapat Anda lihat di Konsol SLS.

  1. Login ke Konsol SLS.

  2. Di bagian Projects, pilih Proyek yang sesuai dengan kluster ACS. Secara default, Proyek diberi nama k8s-log-{ACS-Cluster-ID}. Lalu, buka tab Logstores.

  3. Dalam daftar Logstore, temukan Logstore yang Anda tentukan dalam konfigurasi pengumpulan. Arahkan kursor ke nama Logstore. Di sisi kanan nama Logstore, klik ikon button, lalu klik Search & Analysis.

    Pada halaman kueri log, Anda dapat melihat log stdout aplikasi dan log teks dari kontainer. Tag kustom muncul sebagai bidang dalam log.

Informasi lebih lanjut