Container Compute Service (ACS) terintegrasi dengan Simple Log Service (SLS). Saat membuat kluster ACS, Anda dapat mengaktifkan SLS untuk mengumpulkan log kontainer, termasuk output standar dan file teks dari kontainer. Topik ini menjelaskan cara mengumpulkan log aplikasi di kluster ACS menggunakan variabel lingkungan pod.
Langkah 1: Mengaktifkan komponen Simple Log Service
Saat membuat kluster ACS, Anda dapat memilih Use Log Service untuk mengaktifkan komponen Simple Log Service secara otomatis. Jika opsi ini tidak dipilih selama pembuatan kluster, Anda dapat mengikuti langkah-langkah berikut untuk mengaktifkannya pada kluster yang sudah ada.
Masuk ke Konsol ACS. Di panel navigasi kiri, klik Clusters.
Di halaman Clusters, temukan kluster target dan klik ID-nya. Di panel navigasi kiri, pilih Operations > Add-ons.
Di tab Log and Monitoring, temukan alibaba-log-controller dan klik Install. Di kotak dialog Install Component yang muncul, klik OK.
Jika versi sebelumnya dari komponen alibaba-log-controller telah terpasang, Anda dapat melakukan peningkatan. Setelah peningkatan, kluster akan mereset parameter komponen. Jika Anda menyesuaikan konfigurasi atau variabel lingkungan alibaba-log-controller, parameter tersebut akan ditimpa. Anda perlu mengonfigurasinya kembali sesuai kebutuhan.
Langkah 2: Konfigurasikan Layanan Log Sederhana saat Anda membuat aplikasi
Anda dapat mengonfigurasi Simple Log Service untuk mengumpulkan log kontainer saat membuat aplikasi. Konfigurasi ini dapat dilakukan melalui Konsol atau File YAML.
Use the wizard in the ACS console to create an application and configure Simple Log Service
-
Masuk ke ACS Console. Di panel navigasi sebelah kiri, klik Clusters.
-
Di halaman Clusters, temukan kluster yang ingin dikelola dan klik ID-nya. Di panel navigasi sebelah kiri halaman detail kluster, pilih .
-
Di halaman Deployments, pilih namespace dari daftar drop-down Namespace. Kemudian, klik Create from Image di pojok kanan atas halaman.
CatatanContoh ini menggunakan aplikasi tanpa status. Metode konfigurasi serupa untuk jenis beban kerja lainnya, seperti beban kerja stateful.
-
Di halaman wizard Basic Information, tentukan Name, Replicas, dan Type. Lalu, klik Next untuk beralih ke halaman wizard Container.
CatatanHanya parameter terkait Simple Log Service yang dijelaskan dalam bagian berikut. Untuk informasi lebih lanjut tentang parameter aplikasi lainnya, lihat Membuat Aplikasi Tanpa Status Menggunakan Penyebaran.
-
Di bagian Log, konfigurasikan parameter pengumpulan log.
-
Konfigurasikan Collection Configuration.
Klik tanda tambah (+) untuk menambahkan entri konfigurasi. Setiap entri konfigurasi terdiri dari Logstore dan Log Path in Container (can be set to stdout).
-
Logstore: Tentukan nama Logstore. Parameter ini menentukan Logstore tempat log yang dikumpulkan akan disimpan. Jika Logstore tidak ada, ACS secara otomatis membuat Logstore di proyek Simple Log Service yang terkait dengan kluster.
CatatanPeriode retensi log default untuk Logstore adalah 180 hari.
-
Jalur Log di Kontainer (dapat disetel ke stdout): Jalur dari mana Anda ingin mengumpulkan data log. Nilai /usr/local/tomcat/logs/catalina.*.log menunjukkan bahwa file log aplikasi Tomcat dikumpulkan.
CatatanSaat Anda menyetel nilainya ke stdout, stdout dan stderr akan dikumpulkan.
Setiap konfigurasi pengumpulan dibuat secara otomatis untuk Logstore yang sesuai. Secara default, log dikumpulkan baris demi baris.

