Anda dapat menggunakan variabel lingkungan kontainer untuk menentukan konfigurasi log kustom di Elastic Container Instance. Topik ini menjelaskan cara menggunakan variabel lingkungan untuk mengonfigurasi pengumpulan log dan secara otomatis mengumpulkan log kontainer di Simple Log Service.
Untuk kluster serverless Container Service for Kubernetes (ACK), disarankan untuk memprioritaskan penggunaan definisi sumber daya kustom (CRD) Simple Log Service dalam mengumpulkan log. Untuk informasi lebih lanjut, lihat Mengumpulkan Log Menggunakan CRD Simple Log Service.
Hindari penggunaan CRD Simple Log Service dan variabel lingkungan secara bersamaan karena dapat menyebabkan kegagalan pengumpulan log.
Informasi latar belakang
Simple Log Service adalah layanan pencatatan data ujung ke ujung. Anda dapat menggunakan Simple Log Service untuk mengumpulkan, mengonsumsi, mengirimkan, mencari, dan menganalisis data log tanpa perlu melakukan pengembangan lebih lanjut. Untuk informasi lebih lanjut, lihat Apa itu Simple Log Service?.
Prasyarat
Pastikan Simple Log Service telah diaktifkan untuk kluster ACK Serverless. Masuk ke Konsol Simple Log Service. Jika layanan belum diaktifkan, ikuti petunjuk di layar untuk mengaktifkannya.
Catatan
Variabel lingkungan hanya dapat digunakan untuk mengonfigurasi pengumpulan log saat membuat instance kontainer elastis. Variabel lingkungan terkait log yang dimasukkan saat memperbarui instance tidak akan berpengaruh.
Jika proyek atau konfigurasi Logtail kustom tidak lagi digunakan, hapus proyek atau konfigurasi tersebut tepat waktu untuk menghindari biaya yang tidak perlu.
Deskripsi Konfigurasi
Prefiks nama variabel lingkungan log berada dalam format aliyun_logs_{key}. Tabel berikut menjelaskan variabel lingkungan yang dapat dikonfigurasi.
{key} menentukan nama konfigurasi Logtail di Simple Log Service. Nilai dari {key} hanya dapat berisi huruf kecil, angka, dan tanda hubung (-). Anda dapat menentukan nilai kustom untuk {key}. Pastikan nilainya unik di kluster Kubernetes.
Objek yang dikonfigurasi | Diperlukan | Nama variabel lingkungan | Deskripsi |
Konfigurasi Logtail | Ya | aliyun_logs_{key} | Variabel ini membuat konfigurasi Logtail. Nilai valid:
|
Proyek | Tidak | aliyun_logs_{key}_project | Variabel ini menentukan proyek di Simple Log Service. Jika Anda tidak menentukan variabel ini, proyek default digunakan, yang diberi nama dalam format k8s-log-<cluster-id>. |
Logstore | Tidak | aliyun_logs_{key}_logstore | Variabel ini menentukan Logstore. Jika Anda tidak menentukan variabel ini, Logstore yang bernama |
Grup mesin | Tidak | aliyun_logs_{key}_machinegroup | Variabel ini menentukan grup mesin. Jika Anda tidak menentukan variabel ini, grup mesin default digunakan. |
Shard | Tidak | aliyun_logs_{key}_shard | Variabel ini menentukan jumlah shard dalam Logstore.
|
Periode retensi log | Tidak | aliyun_logs_{key}_ttl | Variabel ini menentukan periode retensi log. Unit: hari.
|
Tag | Tidak | aliyun_logs_{key}_tags | Variabel ini menentukan tag yang terikat dengan log. Nilai variabel harus dalam format berikut: |
Contoh konfigurasi
Sambungkan ke kluster Kubernetes Anda.
Buat aplikasi.
Anda dapat menentukan konfigurasi terkait log di variabel lingkungan kontainer. File YAML contoh berikut menjelaskan cara membuat Deployment. Dalam contoh ini, perintah relevan dijalankan untuk terus menampilkan stdout dan file log setelah kontainer dimulai.
apiVersion: apps/v1 kind: Deployment metadata: labels: app: sls name: eci-sls-demo spec: replicas: 1 selector: matchLabels: app: sls template: metadata: labels: app: sls alibabacloud.com/eci: "true" spec: containers: - image: registry-vpc.cn-beijing.aliyuncs.com/eci_open/alpine:3.5 imagePullPolicy: Always args: - -c - mkdir -p /log;while true; do echo hello world; date; echo hello sls >> /log/alpine.log; sleep 1;done command: - /bin/sh name: alpine env: # Konfigurasikan proyek atau gunakan proyek default. - name: aliyun_logs_test-stdout_project value: k8s-log-c21492 - name: aliyun_logs_test-file_project value: k8s-log-c21492 # Konfigurasikan grup mesin atau gunakan grup mesin default. - name: aliyun_logs_test-stdout_machinegroup value: k8s-group-app-alpine - name: aliyun_logs_test-file_machinegroup value: k8s-group-app-alpine # Kumpulkan log stdout ke Logstore bernama test-stdout. Jalur pengumpulan adalah stdout. - name: aliyun_logs_test-stdout value: stdout # Kumpulkan log di direktori /log/*.log ke Logstore bernama test-file. Objek yang dikumpulkan adalah semua file .log di direktori /log. - name: aliyun_logs_test-file value: /log/*.log # Tentukan periode retensi log. Pengaturan ini hanya berlaku untuk Logstore bernama test-stdout. - name: aliyun_logs_test-stdout_ttl value: "7" # Tentukan jumlah shard log. Pengaturan ini hanya berlaku untuk Logstore bernama test-stdout. - name: aliyun_logs_test-stdout_shard value: "2" # Mount volume emptyDir. Saat nilai variabel lingkungan aliyun_logs_{key} adalah direktori di dalam kontainer, mount volume emptyDir ke direktori tersebut. volumeMounts: - name: volume-sls mountPath: /log volumes: - name: volume-sls emptyDir: {}Buat file YAML bernama test-sls-env.yaml, salin templat sebelumnya ke file tersebut, lalu jalankan perintah berikut untuk membuat aplikasi:
kubectl create -f test-sls-env.yamlPeriksa status aplikasi.
kubectl get podOutput yang diharapkan:
NAME READY STATUS RESTARTS AGE eci-sls-demo-b97bbd7d6-z9twz 1/1 Running 0 2m45sLihat log.
Masuk ke Konsol Simple Log Service.
Klik nama proyek.
Temukan Logstore tempat log kontainer Anda disimpan. Klik nama Logstore untuk melihat log.
Pengumpulan Log Stdout

Pengumpulan Log Teks
