Simple Log Service (SLS) adalah layanan terpadu untuk data log yang memungkinkan Anda mengumpulkan, mengonsumsi, mengirimkan, dan menganalisis log tanpa pengembangan. Kluster ACK Serverless menyediakan fitur Simple Log Service (SLS) terkelola. Gunakan variabel lingkungan pod dalam kluster ACK Serverless untuk mengumpulkan stdout kontainer dan file log ke SLS.
-
Gunakan metode SLS CRD terlebih dahulu untuk pengumpulan log. Lihat Kumpulkan log aplikasi dengan menggunakan CRD.
-
Jangan gunakan metode CRD dan variabel lingkungan secara bersamaan. Hal ini dapat menyebabkan kegagalan pengumpulan log.
Langkah 1: Buat aplikasi dan konfigurasikan pengumpulan log
Buat aplikasi dari image atau templat YAML dan konfigurasikan pengumpulan log. Lihat Apa itu Simple Log Service?.
Buat dari image
Login ke ACK console. Di panel navigasi kiri, klik Clusters.
Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik .
-
Di halaman Deployments, pilih namespace dari Namespace, lalu klik Create from Image.
-
Di tab Basic Information, atur Application Name, jumlah Replicas:, dan Type, lalu klik Next.
-
Di tab Container, konfigurasikan bagian Log Service.
CatatanHanya parameter pengumpulan log yang dibahas di sini. Lihat Buat deployment tanpa status untuk parameter lainnya.
Sebelum mengonfigurasi, pastikan plug-in logging telah diinstal pada kluster.
Parameter
Deskripsi
Konfigurasi pengumpulan
Jika konfigurasi pengumpulan berubah, hapus secara manual konfigurasi sebelumnya untuk mencegah duplikasi pengumpulan log.
Klik Collection Configuration dan konfigurasikan Logstore dan Log Path in Container (Can be set to stdout).
-
Nama Logstore. Hanya boleh berisi huruf kecil, angka, dan tanda hubung (-).
Jika Logstore yang ditentukan tidak ada, ACK Serverless akan membuatnya di proyek SLS yang terkait dengan kluster.
-
Log Path in Container: Jalur untuk dikumpulkan. Contoh: /usr/local/tomcat/logs/catalina.*.log untuk log teks Tomcat.
CatatanMengatur jalur ke stdout akan mengumpulkan stdout dan stderr dari kontainer.
Setiap konfigurasi pengumpulan membuat konfigurasi Logtail untuk Logstore yang sesuai. Secara default, log dikumpulkan dalam mode simple (baris per baris). Untuk metode pengumpulan lanjutan, login ke Simple Log Service console dan modifikasi konfigurasi di proyek (secara default diawali dengan k8s-log) dan Logstore yang sesuai.
Custom tag
Klik Custom Tag dan konfigurasikan Tag Key dan Tag Value.
Pasangan kunci-nilai yang ditambahkan ke entri log yang dikumpulkan. Gunakan custom tag untuk memberi label data log kontainer, seperti nomor versi.
-
-
Klik Next. Lihat Buat deployment tanpa status untuk langkah-langkah selanjutnya.
-
Buat dari file YAML
Login ke ACK console. Di panel navigasi kiri, klik Clusters.
Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik .
-
Di halaman Deployments, pilih namespace dari Namespace, lalu klik Create from YAML.
-
Di halaman Create, pilih templat contoh, edit Template di editor YAML, lalu klik Create.
Templat YAML menggunakan sintaks Kubernetes standar. Untuk mengonfigurasi pengumpulan log, gunakan
envuntuk menambahkan konfigurasi pengumpulan dan custom tag, serta buatvolumeMountsdanvolumesyang sesuai. Contoh 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 ini ke YAML pod sesuai kebutuhan:
CatatanLihat Langkah 2: Parameter variabel lingkungan lanjutan untuk kebutuhan lanjutan.
-
Buat konfigurasi pengumpulan dan custom tag dengan variabel lingkungan. Semua menggunakan awalan
aliyun_logs_.-
Untuk membuat konfigurasi pengumpulan:
- name: aliyun_logs_log-stdout value: stdout - name: aliyun_logs_log-varlog value: /var/log/*.logContoh ini membuat dua konfigurasi pengumpulan menggunakan
aliyun_logs_{key}, di mana{key}adalahlog-stdoutdanlog-varlog.-
aliyun_logs_log-stdout: Variabelenvini mendefinisikan konfigurasi pengumpulanlog-stdout, membuat Logstorelog-stdout, dan mengumpulkanstdoutkontainer ke Logstorelog-stdout. -
aliyun_logs_log-varlog: Variabelenvini membuat Logstore (log-varlog) dan konfigurasi pengumpulan (log-varlog) untuk jalur/var/log/*.log. File dari/var/log/*.logdikirim ke Logstorelog-varlog.
-
-
Untuk membuat custom tag:
- name: aliyun_logs_mytag1_tags value: tag1=v1Tag ini ditambahkan ke log yang dikumpulkan dari kontainer ini. Kunci tag (
mytag1dalam kasus ini) hanya boleh berisi huruf kecil, angka, dan tanda hubung (-).
-
-
Jika jalur pengumpulan bukan
stdout, buatvolumeMountsyang sesuai. Dalam contoh ini, pengumpulan/var/log/*.logmemerlukanvolumeMountsuntuk/var/log.
-
Langkah 2: Parameter variabel lingkungan lanjutan
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. Nilainya harus dalam format {tag-key}={tag-value}. | | N/A. |
aliyun_logs_{key}_project | Opsional. Variabel ini menentukan proyek Simple Log Service. Proyek default adalah proyek yang Anda tentukan saat membuat kluster. | | Proyek harus diterapkan di wilayah yang sama dengan Logtail. |
aliyun_logs_{key}_logstore | Opsional. Variabel ini menentukan logstore Simple Log Service. Nilai default: {key}. | | N/A. |
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. | | N/A. |
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. | | N/A. |
aliyun_logs_{key}_machinegroup | Opsional. Variabel ini menentukan kelompok node tempat aplikasi diterapkan. Kelompok mesin default adalah kelompok tempat Logtail diterapkan. Untuk informasi lebih lanjut tentang cara menggunakan variabel ini, lihat Kumpulkan log kontainer dari kluster ACK. | | 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.
|
| Untuk menggunakan variabel ini, pastikan versi image 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 diterapkan di kluster ACK yang sama, Anda dapat menggunakan kelompok 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-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: Lihat log
Login ke ACK console. Di panel navigasi kiri, klik Clusters.
Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik .
-
Di halaman Log Center, klik tab Application Logs, lalu pilih Logstore untuk melihat log kontainer.