-
-
Tetapkan Custom Tag.
Klik ikon + untuk menambahkan tag kustom. Setiap tag kustom adalah pasangan kunci-nilai yang ditambahkan ke log yang dikumpulkan. Anda dapat menggunakan tag kustom untuk menandai data log dari sebuah kontainer, misalnya, dengan nomor versi.

-
-
Setelah menetapkan parameter lainnya, klik Next untuk menetapkan pengaturan lanjutan.
Untuk informasi lebih lanjut tentang langkah-langkah selanjutnya, lihat Membuat Aplikasi Tanpa Status Menggunakan Penyebaran.
Buat menggunakan File YAML
-
Masuk ke ACS Console. Di panel navigasi sebelah kiri, klik Clusters.
-
Di halaman Clusters, temukan kluster yang ingin dikelola dan klik namanya. Di panel navigasi sebelah kiri, pilih .
-
Di halaman Deployments, pilih namespace dari daftar drop-down Namespace. Kemudian, klik Create from YAML di pojok kanan atas halaman.
CatatanContoh ini menggunakan aplikasi tanpa status. Metode konfigurasi serupa untuk jenis beban kerja lainnya, seperti beban kerja stateful.
-
Konfigurasikan Templat YAML.
Sintaks File YAML sama dengan sintaks Kubernetes. Namun, untuk menentukan konfigurasi pengumpulan untuk kontainer, Anda harus menggunakan
envuntuk menambahkan Collection Configuration dan Custom Tag untuk kontainer. Kode berikut memberikan contoh pod sederhana: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' 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 command: ["sh", "-c"] args: ["echo 'Memulai aplikasi demo saya'; sleep 3600"]Konfigurasikan pengaturan dalam urutan berikut sesuai kebutuhan.
CatatanJika Anda memiliki persyaratan pengumpulan log tingkat lanjut, lihat Langkah 3: Parameter Lanjutan untuk Pengumpulan Log.
-
Buat Collection Configuration dan Custom Tag menggunakan variabel lingkungan. Semua variabel lingkungan terkait konfigurasi menggunakan
aliyun_logs_sebagai awalan.-
Tambahkan konfigurasi pengumpulan log dalam format berikut:
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' env: - name: aliyun_logs_log-stdout value: stdout - name: aliyun_logs_log-varlog value: /var/log/*.log command: ["sh", "-c"] args: ["echo 'Memulai aplikasi demo saya'; sleep 3600"]Dalam contoh ini, dua konfigurasi pengumpulan dibuat dalam format
aliyun_logs_{key}. Nilai{key}adalahlog-stdoutdanlog-varlog.-
aliyun_logs_log-stdout: Variabel lingkungan ini membuat konfigurasi untukLogstorebernamalog-stdoutdan menetapkan jalur pengumpulan log kestdout. Konfigurasi pengumpulan Simple Log Service yang sesuai juga diberi namalog-stdout. Konfigurasi ini mengumpulkan output standar dari kontainer dan menyimpannya kelog-stdoutLogstore. -
aliyun_logs_log-varlog: Variabel lingkungan ini membuat konfigurasi untukLogstorebernamalog-varlogdan menetapkan jalur pengumpulan log ke /var/log/*.log. Konfigurasi pengumpulan Simple Log Service yang sesuai juga diberi namalog-varlog. Konfigurasi ini mengumpulkan isi file /var/log/*.log dari kontainer dan menyimpannya kelog-varlogLogstore.
-
-
Tambahkan custom tags dalam format berikut:
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' env: - name: aliyun_logs_mytag1_tags value: tag1=v1 command: ["sh", "-c"] args: ["echo 'Memulai aplikasi demo saya'; sleep 3600"]Setelah mengonfigurasi tag, bidang yang sesuai secara otomatis ditambahkan ke log yang dikumpulkan dari kontainer. Dalam contoh ini,
mytag1dapat berupanama apa pun yang tidak mengandung garis bawah (_).
-
-
Jika Anda menentukan jalur pengumpulan selain `stdout` dalam konfigurasi pengumpulan, Anda harus membuat
volumeMountsyang sesuai di bagian ini.Dalam contoh ini, konfigurasi pengumpulan ditambahkan untuk mengumpulkan log dari /var/log/*.log. Oleh karena itu,
volumeMountsuntuk /var/log juga ditambahkan.
-
-
Setelah memodifikasi Templat YAML, klik Create untuk mengirimkan konfigurasi ke kluster ACS.
Langkah 3: Parameter lanjutan untuk pengumpulan log
Anda dapat menggunakan variabel lingkungan kontainer untuk mengonfigurasi berbagai parameter pengumpulan log. Parameter lanjutan dapat ditetapkan untuk memenuhi kebutuhan pengumpulan log khusus.
Nama Variabel Lingkungan | Deskripsi | Contoh | Catatan |
aliyun_logs_{key} |
|
|
|
aliyun_logs_{key}_tags | Opsional. Variabel ini digunakan untuk menambahkan tag ke data log. Nilainya harus dalam format berikut: {tag-key}={tag-value}. | | Tidak tersedia |
aliyun_logs_{key}_project | Opsional. Nilainya adalah Proyek Simple Log Service yang ditentukan. Jika variabel lingkungan ini tidak ada, proyek yang dipilih selama instalasi akan digunakan. | | Proyek harus berada di wilayah yang sama dengan komponen Simple Log Service. |
aliyun_logs_{key}_logstore | Opsional. Variabel ini menentukan Logstore di Simple Log Service. Secara default, Logstore diberi nama {key}. | | Tidak tersedia |
aliyun_logs_{key}_shard | Opsional. Nilainya adalah jumlah shard untuk Logstore saat dibuat. Nilainya berkisar antara 1 hingga 10. Jika variabel lingkungan ini tidak ada, nilainya adalah 2. Catatan Jika Logstore sudah ada, parameter ini tidak berlaku. | | Tidak tersedia |
aliyun_logs_{key}_ttl | Opsional. Nilainya adalah periode retensi log yang ditentukan. Nilainya berkisar antara 1 hingga 3650.
Catatan Jika Logstore yang Anda tentukan sudah ada, variabel ini tidak berlaku. | | Tidak tersedia |
aliyun_logs_{key}_machinegroup | Opsional. Variabel ini menentukan kelompok node tempat aplikasi diterapkan. Kelompok node default adalah kelompok node tempat komponen alibaba-log-controller diterapkan. Untuk informasi lebih lanjut tentang cara menggunakan variabel ini, lihat Skenario Khusus 2: Mengumpulkan data dari aplikasi yang berbeda ke proyek yang berbeda. | | Tidak tersedia |
aliyun_logs_{key}_logstoremode | Opsional. Variabel ini menentukan jenis Logstore. Nilai default: standard. Nilai valid: Catatan Jika Logstore yang Anda tentukan sudah ada, variabel ini tidak berlaku.
|
| Tidak tersedia |
Skenario Khusus 1: Mengumpulkan data dari beberapa aplikasi ke Logstore yang sama
Untuk mengumpulkan data dari beberapa aplikasi dan menyimpannya ke Logstore yang sama, Anda dapat mengatur parameter aliyun_logs_{key}_logstore. Sebagai contoh, konfigurasi berikut mengumpulkan `stdout` dari dua aplikasi dan menyimpannya ke
stdout-logstore.Dalam contoh ini,
{key}untuk Aplikasi 1 adalahapp1-stdout, dan{key}untuk Aplikasi 2 adalahapp2-stdout.Konfigurasikan variabel lingkungan berikut untuk Aplikasi 1:
apiVersion: v1 kind: Pod metadata: name: my-demo-1 spec: containers: - name: my-demo-app image: 'registry.cn-hangzhou.aliyuncs.com/log-service/docker-log-test:latest' env: # Konfigurasikan variabel lingkungan - name: aliyun_logs_app1-stdout value: stdout - name: aliyun_logs_app1-stdout_logstore value: stdout-logstore command: ["sh", "-c"] args: ["echo 'Memulai aplikasi demo saya'; sleep 3600"]Konfigurasikan variabel lingkungan berikut untuk Aplikasi 2:
apiVersion: v1 kind: Pod metadata: name: my-demo-2 spec: containers: - name: my-demo-app image: 'registry.cn-hangzhou.aliyuncs.com/log-service/docker-log-test:latest' env: # Konfigurasikan variabel lingkungan - name: aliyun_logs_app2-stdout value: stdout - name: aliyun_logs_app2-stdout_logstore value: stdout-logstore command: ["sh", "-c"] args: ["echo 'Memulai aplikasi demo saya'; sleep 3600"]Skenario Khusus 2: Mengumpulkan data dari aplikasi yang berbeda ke proyek yang berbeda
Untuk mengumpulkan data dari aplikasi yang berbeda dan menyimpannya ke proyek yang berbeda, ikuti langkah-langkah berikut:
Di setiap proyek, buat kelompok mesin. Pilih ID Kustom dan atur ID ke
k8s-group-{cluster-id}, di mana{cluster-id}adalah ID kluster Anda. Anda juga dapat mengonfigurasi nama kelompok mesin kustom.Di variabel lingkungan untuk setiap aplikasi, konfigurasikan informasi proyek, Logstore, dan kelompok mesin. Nama kelompok mesin harus sesuai dengan nama kelompok mesin yang dibuat pada langkah sebelumnya.
Pada contoh berikut,
{key}untuk Aplikasi 1 adalahapp1-stdout, dan{key}untuk Aplikasi 2 adalahapp2-stdout. Jika kedua aplikasi tersebut berada di kluster Kubernetes yang sama, Anda dapat menggunakan kelompok mesin yang sama.Konfigurasikan variabel lingkungan berikut untuk Aplikasi 1:
apiVersion: v1 kind: Pod metadata: name: my-demo-1 spec: containers: - name: my-demo-app image: 'registry.cn-hangzhou.aliyuncs.com/log-service/docker-log-test:latest' env: # 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 command: ["sh", "-c"] args: ["echo 'Memulai aplikasi demo saya'; sleep 3600"]Konfigurasikan variabel lingkungan berikut untuk Aplikasi 2:
apiVersion: v1 kind: Pod metadata: name: my-demo-2 spec: containers: - name: my-demo-app image: 'registry.cn-hangzhou.aliyuncs.com/log-service/docker-log-test:latest' env: # Konfigurasikan variabel lingkungan untuk Aplikasi 2 - 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 command: ["sh", "-c"] args: ["echo 'Memulai aplikasi demo saya'; sleep 3600"]
Langkah 4: Lihat log menggunakan konsol Simple Log Service
Contoh ini menjelaskan cara melihat log dari aplikasi yang dibuat menggunakan wizard konsol. Setelah konfigurasi selesai, log aplikasi dikumpulkan dan disimpan di Simple Log Service. Anda dapat melihat log kontainer di konsol Simple Log Service.
Masuk ke konsol Simple Log Service.
Di bagian Projects, pilih proyek yang sesuai dengan kluster ACS (default: k8s-log-{ID kluster ACS}), lalu klik dan buka tab Logstore.
Dalam daftar Logstore, temukan Logstore yang ditentukan saat mengonfigurasi pengumpulan log. Gerakkan pointer di atas nama Logstore dan klik ikon
. Kemudian, klik Search & Analysis.Pada halaman log kueri, Anda dapat melihat log output standar dan log teks di dalam kontainer aplikasi, serta menemukan tag kustom yang ditambahkan ke field log.
Informasi lebih lanjut
Setelah menggunakan Simple Log Service untuk mengumpulkan log kontainer Kubernetes, Anda dapat melihat semua informasi log untuk Container Service for Kubernetes (ACS) di Konsol Simple Log Service.
Untuk informasi lebih lanjut mengenai pemecahan masalah kesalahan pengumpulan log, lihat Apa yang harus saya lakukan jika terjadi kesalahan saat menggunakan Logtail untuk mengumpulkan log?