Menentukan pengaturan pengumpulan log sebagai Definisi Sumber Daya Kustom (CRD) Kubernetes menyatukan manajemen di semua 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 sumber daya: LoongCollector (Logtail) berjalan dengan prioritas tinggi `system-cluster-critical`. Jangan men-deploy-nya jika sumber daya 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): Menentukan 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): Menentukan target log. Mengirim log yang dikumpulkan ke logstore yang ditentukan.Jika proyek atau logstore tujuan belum ada, sistem akan membuatnya secara otomatis. Anda juga dapat membuat proyek dan logstore secara manual terlebih dahulu.
Konfigurasi pemrosesan umum (Opsional): Menentukan 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 pemrosesan log. Untuk fitur lainnya, lihat Plugin pemrosesan lanjutan.
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 tujuan. 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 ACK. Di panel navigasi kiri, klik Clusters.
Di halaman Clusters, klik nama kluster target untuk membuka halaman detailnya.
Di panel navigasi 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
Project
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.
Machine group
k8s-group-${cluster_id}Kumpulan node pengumpulan 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 pemilik 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 kapital, 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 memulai, 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
Project
Nilai
projectNameyang didefinisikan dalam file values.yamlUnit manajemen resource yang mengisolasi log untuk layanan berbeda.
Machine group
k8s-group-${cluster_id}Kumpulan node pengumpulan 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 kiri, pilih
dan klik +.Di halaman Create 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 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 selama 30 hari dan fitur gratis seperti transformasi data dan pengiriman. 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 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. Menentukan 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 di dalam kontainer, seperti file access.log atau app.log tradisional.
Titik awal konfigurasi pengumpulan. Menentukan 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 secara bersamaan.
Topik ini hanya menjelaskan plugin pemrosesan native yang mencakup kasus penggunaan umum pemrosesan log. Untuk informasi lebih lanjut tentang fitur lainnya, lihat Plugin pemrosesan lanjutan.
Untuk Logtail versi 2.0 dan yang lebih baru serta komponen LoongCollector, kami merekomendasikan Anda mengikuti 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.
Bidang Kunci | Contoh |
Type Jenis plugin. Atur 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. Atur 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.
Key Fields | Contoh |
Type Jenis plugin. Atur 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.
Bidang kunci | Contoh |
Type Jenis plugin. Atur 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 diekspansi. | |
IgnoreFirstConnector Menentukan apakah konektor pertama diabaikan, artinya apakah konektor ditambahkan sebelum field level atas. Nilai default: | |
ExpandArray Menentukan apakah tipe array diekspansi. 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 diekspansi. | |
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 timeout skrip. Rentang nilai: 0 hingga 10000. Satuan: milidetik. Nilai default: 1000. |
Penguraian log NGINX
Menstrukturkan konten log berdasarkan definisi di log_format, mengurai menjadi beberapa pasangan kunci-nilai. Jika konten default tidak memenuhi kebutuhan Anda, gunakan format kustom.
Field 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 di file konfigurasi log Apache, mengurai menjadi beberapa pasangan kunci-nilai.
Field kunci | Contoh |
Type Jenis plugin. Atur 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.
Field kunci | Contoh |
Type Jenis plugin. Atur ke | |
SourceKey Nama field sumber. | |
Method Metode penyembunyian. Nilai yang didukung:
| |
ReplacingString String konstan yang digunakan untuk mengganti konten sensitif. Ini wajib 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. Atur ke | |
FilterRegex Ekspresi reguler untuk mencocokkan field log. | |
FilterKey Nama field log yang dicocokkan. |
Penguraian waktu
Konfigurasikan plugin processor_parse_timestamp_native untuk mengurai field waktu dalam log dan mengatur hasil penguraian sebagai field __time__ log.
Bidang kunci | Contoh |
Type Jenis plugin. Atur ke | |
SourceKey Nama field sumber. | |
SourceFormat Format waktu. Harus persis sesuai dengan format field waktu dalam log. | |
SourceTimezone Zona waktu waktu log. 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. 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 mengatur topik.
Bidang Utama | Contoh |
TopicType Jenis topik. Nilai opsional:
| Topik kelompok mesinEkstraksi jalur fileKustom |
TopicFormat Format topik. Ini wajib 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 berbasis mesin regex RE2 di Go, yang memiliki beberapa keterbatasan dibandingkan mesin seperti PCRE. Lihat Lampiran: Batasan ekspresi reguler untuk penyaringan kontainer untuk penulisan ekspresi reguler. | |
Daftar hitam
Untuk mengecualikan file yang memenuhi kondisi tertentu, gunakan parameter berikut di bawah config.inputs dalam file YAML sesuai kebutuhan:
Detail bidang utama | 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 di 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 contohnya:
FAQ
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: Mengumpulkan 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 pemilik 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 kapital, 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 memulai, 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
Project
Nilai
projectNameyang didefinisikan dalam file values.yamlUnit manajemen resource yang mengisolasi log untuk layanan berbeda.
Machine group
k8s-group-${cluster_id}Kumpulan node pengumpulan log.
PentingLoongCollector tidak akan membuat logstore bernama config-operation-log. Jika logstore dengan nama tersebut sudah ada, LoongCollector berhenti menulis log ke dalamnya.
Bagaimana agar file log 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 berbasis 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.