Container Compute Service (ACS) terintegrasi dengan Simple Log Service (SLS). Anda dapat mengaktifkan SLS saat membuat kluster untuk mengumpulkan log kontainer dari kluster ACS secara cepat, termasuk stdout kontainer dan file teks. Topik ini menjelaskan cara mengumpulkan log aplikasi di kluster ACS menggunakan resource kustom AliyunLogConfig.
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 tersebut tidak dipilih saat pembuatan kluster, ikuti langkah-langkah berikut untuk mengaktifkan add-on pada kluster yang sudah ada.
-
Masuk ke ACS console. Di panel navigasi kiri, klik Clusters.
-
Pada halaman Clusters, klik nama kluster target. Di panel navigasi kiri, klik Add-ons.
-
Pada bagian Logs and Monitoring, temukan alibaba-log-controller. Klik Install. Pada kotak dialog Install, klik OK.
Jika Anda telah menyesuaikan konfigurasi dan variabel lingkungan untuk alibaba-log-controller, peningkatan akan menimpa parameter tersebut, sehingga Anda harus mengonfigurasinya ulang.
Langkah 2: Buat resource kustom AliyunLogConfig
Anda dapat menggunakan resource kustom AliyunLogConfig untuk mengumpulkan log stdout dan file dari aplikasi tertentu. Untuk membuat resource kustom, pilih Custom Resources > CRDs > Create from YAML di panel navigasi sebelah kiri. Tabel berikut menjelaskan parameter utama untuk resource kustom AliyunLogConfig.
|
Parameter |
Deskripsi |
Contoh |
|
|
Nama resource konfigurasi pengumpulan log. Nama ini harus unik dalam kluster ACS. |
test-stdout |
|
|
Opsional. Nama Proyek. Kami menyarankan Anda menggunakan format |
k8s-log-c326bc86**** |
|
|
Wajib diisi. Nama penyimpanan log. Jika penyimpanan log belum ada, Simple Log Service akan membuatnya secara otomatis. |
test-stdout |
|
|
Jenis sumber data. |
plugin |
|
|
Nama konfigurasi Logtail. Harus sama dengan nama resource yang ditentukan di |
test-stdout |
|
|
Konfigurasi detail Logtail. Ini mencakup pengaturan untuk mengumpulkan log stdout dan log file. |
Konfigurasi ini mengumpulkan output standar ( |
|
|
Fitur konfigurasi Logtail lanjutan. Pengaturan
|
Logtail hanya mengumpulkan log kontainer jika semua kondisi berikut terpenuhi:
|
Untuk informasi lebih lanjut tentang parameter konfigurasi, lihat Konfigurasi Logtail (legacy).
Contoh 1: Kumpulkan log stdout tertentu
Untuk mengumpulkan log stdout (termasuk stderr) dan memfilternya berdasarkan Pod atau kontainer tertentu, tambahkan aturan pencocokan ke bagian detail dalam konfigurasi input. Terapkan konfigurasi berikut ke kluster ACS Anda.
apiVersion: log.alibabacloud.com/v1alpha1
kind: AliyunLogConfig
metadata:
name: test-stdout
spec:
project: k8s-log-c326bc86**** # Ganti dengan nama Proyek Anda yang sebenarnya.
logstore: test-stdout
shardCount: 2
lifeCycle: 90
logtailConfig:
inputType: plugin
configName: test-stdout
inputDetail:
plugin:
inputs:
- type: service_docker_stdout
detail:
Stdout: true
Stderr: true
K8sNamespaceRegex: ^(default)$
K8sContainerRegex: ^(busybox)$
K8sPodRegex: ^backend.+$
IncludeK8sLabel:
app: backend
application: prod
Contoh 2: Kumpulkan log file tertentu
Untuk mengumpulkan log file dari Pod atau kontainer tertentu, tambahkan aturan pencocokan dalam blok advanced di dalam konfigurasi inputDetail. Terapkan konfigurasi berikut ke kluster ACS Anda.
apiVersion: log.alibabacloud.com/v1alpha1
kind: AliyunLogConfig
metadata:
name: test-file
spec:
project: k8s-log-c326bc86**** # Ganti dengan nama Proyek Anda yang sebenarnya.
logstore: test-file
logtailConfig:
inputType: file
configName: test-file
inputDetail:
logType: common_reg_log
logPath: /log/
filePattern: "*.log"
dockerFile: true
advanced:
k8s:
K8sNamespaceRegex: ^(default)$
K8sContainerRegex: ^(busybox)$
K8sPodRegex: ^backend.+$
IncludeK8sLabel:
app: backend
application: prod
Setelah membuat resource kustom AliyunLogConfig test-stdout dan test-file, ikuti petunjuk di Langkah 4: Lihat log di Konsol SLS untuk memeriksa apakah penyimpanan log yang sesuai telah dibuat. Jika belum, tinjau dan perbarui konfigurasi Anda berdasarkan Konfigurasi Logtail (legacy).
Langkah 3: Buat aplikasi contoh
Setelah membuat resource kustom AliyunLogConfig, Simple Log Service (SLS) secara otomatis mengumpulkan log dari Pod baru yang sesuai dengan konfigurasi. Anda dapat membuat aplikasi contoh berikut untuk menguji pengumpulan log.
-
Contoh berikut menunjukkan aplikasi contoh yang dideploy sebagai Deployment. Setelah kontainer dimulai, aplikasi menjalankan perintah untuk terus-menerus mencetak log ke stdout dan file log.
apiVersion: apps/v1 kind: Deployment metadata: name: backend-busybox labels: app: backend application: prod spec: replicas: 1 selector: matchLabels: app: backend application: prod template: metadata: name: backend-busybox labels: app: backend application: prod spec: containers: - args: - -c - mkdir -p /log; while true; do echo hello world; date; echo hello sls >> /log/busybox.log; sleep 1; done command: - /bin/sh image: registry-cn-hangzhou.ack.aliyuncs.com/ack-demo/busybox:1.28 imagePullPolicy: Always name: busybox
Langkah 4: Lihat log di Konsol SLS
Setelah menerapkan konfigurasi, Simple Log Service (SLS) mengumpulkan dan menyimpan log dari aplikasi contoh. Anda dapat melihat log kontainer di Konsol SLS.
-
Masuk ke SLS console.
-
Di bagian Projects, klik Proyek untuk kluster ACS Anda (default: k8s-log-{ACS_cluster_ID}) untuk membuka daftar Logstores.
-
Dalam daftar tersebut, klik nama penyimpanan log yang ditentukan dalam konfigurasi pengumpulan log Anda untuk melihat log di tab baru.
Dalam contoh ini, Anda dapat melihat log stdout (di penyimpanan log test-stdout) dan log file kontainer (di penyimpanan log test-file) pada halaman kueri log.
Pada halaman kueri untuk penyimpanan log test-stdout, Anda dapat melihat bahwa SLS telah mengumpulkan 582 log. Log mentah berisi bidang seperti
_container_name_,_image_name_,_namespace_,_pod_name_,_source_(dengan nilaistdout), dancontent. Hal ini mengonfirmasi bahwa log stdout dari kontainer busybox berhasil dikumpulkan.Hasil kueri untuk penyimpanan log test-file menunjukkan bahwa log file dari kontainer busybox berhasil dikumpulkan. Jalur sumber adalah
/log/busybox.log, dan isi log adalahcontent: hello sls.
Informasi lebih lanjut
Untuk panduan troubleshooting, lihat Troubleshoot Logtail log collection failures.