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.
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
Login ke ACK console. Di panel navigasi kiri, klik Clusters.
Di bagian atas halaman Stateless, pilih namespace target dari daftar drop-down Namespace, lalu klik Create From Image.
Pada tab Application Basic Information, atur Application Name, Replicas, dan Type, lalu klik Next.
Pada tab Container Configuration, konfigurasikan parameter pada bagian Log Service.
CatatanTopik 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.
CatatanJika 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.
Setelah menyelesaikan konfigurasi, klik Next. Untuk informasi selengkapnya tentang langkah berikutnya, lihat Buat workload stateless (Deployment).
Buat dari file YAML
Login ke ACK console. Di panel navigasi kiri, klik Clusters.
Di bagian atas halaman Stateless, pilih namespace target dari daftar drop-down Namespace, lalu klik Create From YAML.
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
envuntuk menambahkan konfigurasi pengumpulan dan custom tag. Kemudian, buatvolumeMountsdanvolumesyang 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:
CatatanUntuk opsi pengumpulan log lanjutan, lihat Langkah 2: Konfigurasikan parameter lanjutan untuk variabel lingkungan.
Buat konfigurasi pengumpulan dan custom tag menggunakan variabel lingkungan. Semua variabel lingkungan yang terkait konfigurasi harus menggunakan awalan
aliyun_logs_.Buat aturan konfigurasi pengumpulan:
- name: aliyun_logs_log-stdout value: stdout - name: aliyun_logs_log-varlog value: /var/log/*.logContoh ini membuat dua konfigurasi pengumpulan dalam format
aliyun_logs_{key}. Nilai{key}yang sesuai adalahlog-stdoutdanlog-varlog.aliyun_logs_log-stdout: Variabelenvini menentukan konfigurasi untuk membuat Logstore bernamalog-stdoutdan mengatur jalur pengumpulan log kestdout. Konfigurasi pengumpulan Simple Log Service yang sesuai, juga bernamalog-stdout, mengumpulkan output standar dari kontainer dan mengirimkannya ke Logstorelog-stdout.aliyun_logs_log-varlog: Variabelenvini menentukan konfigurasi yang membuat Logstore bernamalog-varloguntuk mengumpulkan log dari jalur/var/log/*.log. Nama konfigurasi pengumpulan Simple Log Service yang sesuai jugalog-varlog. Konfigurasi ini mengumpulkan log dari file di jalur/var/log/*.logkontainer dan menyimpannya di Logstorelog-varlog.
Buat aturan custom tag:
- name: aliyun_logs_mytag1_tags value: tag1=v1Setelah 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 (-).
Jika konfigurasi pengumpulan Anda menentukan jalur selain
stdout, Anda harus membuatvolumeMountsyang sesuai. Dalam contoh ini, karena konfigurasi mengumpulkan log dari/var/log/*.log,volumeMountsuntuk /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.
Anda tidak dapat menggunakan variabel lingkungan untuk mengonfigurasi pengumpulan log dalam skenario komputasi tepi.
Variabel | Deskripsi | Contoh | Catatan penggunaan |
aliyun_logs_{key} |
|
|
|
aliyun_logs_{key}_tags | Opsional. Variabel ini digunakan untuk menambahkan tag ke data log. Nilai harus dalam format {tag-key}={tag-value}. | | Tidak berlaku. |
aliyun_logs_{key}_project | Opsional. Variabel ini menentukan proyek Simple Log Service. Proyek default adalah proyek yang Anda tentukan saat membuat kluster. | | Proyek harus dideploy di wilayah yang sama dengan Logtail. |
aliyun_logs_{key}_logstore | Opsional. Variabel ini menentukan logstore Simple Log Service. Nilai default: {key}. | | 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. | | Tidak berlaku. |
aliyun_logs_{key}_ttl | Opsional. Variabel ini menentukan periode retensi log. Nilai valid: 1 hingga 3650.
Catatan Jika logstore yang Anda tentukan sudah ada, variabel ini tidak berlaku. | | 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. | | 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.
|
| 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 keapp1-stdout, dan{key}Aplikasi 2 diatur keapp2-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-logstoreKonfigurasikan variabel lingkungan berikut untuk Aplikasi 2:
# Konfigurasikan variabel lingkungan - name: aliyun_logs_app2-stdout value: stdout - name: aliyun_logs_app2-stdout_logstore value: stdout-logstoreCustom Requirement 2: Collect Data From Multiple Applications To Different Projects
Dalam skenario ini, lakukan langkah-langkah berikut:
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.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 keapp1-stdout, dan{key}Aplikasi 2 diatur keapp2-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-groupKonfigurasikan 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
Login ke ACK console. Di panel navigasi kiri, klik Clusters.
Pada halaman Log Center, klik tab Application Logs. Pilih Logstore yang diinginkan untuk melihat log dari kontainer aplikasi Anda.