Mendefinisikan pengaturan pengumpulan log sebagai CustomResourceDefinition (CRD) Kubernetes menyatukan manajemen di seluruh kluster, termasuk Container Service for Kubernetes (ACK) dan kluster yang dikelola sendiri. Pendekatan ini menggantikan proses manual yang tidak konsisten dan rentan kesalahan dengan otomatisasi berbasis versi melalui kubectl dan pipeline CI/CD. Hot reloading bawaan LoongCollector menerapkan perubahan secara instan tanpa perlu restart, sehingga langsung meningkatkan efisiensi operasional dan kemudahan pemeliharaan sistem.
CRD AliyunLogConfig lama tidak lagi dipelihara. Gunakan CRD AliyunPipelineConfig yang baru sebagai gantinya. Untuk perbandingan antara versi baru dan lama, lihat Jenis CRD.Konfigurasi pengumpulan yang dibuat menggunakan CRD hanya dapat dimodifikasi dengan memperbarui CRD yang sesuai. Perubahan yang dilakukan di konsol Simple Log Service (SLS) tidak disinkronkan ke CRD dan tidak berlaku.
Catatan penggunaan
Lingkungan operasi:
Mendukung ACK (edisi managed dan dedicated) serta kluster Kubernetes yang dikelola sendiri.
Versi Kubernetes 1.16.0 atau lebih baru yang mendukung
Mount propagation: HostToContainer.Runtime kontainer (hanya Docker dan Containerd)
Docker:
Memerlukan izin akses untuk docker.sock.
Pengumpulan output standar hanya mendukung driver log JSON.
Hanya mendukung driver penyimpanan overlay dan overlay2. Untuk tipe lainnya, Anda harus memasang direktori log secara manual.
Containerd: Memerlukan izin akses untuk containerd.sock.
Kebutuhan resource: LoongCollector (Logtail) berjalan dengan prioritas tinggi `system-cluster-critical`. Jangan men-deploy-nya jika resource kluster tidak mencukupi, karena dapat mengusir Pod yang sudah ada di node tersebut.
CPU: Cadangkan minimal 0,1 Core.
Memory: Minimal 150 MB untuk komponen pengumpulan dan minimal 100 MB untuk komponen controller.
Penggunaan aktual tergantung pada laju pengumpulan, jumlah direktori dan file yang dipantau, serta tingkat hambatan pengiriman. Pastikan penggunaan aktual tetap di bawah 80% dari batas yang dikonfigurasi.
Izin: Akun Alibaba Cloud atau Pengguna RAM yang digunakan untuk deployment harus memiliki izin
AliyunLogFullAccess.Untuk membuat kebijakan kustom, lihat kebijakan sistem AliyunCSManagedLogRolePolicy. Salin izin dari kebijakan ini dan berikan kepada Pengguna RAM atau role target untuk mengonfigurasi izin detail halus.
Alur kerja konfigurasi pengumpulan
Instal LoongCollector: Deploy LoongCollector sebagai DaemonSet untuk memastikan kontainer pengumpulan berjalan di setiap node dalam kluster. Hal ini memungkinkan pengumpulan terpadu log dari semua kontainer di node tersebut.
Create a logstore: Logstore adalah unit penyimpanan untuk data log. Beberapa logstore dapat dibuat dalam satu proyek.
Buat file konfigurasi pengumpulan YAML: Gunakan kubectl untuk terhubung ke kluster. Buat file konfigurasi pengumpulan dengan salah satu dari dua metode berikut:
Metode 1: Gunakan generator konfigurasi pengumpulan
Gunakan generator konfigurasi pengumpulan di konsol SLS untuk memasukkan parameter secara visual dan menghasilkan file YAML standar secara otomatis.
Metode 2: Tulis file YAML secara manual
Tulis file YAML berdasarkan contoh dan alur kerja dalam topik ini. Mulailah dengan konfigurasi minimal dan tambahkan logika pemrosesan serta fitur lanjutan secara bertahap.
Untuk informasi lebih lanjut tentang kasus penggunaan kompleks yang tidak dibahas dalam topik ini atau field yang memerlukan kustomisasi mendalam, lihat Parameter AliyunPipelineConfig untuk daftar lengkap field, aturan nilai, dan kemampuan plugin.
Konfigurasi pengumpulan lengkap biasanya mencakup bagian-bagian berikut:
Konfigurasi minimal (Wajib): Membangun saluran data dari kluster ke SLS. Terdiri dari dua bagian:
Input
(inputs): Mendefinisikan sumber log. Log kontainer mencakup dua sumber log berikut. Untuk mengumpulkan jenis log lain, seperti hasil kueri MySQL, lihat Plugin input.Output standar kontainer (stdout dan stderr): Konten log yang dicetak program kontainer ke konsol.
File log teks: File log yang ditulis ke jalur tertentu di dalam kontainer.
Output
(flushers): Mendefinisikan target log. Mengirim log yang dikumpulkan ke logstore yang ditentukan.Jika proyek atau logstore target tidak ada, sistem akan membuatnya secara otomatis. Anda juga dapat membuat proyek dan logstore secara manual terlebih dahulu.
Konfigurasi pemrosesan umum (Opsional): Mendefinisikan field
processorsuntuk melakukan penguraian terstruktur (seperti penguraian ekspresi reguler atau delimiter), penyembunyian, atau penyaringan pada log mentah.Topik ini hanya menjelaskan plugin pemrosesan native yang mencakup kasus penggunaan umum. Untuk fitur lainnya, lihat Plugin pemrosesan ekstensi.
Konfigurasi lanjutan lainnya (Opsional): Mengimplementasikan fitur seperti pengumpulan log multi-baris dan penguatan tag log untuk memenuhi kebutuhan pengumpulan yang lebih detail halus.
Contoh struktur:
apiVersion: telemetry.alibabacloud.com/v1alpha1 # Gunakan nilai default. Jangan ubah. kind: ClusterAliyunPipelineConfig # Gunakan nilai default. Jangan ubah. metadata: name: test-config # Tetapkan nama resource. Harus unik dalam kluster Kubernetes. spec: project: # Tetapkan nama proyek target. name: k8s-your-project config: # Tetapkan konfigurasi pengumpulan Logtail. inputs: # Tetapkan plugin input untuk konfigurasi pengumpulan Logtail. ... processors: # Tetapkan plugin pemrosesan untuk konfigurasi pengumpulan Logtail. ... flushers: # Tetapkan plugin output untuk konfigurasi pengumpulan Logtail. ...Terapkan konfigurasi
kubectl apply -f <your_yaml>
Instal LoongCollector (Logtail)
LoongCollector adalah agen pengumpulan log generasi baru yang diluncurkan oleh SLS. Ini merupakan versi peningkatan dari Logtail. Keduanya tidak dapat berjalan bersamaan. Untuk menginstal Logtail, lihat Instal dan konfigurasi Logtail.
Topik ini hanya menjelaskan langkah instalasi dasar LoongCollector. Untuk parameter detail, lihat Instalasi dan konfigurasi. Jika Anda telah menginstal LoongCollector atau Logtail, lewati langkah ini dan lanjutkan untuk membuat logstore guna menyimpan log yang dikumpulkan.
Kluster ACK
Instal LoongCollector dari konsol Container Service for Kubernetes (ACK). Secara default, log dikirim ke proyek SLS di bawah akun Alibaba Cloud saat ini.
Masuk ke Konsol Manajemen Container Service . Di panel navigasi sebelah kiri, klik Clusters.
Di halaman Clusters, klik nama kluster target untuk membuka halaman detailnya.
Di panel navigasi sebelah kiri, klik Add-ons.
Di tab Logs and Monitoring, temukan loongcollector dan klik Install.
CatatanUntuk kluster baru, di bagian Advanced Options, pilih Enable Log Service. Lalu Create Project atau Select Project.
Setelah instalasi selesai, SLS secara otomatis membuat resource terkait di wilayah tempat kluster ACK berada. Masuk ke Konsol Simple Log Service untuk melihatnya.
Jenis resource
Nama resource
Fungsi
Proyek
k8s-log-${cluster_id}Unit manajemen resource yang mengisolasi log untuk layanan berbeda.
Untuk membuat proyek guna manajemen resource log yang lebih fleksibel, lihat Buat proyek.
Kelompok mesin
k8s-group-${cluster_id}Kumpulan node pengumpul log.
PentingLoongCollector tidak akan membuat logstore bernama config-operation-log. Jika logstore dengan nama tersebut sudah ada, LoongCollector berhenti menulis log ke dalamnya.
Kluster yang dikelola sendiri
Hubungkan ke kluster Kubernetes dan jalankan perintah yang sesuai untuk wilayah Anda guna mengunduh LoongCollector dan komponen dependennya:
Wilayah di Tiongkok:
wget https://aliyun-observability-release-cn-shanghai.oss-cn-shanghai.aliyuncs.com/loongcollector/k8s-custom-pkg/3.0.12/loongcollector-custom-k8s-package.tgz; tar xvf loongcollector-custom-k8s-package.tgz; chmod 744 ./loongcollector-custom-k8s-package/k8s-custom-install.shWilayah di luar Tiongkok:
wget https://aliyun-observability-release-ap-southeast-1.oss-ap-southeast-1.aliyuncs.com/loongcollector/k8s-custom-pkg/3.0.12/loongcollector-custom-k8s-package.tgz; tar xvf loongcollector-custom-k8s-package.tgz; chmod 744 ./loongcollector-custom-k8s-package/k8s-custom-install.shBuka direktori
loongcollector-custom-k8s-packagedan modifikasi file konfigurasi./loongcollector/values.yaml.# ===================== Parameter wajib ===================== # Nama proyek yang mengelola log yang dikumpulkan. Contoh: k8s-log-custom-sd89ehdq. projectName: "" # Wilayah proyek. Contoh untuk Shanghai: cn-shanghai region: "" # UID akun Alibaba Cloud yang memiliki proyek. Sertakan UID dalam tanda kutip. Contoh: "123456789" aliUid: "" # Jenis jaringan. Parameter opsional: Internet (jaringan publik) dan Intranet (jaringan internal). Nilai default: Internet. net: Internet # ID AccessKey dan Rahasia AccessKey akun Alibaba Cloud atau Pengguna RAM. Akun atau pengguna harus memiliki kebijakan sistem AliyunLogFullAccess. accessKeyID: "" accessKeySecret: "" # ID kluster kustom. ID hanya boleh berisi huruf besar, huruf kecil, angka, dan tanda hubung (-). clusterID: ""Di direktori
loongcollector-custom-k8s-package, jalankan perintah berikut untuk menginstal LoongCollector dan komponen dependennya:bash k8s-custom-install.sh installSetelah instalasi selesai, periksa status berjalan komponen-komponennya.
Jika Pod gagal dimulai, periksa apakah konfigurasi values.yaml sudah benar dan apakah image terkait berhasil ditarik.
# Periksa status Pod. kubectl get po -n kube-system | grep loongcollector-dsSLS juga secara otomatis membuat resource berikut. Masuk ke Konsol Simple Log Service untuk melihatnya.
Jenis resource
Nama resource
Fungsi
Proyek
Nilai
projectNameyang didefinisikan dalam file values.yamlUnit manajemen resource yang mengisolasi log untuk layanan berbeda.
Kelompok mesin
k8s-group-${cluster_id}Kumpulan node pengumpul log.
PentingLoongCollector tidak akan membuat logstore bernama config-operation-log. Jika logstore dengan nama tersebut sudah ada, LoongCollector berhenti menulis log ke dalamnya.
Buat logstore
Jika Anda telah membuat logstore, lewati langkah ini dan lanjutkan ke konfigurasi pengumpulan.
Masuk ke Konsol Simple Log Service dan klik nama proyek target.
Di panel navigasi sebelah kiri, pilih
dan klik +.Di halaman Buat Logstore, konfigurasikan parameter inti berikut:
Logstore Name: Tetapkan nama yang unik dalam proyek. Nama ini tidak dapat diubah setelah dibuat.
Logstore Type: Pilih Standard atau Query berdasarkan perbandingan spesifikasinya.
Billing Mode:
pay-by-feature: Ditagih secara terpisah untuk setiap resource, seperti penyimpanan, pengindeksan, dan operasi baca/tulis. Cocok untuk kasus penggunaan skala kecil atau ketika penggunaan fitur belum pasti.
pay-by-ingested-data: Ditagih hanya berdasarkan jumlah data mentah yang diingest. Menyediakan periode penyimpanan gratis 30 hari dan fitur gratis seperti transformasi dan pengiriman data. Model biaya sederhana dan cocok untuk kasus penggunaan dengan periode penyimpanan mendekati 30 hari atau pipeline pemrosesan data kompleks.
Data Retention Period: Tetapkan jumlah hari penyimpanan log. Nilainya berkisar antara 1 hingga 3650 hari. Nilai 3650 menunjukkan penyimpanan permanen. Default-nya adalah 30 hari.
Pertahankan pengaturan default untuk konfigurasi lainnya dan klik OK. Untuk informasi lebih lanjut tentang konfigurasi lainnya, lihat Kelola logstore.
Konfigurasi minimal
Di spec.config, Anda mengonfigurasi plugin input (inputs) dan output (flushers) untuk menentukan jalur inti pengumpulan log: sumber log dan tujuannya.
Output standar kontainer - versi baru
Tujuan: Mengumpulkan log output standar kontainer (stdout/stderr) yang langsung dicetak ke konsol.
Titik awal konfigurasi pengumpulan. Mendefinisikan sumber log. Saat ini, hanya satu plugin input yang dapat dikonfigurasi.
| Contoh |
Konfigurasikan plugin
|
Kumpulkan file teks kontainer
Tujuan: Mengumpulkan log yang ditulis ke jalur file tertentu dalam kontainer, seperti file access.log atau app.log tradisional.
Titik awal konfigurasi pengumpulan. Mendefinisikan sumber log. Saat ini, hanya satu plugin input yang dapat dikonfigurasi.
| Contoh |
Konfigurasikan plugin
|
Konfigurasi pemrosesan umum
Setelah menyelesaikan konfigurasi minimal, tambahkan plugin pemrosesan untuk melakukan penguraian terstruktur, penyembunyian, atau penyaringan pada log mentah.
Konfigurasi inti: Tambahkan processors ke spec.config untuk mengonfigurasi plugin pemrosesan. Beberapa plugin dapat ditambahkan sekaligus.
Topik ini hanya menjelaskan plugin pemrosesan native yang mencakup kasus penggunaan umum. Untuk informasi lebih lanjut tentang fitur lainnya, lihat Plugin pemrosesan ekstensi.
Untuk Logtail versi 2.0 dan yang lebih baru serta komponen LoongCollector, kami merekomendasikan aturan kombinasi plugin berikut:
Gunakan plugin native terlebih dahulu.
Jika plugin native tidak memenuhi kebutuhan Anda, konfigurasikan plugin ekstensi setelah plugin native.
Plugin native hanya dapat digunakan sebelum plugin ekstensi.
Konfigurasi terstruktur
Penguraian ekspresi reguler
Mengekstraksi field log menggunakan ekspresi reguler dan mengurai log menjadi pasangan kunci-nilai.
Field kunci | Contoh |
Type Jenis plugin. Tetapkan ke | |
SourceKey Nama field sumber. | |
Regex Ekspresi reguler untuk mencocokkan log. | |
Keys Daftar field yang diekstraksi. | |
KeepingSourceWhenParseFail Menentukan apakah field sumber dipertahankan jika penguraian gagal. Nilai default: | |
KeepingSourceWhenParseSucceed Menentukan apakah field sumber dipertahankan jika penguraian berhasil. Nilai default: | |
RenamedSourceKey Jika field sumber dipertahankan, ini adalah nama field yang digunakan untuk menyimpan field sumber. Secara default, nama tidak diubah. |
Penguraian delimiter
Menstrukturkan konten log menggunakan delimiter, mengurai menjadi beberapa pasangan kunci-nilai. Mendukung delimiter karakter tunggal dan multi-karakter.
Field kunci | Contoh |
Type Jenis plugin. Tetapkan ke | |
SourceKey Nama field sumber. | |
Separator Delimiter field. Misalnya, CSV menggunakan koma (,). | |
Keys Daftar field yang diekstraksi. | |
Quote Karakter quote yang digunakan untuk membungkus konten field yang berisi karakter khusus, seperti koma. | |
AllowingShortenedFields Menentukan apakah jumlah field yang diekstraksi boleh kurang dari jumlah kunci. Nilai default: | |
OverflowedFieldsTreatment Menentukan perilaku saat jumlah field yang diekstraksi lebih besar dari jumlah kunci. Nilai default:
| |
KeepingSourceWhenParseFail Menentukan apakah field sumber dipertahankan jika penguraian gagal. Nilai default: | |
KeepingSourceWhenParseSucceed Menentukan apakah field sumber dipertahankan jika penguraian berhasil. Nilai default: | |
RenamedSourceKey Jika field sumber dipertahankan, ini adalah nama field yang digunakan untuk menyimpan field sumber. Secara default, nama tidak diubah. |
Penguraian JSON standar
Menstrukturkan log JSON bertipe objek, mengurai menjadi pasangan kunci-nilai.
Field kunci | Contoh |
Type Jenis plugin. Tetapkan ke | |
SourceKey Nama field sumber. | |
KeepingSourceWhenParseFail Menentukan apakah field sumber dipertahankan jika penguraian gagal. Nilai default: | |
KeepingSourceWhenParseSucceed Menentukan apakah field sumber dipertahankan jika penguraian berhasil. Nilai default: | |
RenamedSourceKey Jika field sumber dipertahankan, ini adalah nama field yang digunakan untuk menyimpan field sumber. Secara default, nama tidak diubah. |
Penguraian JSON bersarang
Mengurai log JSON bersarang menjadi pasangan kunci-nilai dengan menentukan kedalaman ekspansi.
Field kunci | Contoh |
Type Jenis plugin. Tetapkan ke | |
SourceKey Nama field sumber. | |
ExpandDepth Kedalaman ekspansi JSON. Nilai default: 0.
| |
ExpandConnector Konektor untuk nama field selama ekspansi JSON. Nilai default: underscore (_). | |
Prefix Menentukan awalan untuk nama field JSON yang diperluas. | |
IgnoreFirstConnector Menentukan apakah konektor pertama diabaikan, artinya apakah konektor ditambahkan sebelum field level atas. Nilai default: | |
ExpandArray Menentukan apakah tipe array diperluas. Nilai default:
Catatan Parameter ini didukung di Logtail versi 1.8.0 dan yang lebih baru. | |
KeepSource Menentukan apakah field mentah dipertahankan dalam log yang diurai. Nilai default:
| |
NoKeyError Menentukan apakah sistem melaporkan error jika field mentah yang ditentukan tidak ditemukan dalam log mentah. Nilai default:
| |
UseSourceKeyAsPrefix Menentukan apakah nama field mentah digunakan sebagai awalan untuk semua nama field JSON yang diperluas. | |
KeepSourceIfParseError Menentukan apakah log mentah dipertahankan jika penguraian gagal. Nilai default:
|
Penguraian array JSON
Menggunakan fungsi json_extract untuk mengekstraksi objek JSON dari array JSON. Untuk informasi lebih lanjut tentang fungsi JSON, lihat Fungsi JSON.
Bidang kunci | Contoh |
Type Jenis plugin. Jenis plugin SPL adalah | |
Script Konten skrip SPL, digunakan untuk mengekstraksi elemen dari array JSON di field content. | |
TimeoutMilliSeconds Periode batas waktu skrip. Rentang nilai: 0 hingga 10000. Satuan: milidetik. Nilai default: 1000. |
Penguraian log NGINX
Menstrukturkan konten log berdasarkan definisi dalam log_format, mengurai menjadi beberapa pasangan kunci-nilai. Jika konten default tidak memenuhi kebutuhan Anda, gunakan format kustom.
Bidang kunci | Contoh |
Type Jenis plugin. Jenis plugin untuk penguraian log Nginx adalah | |
SourceKey Nama field sumber. | |
Regex Ekspresi reguler. | |
Keys Daftar field yang diekstraksi. | |
Extra
| |
KeepingSourceWhenParseFail Menentukan apakah field sumber dipertahankan jika penguraian gagal. Nilai default: | |
KeepingSourceWhenParseSucceed Menentukan apakah field sumber dipertahankan jika penguraian berhasil. Nilai default: | |
RenamedSourceKey Jika field sumber dipertahankan, ini adalah nama field yang digunakan untuk menyimpan field sumber. Secara default, nama tidak diubah. |
Penguraian log Apache
Menstrukturkan konten log berdasarkan definisi dalam file konfigurasi log Apache, mengurai menjadi beberapa pasangan kunci-nilai.
Field kunci | Contoh |
Type Jenis plugin. Tetapkan ke | |
SourceKey Nama field sumber. | |
Regex Ekspresi reguler. | |
Keys Daftar field yang diekstraksi. | |
Extra
| |
KeepingSourceWhenParseFail Menentukan apakah field sumber dipertahankan jika penguraian gagal. Nilai default: | |
KeepingSourceWhenParseSucceed Menentukan apakah field sumber dipertahankan jika penguraian berhasil. Nilai default: | |
RenamedSourceKey Jika field sumber dipertahankan, ini adalah nama field yang digunakan untuk menyimpan field sumber. Secara default, nama tidak diubah. |
Penyembunyian data
Gunakan plugin processor_desensitize_native untuk menyembunyikan data sensitif dalam log.
Bidang Utama | Contoh |
Type Jenis plugin. Tetapkan ke | |
SourceKey Nama field sumber. | |
Method Metode penyembunyian. Nilai yang didukung:
| |
ReplacingString String konstan yang digunakan untuk mengganti konten sensitif. Ini diperlukan saat | |
ContentPatternBeforeReplacedString Ekspresi reguler untuk awalan konten sensitif. | |
ReplacedContentPattern Ekspresi reguler untuk konten sensitif. | |
ReplacingAll Menentukan apakah field asli dipertahankan setelah penguraian berhasil. Nilai default adalah |
Penyaringan konten
Konfigurasikan plugin processor_filter_regex_native untuk mencocokkan nilai field log berdasarkan ekspresi reguler dan hanya menyimpan log yang memenuhi kondisi.
Field kunci | Contoh |
Type Jenis plugin. Tetapkan ke | |
FilterRegex Ekspresi reguler untuk mencocokkan field log. | |
FilterKey Nama field log yang akan dicocokkan. |
Penguraian waktu
Konfigurasikan plugin processor_parse_timestamp_native untuk mengurai field waktu dalam log dan menetapkan hasil penguraian sebagai field __time__ log.
Field kunci | Contoh |
Type Jenis plugin. Tetapkan ke | |
SourceKey Nama field sumber. | |
SourceFormat Format waktu. Harus persis sesuai dengan format field waktu dalam log. | |
SourceTimezone Zona waktu log waktu. Secara default, menggunakan zona waktu mesin, yaitu zona waktu lingkungan tempat proses LoongCollector berjalan. Format:
|
Konfigurasi lanjutan lainnya
Untuk kasus penggunaan lanjutan, pertimbangkan konfigurasi berikut:
Konfigurasikan pengumpulan log multi-baris: Saat satu entri log, seperti jejak stack exception, mencakup beberapa baris, Anda perlu mengaktifkan mode multi-baris dan mengonfigurasi ekspresi reguler untuk awal baris guna mencocokkan awal log. Hal ini memastikan entri multi-baris dikumpulkan dan disimpan sebagai satu log di logstore SLS.
Konfigurasikan jenis topik log: Tetapkan topik berbeda untuk aliran log berbeda guna mengorganisasi dan mengkategorikan data log. Hal ini membantu Anda mengelola dan mengambil log yang relevan dengan lebih baik.
Tentukan kontainer untuk pengumpulan (penyaringan dan daftar hitam): Tentukan kontainer dan jalur tertentu untuk pengumpulan, termasuk konfigurasi daftar putih dan daftar hitam.
Perkaya tag log: Tambahkan metadata terkait variabel lingkungan dan label pod ke log sebagai field tambahan.
Konfigurasikan pengumpulan log multi-baris
Untuk mengurai dengan benar entri log yang mencakup beberapa baris (seperti jejak stack Java), aktifkan mode multi-baris. Hal ini memastikan baris terkait dikelompokkan menjadi satu entri log berdasarkan pola awal yang ditentukan.
Konfigurasi inti: Di konfigurasi spec.config.inputs, tambahkan parameter Multiline.
Field kunci | Contoh |
Multiline Mengaktifkan pengumpulan log multi-baris.
| |
Konfigurasikan jenis topik log
Konfigurasi inti: Di spec.config, tambahkan parameter global untuk menetapkan topik.
Bidang Utama | Contoh |
TopicType Jenis topik. Nilai opsional:
| Topik kelompok mesinEkstraksi jalur fileKustom |
TopicFormat Format topik. Ini diperlukan saat TopicType diatur ke filepath atau custom. |
Tentukan kontainer untuk pengumpulan (penyaringan dan daftar hitam)
Penyaringan
Mengumpulkan log hanya dari kontainer yang memenuhi kondisi tertentu. Beberapa kondisi digabungkan dengan logika AND. Kondisi kosong diabaikan. Kondisi mendukung ekspresi reguler.
Konfigurasi inti: Di spec.config.inputs, konfigurasikan parameter ContainerFilters untuk penyaringan kontainer.
Field kunci | Contoh |
ContainerFilters Penyaringan kontainer
Semua ekspresi reguler didasarkan pada mesin regex RE2 di Go, yang memiliki beberapa keterbatasan dibandingkan mesin seperti PCRE. Lihat Lampiran: Batasan ekspresi reguler untuk penyaringan kontainer untuk menulis ekspresi reguler. | |
Daftar hitam
Untuk mengecualikan file yang memenuhi kondisi tertentu, gunakan parameter berikut di bawah config.inputs dalam file YAML sesuai kebutuhan:
Detail field kunci | Contoh |
ExcludeFilePaths Daftar hitam jalur file. Mengecualikan file yang memenuhi kondisi tertentu. Jalur harus berupa jalur mutlak dan mendukung karakter wildcard *. | |
ExcludeFiles Daftar hitam nama file. Mengecualikan file yang memenuhi kondisi tertentu. Mendukung karakter wildcard *. | |
ExcludeDirs Daftar hitam direktori. Mengecualikan file yang memenuhi kondisi tertentu. Jalur harus berupa jalur mutlak dan mendukung karakter wildcard *. |
Perkaya tag log
Konfigurasi inti: Dengan mengonfigurasi ExternalEnvTag dan ExternalK8sLabelTag di spec.config.inputs, tambahkan tag terkait variabel lingkungan kontainer dan label Pod ke log.
Field kunci | Contoh |
ExternalEnvTag Memetakan nilai variabel lingkungan tertentu ke field tag. Format: | |
ExternalK8sLabelTag Memetakan nilai label pod Kubernetes ke field tag. Format: |
Contoh konfigurasi
Kumpulkan dan uraikan log akses NGINX menjadi field terstruktur
Mengurai log NGINX dan menstrukturkan konten log menjadi beberapa pasangan kunci-nilai berdasarkan definisi dalam log_format.
Kumpulkan dan proses log multi-baris
Aktifkan mode multi-baris untuk memastikan baris terkait dikelompokkan menjadi satu entri log berdasarkan pola awal yang ditentukan. Berikut adalah contohnya:
FAQ
Bagaimana cara mengelola konfigurasi distribusi multi-target?
Konfigurasi distribusi multi-target dikaitkan dengan beberapa logstore. Kelola konfigurasi ini dari halaman manajemen tingkat proyek:
Masuk ke Konsol Simple Log Service dan klik nama proyek target.
Di halaman proyek, pilih
dari panel navigasi sebelah kiri.CatatanHalaman ini menyediakan manajemen terpusat untuk semua konfigurasi pengumpulan dalam proyek, termasuk konfigurasi yang tetap ada setelah logstore terkaitnya dihapus secara tidak sengaja.
Bagaimana cara mengirim log dari kluster ACK ke proyek di akun Alibaba Cloud lain?
Instal LoongCollector (Logtail) secara manual di kluster ACK dan konfigurasikan dengan ID akun Alibaba Cloud target atau AccessKey. Hal ini memungkinkan pengiriman log kontainer ke proyek SLS di akun Alibaba Cloud lain.
Kasus penggunaan: Kumpulkan data log dari kluster ACK ke proyek SLS di akun Alibaba Cloud berbeda karena alasan seperti struktur organisasi, isolasi izin, atau pemantauan terpadu. Instal LoongCollector (Logtail) secara manual untuk konfigurasi lintas akun.
Prosedur: Prosedur berikut menggunakan instalasi manual LoongCollector sebagai contoh. Untuk informasi tentang cara menginstal Logtail, lihat Instal dan konfigurasi Logtail.
Hubungkan ke kluster Kubernetes dan jalankan perintah yang sesuai untuk wilayah Anda guna mengunduh LoongCollector dan komponen dependennya:
Wilayah di Tiongkok:
wget https://aliyun-observability-release-cn-shanghai.oss-cn-shanghai.aliyuncs.com/loongcollector/k8s-custom-pkg/3.0.12/loongcollector-custom-k8s-package.tgz; tar xvf loongcollector-custom-k8s-package.tgz; chmod 744 ./loongcollector-custom-k8s-package/k8s-custom-install.shWilayah di luar Tiongkok:
wget https://aliyun-observability-release-ap-southeast-1.oss-ap-southeast-1.aliyuncs.com/loongcollector/k8s-custom-pkg/3.0.12/loongcollector-custom-k8s-package.tgz; tar xvf loongcollector-custom-k8s-package.tgz; chmod 744 ./loongcollector-custom-k8s-package/k8s-custom-install.shBuka direktori
loongcollector-custom-k8s-packagedan modifikasi file konfigurasi./loongcollector/values.yaml.# ===================== Parameter wajib ===================== # Nama proyek yang mengelola log yang dikumpulkan. Contoh: k8s-log-custom-sd89ehdq. projectName: "" # Wilayah proyek. Contoh untuk Shanghai: cn-shanghai region: "" # UID akun Alibaba Cloud yang memiliki proyek. Sertakan UID dalam tanda kutip. Contoh: "123456789" aliUid: "" # Jenis jaringan. Parameter opsional: Internet (jaringan publik) dan Intranet (jaringan internal). Nilai default: Internet. net: Internet # ID AccessKey dan Rahasia AccessKey akun Alibaba Cloud atau Pengguna RAM. Akun atau pengguna harus memiliki kebijakan sistem AliyunLogFullAccess. accessKeyID: "" accessKeySecret: "" # ID kluster kustom. ID hanya boleh berisi huruf besar, huruf kecil, angka, dan tanda hubung (-). clusterID: ""Di direktori
loongcollector-custom-k8s-package, jalankan perintah berikut untuk menginstal LoongCollector dan komponen dependennya:bash k8s-custom-install.sh installSetelah instalasi selesai, periksa status berjalan komponen-komponennya.
Jika Pod gagal dimulai, periksa apakah konfigurasi values.yaml sudah benar dan apakah image terkait berhasil ditarik.
# Periksa status Pod. kubectl get po -n kube-system | grep loongcollector-dsSLS juga secara otomatis membuat resource berikut. Masuk ke Konsol Simple Log Service untuk melihatnya.
Jenis resource
Nama resource
Fungsi
Proyek
Nilai
projectNameyang didefinisikan dalam file values.yamlUnit manajemen resource yang mengisolasi log untuk layanan berbeda.
Kelompok mesin
k8s-group-${cluster_id}Kumpulan node pengumpul log.
PentingLoongCollector tidak akan membuat logstore bernama config-operation-log. Jika logstore dengan nama tersebut sudah ada, LoongCollector berhenti menulis log ke dalamnya.
Bagaimana log file atau output standar kontainer yang sama dapat dikumpulkan oleh beberapa konfigurasi pengumpulan secara bersamaan?
Secara default, setiap sumber log hanya dikumpulkan sekali untuk mencegah duplikasi data. Untuk mengizinkan beberapa konfigurasi mengumpulkan dari sumber yang sama, aktifkan opsi yang sesuai di pengaturan konfigurasi Logtail:
Masuk ke Konsol Simple Log Service dan buka proyek target.
Di panel navigasi, pilih
Logstores dan temukan logstore target.Klik ikon
di depan namanya untuk memperluas logstore.Klik Logtail Configurations. Di daftar konfigurasi, temukan konfigurasi Logtail target dan klik Manage Logtail Configuration di kolom Actions.
Di halaman Logtail Configurations, klik Edit dan gulir ke bawah ke bagian Input Configurations:
Untuk mengumpulkan log file teks: Aktifkan Allow File to Be Collected for Multiple Times.
Untuk mengumpulkan output standar kontainer: Aktifkan Allow Collection by Different Logtail Configurations.
Lampiran: Batasan ekspresi reguler untuk penyaringan kontainer
Ekspresi reguler untuk penyaringan kontainer didasarkan pada mesin RE2 Go. Mesin ini memiliki beberapa keterbatasan sintaks dibandingkan mesin lain, seperti PCRE. Perhatikan keterbatasan berikut saat menulis ekspresi reguler:
1. Perbedaan sintaks grup bernama
Go menggunakan sintaks (?P<name>...) untuk grup bernama. Tidak mendukung sintaks (?<name>...) yang digunakan di PCRE.
Contoh benar:
(?P<year>\d{4})Sintaks salah:
(?<year>\d{4})
2. Fitur ekspresi reguler yang tidak didukung
Fitur ekspresi reguler umum namun kompleks berikut tidak tersedia di RE2:
Assertion:
(?=...),(?!...),(?<=...),(?<!...)Ekspresi kondisional:
(?(condition)true|false)Pencocokan rekursif:
(?R),(?0)Referensi subprogram:
(?&name),(?P>name)Grup atomik:
(?>...)
3. Rekomendasi
Saat men-debug ekspresi reguler dengan alat seperti Regex101, pilih mode Golang (RE2) untuk memastikan kompatibilitas. Jika Anda menggunakan sintaks yang tidak didukung, plugin tidak dapat mengurai atau mencocokkan ekspresi dengan benar.