全部产品
Search
文档中心

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

更新时间:Jul 02, 2025

Simple Log Service adalah layanan log all-in-one dari Alibaba Cloud yang memungkinkan Anda langsung mengumpulkan, mengonsumsi, mengirimkan, menanyakan, dan menganalisis log melalui konsol. Simple Log Service dihosting di klaster ACK Serverless. Anda dapat mengonfigurasi variabel lingkungan Simple Log Service dalam klaster ACK Serverless untuk mengumpulkan stdout dan file log dari pod aplikasi.

Penting
  • Disarankan untuk menggunakan CustomResourceDefinitions (CRD) Simple Log Service guna mengumpulkan log. Untuk informasi lebih lanjut, lihat Gunakan CRD Simple Log Service untuk mengumpulkan log aplikasi.

  • Jangan gunakan CRD Simple Log Service dan variabel lingkungan secara bersamaan. Ini dapat menyebabkan kegagalan pengumpulan log.

Langkah 1: Buat aplikasi dan konfigurasikan Simple Log Service untuk mengumpulkan log aplikasi

Anda dapat membuat aplikasi menggunakan image atau template YAML yang berisi konfigurasi pengumpulan log berdasarkan Simple Log Service. Untuk informasi lebih lanjut tentang Simple Log Service, lihat Apa itu Simple Log Service?

Image

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

  2. Di halaman Clusters, temukan klaster yang ingin dikelola dan klik namanya. Di panel kiri, pilih Workloads > Deployments.

  3. Di bagian atas halaman Deployments, pilih namespace tempat aplikasi akan dibuat dari daftar drop-down Namespace. Kemudian, klik Create from Image di pojok kanan atas halaman.

    1. Pada langkah Basic Information, atur parameter Name, Replicas, dan Type. Lalu, klik Next.

    2. Pada langkah Container, atur parameter di bagian Log Service.

      Catatan

      Tabel berikut hanya menjelaskan parameter terkait Simple Log Service. Untuk informasi lebih lanjut tentang parameter lainnya, lihat Buat Penyebaran.

      Gambar berikut adalah contohnya.Konfigurasi Pengumpulan

      Parameter

      Deskripsi

      Konfigurasi Pengumpulan

      Klik Collection Configuration. Atur Logstore dan Log Path in Container (Can be set to stdout).

      • Logstore: nama Logstore yang ingin Anda gunakan. Nama tersebut hanya dapat berisi huruf kecil, angka, dan tanda hubung (-).

        Anda dapat menggunakan parameter ini untuk menentukan Logstore yang menyimpan log yang dikumpulkan. Jika Logstore yang ditentukan tidak ada, sistem akan otomatis membuat Logstore di proyek Simple Log Service yang terkait dengan klaster.

      • Jalur Log di Kontainer (Dapat disetel ke stdout): jalur dari mana Anda ingin mengumpulkan log. Nilai /usr/local/tomcat/logs/catalina.*.log menunjukkan bahwa file log aplikasi Tomcat dikumpulkan.

        Catatan

        Jika Anda menyetel nilai menjadi stdout, stdout dan stderr akan dikumpulkan.

      Semua pengaturan ditambahkan sebagai entri konfigurasi ke Logstore yang sesuai. Secara default, log dikumpulkan dalam mode sederhana (per baris). Jika Anda ingin menggunakan metode lain untuk mengumpulkan log, masuk ke Konsol Simple Log Service dan modifikasi konfigurasi pengumpulan log proyek dan Logstore. Secara default, proyek menggunakan awalan k8s-log.

      Tag Kustom

      Klik Custom Tag. Atur Tag Key dan Tag Value.

      Setiap tag adalah pasangan kunci-nilai yang ditambahkan ke data log yang dikumpulkan. Anda dapat menggunakan tag kustom untuk menandai data log. Misalnya, Anda dapat menggunakan tag untuk menunjukkan versi aplikasi.

    3. Setelah mengonfigurasi parameter, klik Next untuk mengonfigurasi pengaturan lanjutan. Untuk informasi lebih lanjut tentang langkah-langkah selanjutnya, lihat Buat Penyebaran.

Template YAML

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

  2. Di halaman Clusters, temukan klaster yang ingin dikelola dan klik namanya. Di panel kiri, pilih Workloads > Deployments.

  3. Di bagian atas halaman Deployments, pilih namespace tempat aplikasi akan dibuat dari daftar drop-down Namespace. Kemudian, klik Create from YAML di pojok kanan atas halaman.

  4. Di halaman Create, pilih template dari daftar drop-down Sample Template dan modifikasi konten template di editor kode Template sesuai kebutuhan. Lalu, klik Create.

    Template YAML mematuhi sintaksis Kubernetes. Anda dapat menggunakan env untuk mendefinisikan konfigurasi pengumpulan log dan tag kustom. Anda juga harus menyetel parameter volumeMounts dan volumes. Contoh template 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:
        ######### Tentukan 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
        ######### Tentukan parameter mounting volume. ###########
        volumeMounts:
        - name: volumn-sls-mydemo
          mountPath: /var/log
      volumes:
      - name: volumn-sls-mydemo
        emptyDir: {}

    Anda dapat menambahkan konfigurasi berikut sesuai kebutuhan:

    Catatan

    Jika memiliki persyaratan lain untuk pengumpulan log, lihat Langkah 2: Konfigurasikan pengaturan lanjutan di bidang env.

    1. Tambahkan konfigurasi pengumpulan log dan tag kustom menggunakan variabel lingkungan. Semua variabel lingkungan terkait pengumpulan log harus menggunakan awalan aliyun_logs_.

      1. Tambahkan konfigurasi pengumpulan log dalam format berikut:

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

        Dalam contoh sebelumnya, dua variabel lingkungan dalam format berikut ditambahkan ke konfigurasi pengumpulan log: aliyun_logs_{key}. {keys} dari variabel lingkungan adalah log-stdout dan log-varlog.

        • Variabel lingkungan aliyun_logs_log-stdout environment variable menunjukkan bahwa Logstore bernama log-stdout dibuat untuk menyimpan stdout yang dikumpulkan dari kontainer. Nama konfigurasi pengumpulan adalah log-stdout. Dengan cara ini, stdout kontainer dikumpulkan ke Logstore bernama log-stdout.

        • Variabel lingkungan aliyun_logs_log-varlog environment variable menunjukkan bahwa Logstore bernama log-varlog dibuat untuk menyimpan file log yang dikumpulkan dari jalur /var/log/*.log. Nama konfigurasi pengumpulan adalah log-varlog. Dengan cara ini, file log di jalur /var/log/*.log dikumpulkan ke Logstore bernama log-varlog.

      2. Tambahkan tag kustom dalam format berikut:

        - name: aliyun_logs_mytag1_tags
          value: tag1=v1

        Setelah tag ditambahkan, tag tersebut secara otomatis ditambahkan ke data log yang dikumpulkan dari kontainer. Nilai mytag1 hanya dapat berisi huruf kecil, angka, dan tanda hubung (-).

    2. Jika menentukan jalur log untuk mengumpulkan file log selain stdout, Anda harus menyetel parameter volumeMounts. Dalam template YAML sebelumnya, bidang mountPath dalam volumeMounts disetel ke /var/log. Ini memungkinkan Logtail mengumpulkan data log dari file /var/log/*.log.

Langkah 2: Konfigurasikan pengaturan lanjutan di bidang env

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

Penting

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

Variabel

Deskripsi

Contoh

Catatan penggunaan

aliyun_logs_{key}

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

  • Jika variabel aliyun_logs_{key}_logstore yang ditentukan tidak ada, logstore bernama {key} secara otomatis dibuat untuk menyimpan log yang dikumpulkan.

  • Untuk mengumpulkan stdout kontainer, setel nilainya menjadi stdout. Anda juga dapat menyetel nilainya menjadi jalur file log di kontainer.

  • - 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 di klaster Kubernetes.

aliyun_logs_{key}_tags

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

- name: aliyun_logs_catalina_tags

  value: app=catalina

N/A.

aliyun_logs_{key}_project

Opsional. Variabel ini menentukan proyek Simple Log Service. Proyek default adalah proyek yang dihasilkan setelah Logtail diinstal.

- name: aliyun_logs_catalina_project

  value: my-k8s-project

Proyek harus diterapkan 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

N/A.

aliyun_logs_{key}_shard

Opsional. Variabel ini menentukan jumlah shard dari 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'

N/A.

aliyun_logs_{key}_ttl

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

  • Jika Anda menyetel nilainya menjadi 3650, log disimpan secara permanen.

  • 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'

N/A.

aliyun_logs_{key}_machinegroup

Opsional. Variabel ini menentukan grup mesin tempat aplikasi diterapkan. Grup mesin default adalah grup mesin tempat Logtail diterapkan. Untuk informasi lebih lanjut tentang cara menggunakan variabel ini, lihat Kumpulkan log kontainer dari klaster ACK.

- name: aliyun_logs_catalina_machinegroup

  value: my-machine-group

N/A.

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 berperforma tinggi. Biaya lalu lintas indeks Logstore Query sekitar setengah dari Logstore standar. Logstore Query tidak mendukung analisis SQL. Logstore Query cocok untuk skenario di mana jumlah data besar, periode retensi log panjang, atau analisis log tidak diperlukan. Jika log disimpan selama berminggu-minggu atau berbulan-bulan, periode retensi log dianggap panjang.

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

Untuk menggunakan variabel ini, pastikan versi gambar komponen 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} dari Aplikasi 1 disetel ke app1-stdout, dan {key} dari Aplikasi 2 disetel 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 grup mesin di setiap proyek dan atur pengenal kustom grup mesin dalam format berikut: k8s-group-{cluster-id}, di mana {cluster-id} adalah ID klaster. Anda dapat menentukan nama grup mesin kustom.

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

      Dalam contoh berikut, {key} dari Aplikasi 1 disetel ke app1-stdout, dan {key} dari Aplikasi 2 disetel ke app2-stdout. Jika kedua aplikasi diterapkan di klaster Kubernetes yang sama, Anda dapat menggunakan grup mesin yang sama untuk 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: Lihat log

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

  2. Di halaman Clusters, temukan klaster yang diinginkan dan klik namanya. Di panel kiri, pilih Operations > Log Center.

  3. Di halaman Log Center, klik tab Application Logs dan pilih Logstore untuk melihat log kontainer.