Di lingkungan Kubernetes, log kontainer tersebar dan sulit dikelola secara terpusat, sehingga menyebabkan efisiensi troubleshooting rendah serta biaya operasional tinggi. Deploy LoongCollector sebagai DaemonSet dan buat konfigurasi pengumpulan di konsol Simple Log Service untuk menyatukan pengumpulan dan pemrosesan log terstruktur. Pendekatan ini meningkatkan efisiensi pengambilan log, diagnosis masalah, dan analisis observabilitas.
Skenario yang berlaku
-
Lingkungan runtime:
-
Mendukung Alibaba Cloud Container Service for Kubernetes (ACK), termasuk kluster managed maupun dedicated, serta kluster Kubernetes yang dikelola sendiri.
-
Versi Kubernetes harus 1.10.0 atau lebih baru dan mendukung
Mount propagation: HostToContainer. -
Runtime kontainer (hanya mendukung Docker dan Containerd)
-
Docker:
-
Harus memiliki izin untuk mengakses docker.sock.
-
Pengumpulan stdout hanya mendukung driver log bertipe JSON.
-
Driver penyimpanan hanya mendukung overlay dan overlay2. Untuk tipe lainnya, mount direktori log secara manual.
-
-
Containerd: Harus memiliki izin untuk mengakses containerd.sock.
-
-
-
Kebutuhan resource: LoongCollector (Logtail) berjalan dengan prioritas system-cluster-critical. Jangan deploy jika resource kluster tidak mencukupi. Jika tidak, pod yang ada di node tersebut mungkin akan di-evict.
-
CPU: Cadangkan minimal 0,1 core.
-
Memory: Komponen pengumpulan memerlukan minimal 150 MB, sedangkan komponen controller memerlukan minimal 100 MB.
-
Penggunaan aktual tergantung pada laju pengumpulan, jumlah direktori dan file yang dipantau, serta tingkat pemblokiran pengiriman. Pastikan penggunaan aktual tetap di bawah 80% dari batas.
-
-
Persyaratan izin: Akun Alibaba Cloud atau Pengguna RAM yang digunakan untuk deployment harus memiliki izin
AliyunLogFullAccess.Untuk membuat kebijakan kustom, rujuk kebijakan sistem AliyunCSManagedLogRolePolicy. Salin izinnya dan tetapkan ke Pengguna RAM atau role target untuk kontrol izin detail halus.
Alur kerja konfigurasi pengumpulan
-
Instal LoongCollector: Deploy LoongCollector dalam mode DaemonSet untuk menjalankan satu kontainer collector di setiap node kluster, mengumpulkan log dari semua kontainer di node tersebut.
Untuk mode Sidecar, lihat Kumpulkan log teks pod Kubernetes (mode Sidecar).
-
Buat Logstore: Gunakan untuk menyimpan log yang dikumpulkan.
-
Buat dan konfigurasikan aturan pengumpulan log
-
Konfigurasi global dan input: Definisikan nama konfigurasi pengumpulan dan tentukan sumber serta cakupan log.
-
Pemrosesan dan penterstrukan log: Konfigurasikan pemrosesan berdasarkan format log.
-
Log multi-baris: Berlaku ketika satu entri log mencakup beberapa baris (seperti stack exception Java atau traceback Python). Gunakan ekspresi reguler awal-baris untuk mengidentifikasi awal setiap entri log.
-
Penguraian terstruktur: Gunakan plugin parsing (seperti ekspresi reguler, delimiter, atau mode NGINX) untuk mengekstrak string mentah menjadi pasangan kunci-nilai terstruktur agar lebih mudah dikueri dan dianalisis.
-
-
Penyaringan log: Konfigurasikan daftar hitam pengumpulan dan filter konten untuk memilih log yang relevan, mengurangi transmisi dan penyimpanan data berlebihan.
-
Klasifikasi log: Gunakan topik dan penandaan untuk membedakan log dari aplikasi, kontainer, atau jalur berbeda.
-
-
Konfigurasi kueri dan analisis: Indeks teks penuh diaktifkan secara default untuk pencarian kata kunci. Aktifkan indeks bidang untuk kueri dan analisis presisi pada bidang terstruktur guna meningkatkan efisiensi pengambilan.
-
Verifikasi dan troubleshooting: Setelah konfigurasi, verifikasi keberhasilan pengumpulan log. Jika mengalami masalah seperti tidak ada data yang dikumpulkan, kegagalan heartbeat, atau error parsing, lihat Troubleshooting masalah umum.
Langkah 1: Instal LoongCollector
LoongCollector adalah agen pengumpulan log generasi berikutnya dari Alibaba Cloud Simple Log Service dan merupakan versi peningkatan dari Logtail. Keduanya tidak dapat berjalan bersamaan. Untuk menginstal Logtail sebagai gantinya, lihat Instal, jalankan, upgrade, dan uninstal Logtail.
Topik ini hanya mencakup proses instalasi dasar LoongCollector. Untuk parameter detail, lihat Instalasi dan konfigurasi. Jika LoongCollector atau Logtail sudah terinstal, lewati langkah ini dan langsung ke Langkah 2: Buat Logstore.
Jika waktu mesin host berubah saat LoongCollector (Logtail) sedang berjalan, log mungkin mengalami duplikasi atau kehilangan.
Kluster ACK
Instal LoongCollector melalui konsol Container Service. Secara default, log dikirim ke proyek Simple Log Service di bawah akun Alibaba Cloud Anda saat ini.
Login ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
-
Klik nama kluster target untuk membuka halaman detailnya.
-
Di panel navigasi kiri, klik Add-ons.
-
Beralih ke tab Logs and Monitoring. Temukan loongcollector dan klik Install.
CatatanSaat membuat kluster, Anda dapat memilih Component Configurations dan centang Enable Log Service. Anda kemudian dapat memilih untuk Create Project atau Select Project.
Setelah instalasi, Simple Log Service secara otomatis membuat resource berikut di bawah akun Anda saat ini. Anda dapat melihatnya di Konsol Simple Log Service.
Jenis resource
Nama resource
Tujuan
Project
k8s-log-${cluster_id}Unit manajemen resource yang mengisolasi log dari bisnis berbeda.
Untuk membuat proyek Anda sendiri guna manajemen resource log yang lebih fleksibel, lihat Buat proyek.
Machine group
k8s-group-${cluster_id}Kumpulan node pengumpulan log.
Logstore
config-operation-logPentingJangan hapus Logstore ini.
Menyimpan log dari komponen loongcollector-operator. Menggunakan metode penagihan yang sama dengan Logstore standar. Untuk detailnya, lihat Item penagihan untuk metode pengukuran pay-by-ingested-data. Kami menyarankan agar Anda tidak membuat konfigurasi pengumpulan di Logstore ini.
Kluster yang dikelola sendiri
-
Hubungkan ke kluster Kubernetes Anda dan jalankan perintah berikut berdasarkan wilayah:
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.sh -
Masuk ke direktori
loongcollector-custom-k8s-packagedan modifikasi file konfigurasi./loongcollector/values.yaml.# ===================== Required fields ===================== # Project name for this cluster, for example, k8s-log-custom-sd89ehdq projectName: "" # Region of the project, for example, cn-shanghai for Shanghai region: "" # Alibaba Cloud account ID of the project owner. Enclose it in quotes, for example, "123456789" aliUid: "" # Network type. Valid values: Internet (public network) and Intranet (private network). Default value: Internet. net: Internet # AccessKey ID and AccessKey secret of the Alibaba Cloud account or RAM user. The account must have the AliyunLogFullAccess system policy. accessKeyID: "" accessKeySecret: "" # Custom cluster ID. Only letters, digits, and hyphens (-) are allowed. clusterID: "" -
Di direktori
loongcollector-custom-k8s-package, jalankan perintah berikut untuk menginstal LoongCollector dan dependensinya:bash k8s-custom-install.sh install -
Setelah instalasi, periksa status komponen.
Jika pod gagal dimulai, verifikasi bahwa konfigurasi values.yaml benar dan image terkait berhasil ditarik.
# Periksa status pod kubectl get po -n kube-system | grep loongcollector-dsSimple Log Service juga secara otomatis membuat resource berikut. Anda dapat melihatnya di Konsol Simple Log Service.
Jenis resource
Nama resource
Tujuan
Project
Nilai
projectNamedalam file values.yamlUnit manajemen resource yang mengisolasi log dari bisnis berbeda.
Untuk membuat proyek Anda sendiri guna manajemen resource log yang lebih fleksibel, lihat Buat proyek.
Machine group
k8s-group-${cluster_id}Kumpulan node pengumpulan log.
Logstore
config-operation-logPentingJangan hapus Logstore ini.
Menyimpan log dari komponen loongcollector-operator. Menggunakan metode penagihan yang sama dengan Logstore standar. Untuk detailnya, lihat Item penagihan untuk metode pengukuran pay-by-ingested-data. Kami menyarankan agar Anda tidak membuat konfigurasi pengumpulan di Logstore ini.
Langkah 2: Buat Logstore
Logstore adalah unit penyimpanan di Simple Log Service untuk menyimpan log yang dikumpulkan.
-
Login ke Konsol Simple Log Service dan klik nama proyek target.
-
Di panel navigasi kiri, pilih
dan klik + untuk membuat Logstore:-
Logstore Name: Masukkan nama unik dalam proyek. Nama ini tidak dapat diubah setelah dibuat.
-
Logstore Type: Pilih Standard atau Query sesuai kebutuhan Anda.
-
Billing Mode:
-
Pay-by-feature (Cannot Be Changed): Biaya didasarkan pada resource individual seperti penyimpanan, pengindeksan, dan operasi baca/tulis. Cocok untuk skenario skala kecil atau saat penggunaan fitur belum pasti.
-
Pay-by-ingested-data: Biaya hanya berdasarkan data mentah yang diingesti. Termasuk penyimpanan gratis selama 30 hari dan fitur transformasi serta pengiriman data gratis. Cocok untuk skenario bisnis dengan periode penyimpanan mendekati 30 hari atau pipeline pemrosesan data kompleks.
-
-
Data Retention Period: Atur jumlah hari untuk menyimpan log (1–3650 hari; 3650 berarti retensi permanen). Default-nya adalah 30 hari.
-
Biarkan pengaturan lainnya pada nilai default dan klik OK. Untuk informasi lebih lanjut tentang pengaturan lainnya, lihat Kelola Logstore.
-
Langkah 3: Buat dan konfigurasikan aturan pengumpulan log
Definisikan log mana yang dikumpulkan oleh LoongCollector, cara mengurai strukturnya, cara menyaring kontennya, dan ikat konfigurasi ke machine group yang terdaftar.
-
Di halaman
Logstore, klik ikon
sebelum nama Logstore target untuk memperluas. -
Klik Import Data di sebelah ikon
, dan di kotak dialog Quick Data Import, pilih templat ingesti berdasarkan sumber log Anda dan klik Integrate Now:-
Stdout kontainer: Pilih K8s-Stdout-New
Dua templat tersedia untuk pengumpulan stdout kontainer: baru dan lama. Kami merekomendasikan menggunakan templat baru. Untuk perbedaan antar versi, lihat Lampiran: Perbandingan versi stdout kontainer baru dan lama.
-
Log teks kluster: Pilih Kubernetes-File
-
-
Konfigurasikan Machine Group Configurations dan klik Next:
-
Scenario: Pilih Docker Containers.
-
Mode deployment: Pilih ACK Daemonset atau Self-managed Cluster in DaemonSet Mode.
-
Di Source Machine Group, tambahkan machine group default
k8s-group-${cluster_id}ke Applied Machine Group di sisi kanan.
-
-
Di halaman Logtail Configuration, lengkapi pengaturan berikut dan klik Next.
1. Konfigurasi global dan input
Sebelum mengonfigurasi, pastikan Anda telah memilih templat ingesti data dan mengikat machine group. Langkah ini mendefinisikan nama konfigurasi pengumpulan, sumber log, dan cakupan pengumpulan.
Kumpulkan stdout kontainer
Global Configurations
-
Configuration Name: Masukkan nama konfigurasi pengumpulan kustom yang harus unik dalam proyeknya. Setelah dibuat, tidak dapat dimodifikasi. Aturan penamaan:
-
Hanya huruf kecil, angka, tanda hubung (-), dan garis bawah (_) yang diizinkan.
-
Harus dimulai dan diakhiri dengan huruf kecil atau angka.
-
Konfigurasi input
-
Pilih untuk mengaktifkan Stdout and Stderr atau Standard Error (keduanya diaktifkan secara default).
PentingKami menyarankan untuk tidak mengaktifkan output standar dan error standar secara bersamaan karena dapat menyebabkan kebingungan log.
Kumpulkan log teks kluster
Global Configurations:
-
Configuration Name: Masukkan nama konfigurasi pengumpulan kustom yang harus unik dalam proyeknya. Setelah dibuat, tidak dapat dimodifikasi. Aturan penamaan:
-
Hanya huruf kecil, angka, tanda hubung (-), dan garis bawah (_) yang diizinkan.
-
Harus dimulai dan diakhiri dengan huruf kecil atau angka.
-
Input Configurations:
-
File Path Type:
-
Path in Container: Kumpulkan file log di dalam kontainer.
-
Host Path: Kumpulkan log layanan lokal dari mesin host.
-
-
File Path: Jalur absolut untuk pengumpulan log.
-
Linux: Dimulai dengan "/", contohnya
/data/mylogs/**/*.log, yang merepresentasikan semua file dengan ekstensi .log di direktori/data/mylogs. -
Windows: Dimulai dengan huruf drive, contohnya
C:\Program Files\Intel\**\*.Log.
-
-
Maximum Directory Monitoring Depth: Kedalaman direktori maksimum yang dicocokkan oleh karakter wildcard
**di File Path. Nilai default: 0 (hanya level saat ini). Nilai valid: 0 hingga 1000.Kami menyarankan agar Anda mengatur nilai ini ke 0 dan mengonfigurasi jalur ke direktori yang berisi file tersebut.
2. Pemrosesan dan penterstrukan log
Konfigurasikan aturan pemrosesan log untuk mengonversi log mentah tak terstruktur menjadi data terstruktur yang dapat dicari. Ini meningkatkan efisiensi kueri dan analisis log. Tambahkan sampel log sebelum mengonfigurasi:
Di halaman Logtail Configuration, buka bagian Processor Configurations. Klik Add Sample Log dan masukkan konten log yang ingin Anda kumpulkan. Sistem menggunakan sampel ini untuk mendeteksi format log dan membantu menghasilkan ekspresi reguler serta aturan parsing, mengurangi kompleksitas konfigurasi.
Skenario 1: Pemrosesan log multi-baris (seperti log stack trace Java)
Log seperti stack trace exception Java atau JSON sering kali mencakup beberapa baris. Dalam mode pengumpulan default, log tersebut dipecah menjadi beberapa catatan tidak lengkap, kehilangan informasi kontekstual. Aktifkan mode pengumpulan multi-baris dan konfigurasikan ekspresi reguler awal-baris untuk menggabungkan baris berurutan dari entri log yang sama menjadi satu log lengkap.
Contoh:
|
Log mentah tanpa pemrosesan |
Mode pengumpulan default memperlakukan setiap baris sebagai log terpisah. Informasi stack trace terfragmentasi, kehilangan konteks. |
Mode multi-baris diaktifkan. Ekspresi reguler awal-baris mengidentifikasi log lengkap, mempertahankan struktur semantik penuh. |
|
|
|
|
Langkah konfigurasi: Di halaman Logtail Configuration, buka bagian Processor Configurations dan aktifkan Multi-line Mode:
-
Type: Pilih Custom atau Multi-line JSON.
-
Custom: Gunakan ini ketika format log mentah bervariasi. Konfigurasikan Regex to Match First Line untuk mengidentifikasi baris pertama setiap entri log.
-
Regex to Match First Line: Anda dapat menghasilkan otomatis atau memasukkan ekspresi reguler secara manual yang mencocokkan seluruh baris. Misalnya, dalam skenario sebelumnya, ekspresi reguler yang cocok adalah
\[\d+-\d+-\w+:\d+:\d+,\d+]\s\[\w+]\s.*.-
Hasilkan otomatis: Klik Auto-generate regular expression. Di kotak teks Log Sample, pilih konten log untuk diekstrak dan klik Generate Regex.
-
Input manual: Klik Manually enter regular expression, masukkan ekspresi Anda, lalu klik Validate.
-
-
-
Multi-line JSON: Pilih ini ketika semua log mentah menggunakan format JSON standar. Simple Log Service secara otomatis menangani jeda baris dalam entri log JSON individual.
-
-
Processing Method If Splitting Fails:
-
Discard: Buang teks apa pun yang gagal mencocokkan aturan awal-baris.
-
Retain Single Line: Pisahkan dan simpan teks yang tidak cocok menggunakan mode baris tunggal aslinya.
-
Skenario 2: Log terstruktur
Ketika log mentah berupa teks tak terstruktur atau semi-terstruktur—seperti log akses NGINX atau log output aplikasi—mengkueri dan menganalisisnya secara langsung tidak efisien. Simple Log Service menyediakan berbagai plugin parsing yang secara otomatis mengonversi log mentah berbagai format menjadi data terstruktur, menciptakan fondasi kuat untuk analisis, pemantauan, dan peringatan selanjutnya.
Contoh:
|
Log mentah tanpa pemrosesan |
Log terurai terstruktur |
|
|
Langkah konfigurasi: Di halaman Logtail Configuration, buka bagian Processor Configurations.
-
Tambahkan plugin parsing: Klik Add Processor dan konfigurasikan plugin seperti Regex Parse, Delimiter Parse, atau JSON Parse berdasarkan format log Anda. Untuk mengumpulkan log NGINX, pilih .
-
NGINX Log Configuration: Salin definisi
log_formatdari file konfigurasi server NGINX Anda (nginx.conf) dan tempelkan persis seperti aslinya ke kotak teks ini.Contoh:
log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$request_time $request_length ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent"';PentingDefinisi format di sini harus persis sama dengan format yang digunakan server untuk menghasilkan log. Jika tidak, parsing log akan gagal.
-
Deskripsi parameter konfigurasi umum: Parameter berikut muncul di banyak plugin parsing dan bekerja konsisten di seluruhnya.
-
Source field: Menentukan nama bidang yang akan diurai. Default-nya adalah
content, yang merepresentasikan seluruh entri log yang dikumpulkan. -
Keep source field on parse failure: Disarankan. Jika log tidak dapat diurai berhasil (misalnya, karena ketidakcocokan format), opsi ini memastikan konten log asli dipertahankan utuh di bidang sumber yang ditentukan.
-
Keep source field on parse success: Saat dipilih, konten log asli tetap ada bahkan setelah parsing berhasil.
-
3. Penyaringan log
Mengumpulkan volume besar log bernilai rendah atau tidak relevan—seperti log level DEBUG atau INFO—tanpa diskriminasi membuang resource penyimpanan, meningkatkan biaya, mengurangi efisiensi kueri, dan memperkenalkan risiko kebocoran data. Gunakan kebijakan penyaringan detail halus untuk mencapai pengumpulan log yang efisien dan aman.
Kurangi biaya dengan penyaringan berbasis konten
Saring log berdasarkan nilai bidang—misalnya, kumpulkan hanya log di mana bidang level adalah WARNING atau ERROR.
Contoh:
|
Log mentah tanpa pemrosesan |
Kumpulkan hanya log |
|
|
Langkah konfigurasi: Di halaman Logtail Configuration, buka bagian Processor Configurations.
Klik Add Processor dan pilih :
-
Field Name: Bidang log yang akan disaring.
-
Field Value: Ekspresi reguler untuk penyaringan. Hanya pencocokan teks penuh yang didukung—bukan pencocokan kata kunci parsial.
Kontrol cakupan pengumpulan dengan daftar hitam
Gunakan daftar hitam untuk mengecualikan direktori atau file tertentu, mencegah log tidak relevan atau sensitif diunggah.
Langkah konfigurasi: Di halaman Logtail Configuration, buka . Aktifkan Collection Blacklist dan klik Add.
Mendukung pencocokan eksak dan wildcard untuk nama direktori dan file. Karakter wildcard hanya mendukung tanda bintang (*) dan tanda tanya (?).
-
File Path Blacklist: Jalur file yang diabaikan selama pengumpulan. Contoh:
-
/home/admin/private*.log: Mengabaikan semua file di bawah/home/admin/yang dimulai dengan "private" dan diakhiri dengan ".log". -
/home/admin/private*/*_inner.log: Mengabaikan file yang diakhiri dengan "_inner.log" di dalam subdirektori apa pun di bawah/home/admin/yang dimulai dengan "private".
-
-
File Blacklist: Nama file yang diabaikan selama pengumpulan. Contoh:
-
app_inner.log: Mengabaikan semua file bernamaapp_inner.log.
-
-
Directory Blacklist: Jalur direktori tidak boleh diakhiri dengan garis miring (/). Contoh:
-
/home/admin/dir1/: Entri daftar hitam direktori ini tidak akan berlaku. -
/home/admin/dir*: Mengabaikan semua file di bawah subdirektori di/home/admin/yang dimulai dengan "dir". -
/home/admin/*/dir: Mengabaikan semua file di bawah subdirektori bernama "dir" di level kedua di bawah/home/admin/. Misalnya, file di bawah/home/admin/a/dirdiabaikan, tetapi file di bawah/home/admin/a/b/dirdikumpulkan.
-
Penyaringan kontainer
Tetapkan kondisi pengumpulan berdasarkan metadata kontainer—seperti variabel lingkungan, label pod, namespace, dan nama kontainer—untuk mengontrol secara tepat log kontainer mana yang dikumpulkan.
Langkah konfigurasi: Di halaman Logtail Configuration, buka bagian Input Configurations. Aktifkan Container Filtering dan klik Add.
Beberapa kondisi menggunakan hubungan AND. Semua pencocokan ekspresi reguler menggunakan mesin RE2 Go, yang memiliki fitur lebih sedikit daripada mesin seperti PCRE. Ikuti panduan di Lampiran: Batasan penggunaan ekspresi reguler (penyaringan kontainer) saat menulis ekspresi reguler.
-
Daftar hitam/putih variabel lingkungan: Tentukan kondisi variabel lingkungan untuk kontainer yang akan dikumpulkan.
-
Daftar hitam/putih label pod Kubernetes: Tentukan kondisi label untuk pod yang berisi kontainer yang akan dikumpulkan.
-
Pencocokan regex nama pod Kubernetes: Tentukan kontainer yang akan dikumpulkan berdasarkan nama pod.
-
Pencocokan regex namespace Kubernetes: Tentukan kontainer yang akan dikumpulkan berdasarkan nama namespace.
-
Pencocokan regex nama kontainer Kubernetes: Tentukan kontainer yang akan dikumpulkan berdasarkan nama kontainer.
-
Daftar hitam/putih label kontainer: Kumpulkan kontainer yang labelnya memenuhi kondisi yang ditentukan. Gunakan ini untuk skenario Docker. Jangan gunakan untuk skenario Kubernetes.
4. Kategorisasi log
Ketika beberapa aplikasi atau instans berbagi format log yang sama, sulit membedakan sumber log. Hal ini menyebabkan hilangnya konteks selama kueri dan analisis tidak efisien. Konfigurasikan topik log dan penandaan untuk secara otomatis mengasosiasikan konteks dan mengkategorikan log secara logis.
Konfigurasikan topik log
Ketika beberapa aplikasi atau instans menghasilkan log dengan format identik tetapi jalur berbeda—seperti /apps/app-A/run.log dan /apps/app-B/run.log—log yang dikumpulkan menjadi tidak dapat dibedakan. Dalam kasus ini, hasilkan topik berdasarkan machine group, nama kustom, atau ekstraksi jalur file untuk secara fleksibel membedakan log berdasarkan sumber bisnis atau jalur.
Langkah konfigurasi: Buka dan pilih metode pembuatan topik. Tiga jenis didukung:
-
Topik machine group: Saat menerapkan konfigurasi pengumpulan ke beberapa machine groups, LoongCollector secara otomatis menggunakan nama machine group sebagai bidang
__topic__. Gunakan ini untuk skenario di mana log dibagi berdasarkan kluster host. -
Custom: Formatnya adalah
customized://<custom topic name>, misalnyacustomized://app-login. Gunakan ini untuk skenario topik statis dengan pengenal bisnis tetap. -
Ekstraksi jalur file: Ekstrak informasi kunci dari jalur lengkap file log untuk memberi tag sumber log secara dinamis. Gunakan ini ketika beberapa pengguna atau aplikasi berbagi nama file log yang sama tetapi menggunakan jalur berbeda.
Ketika beberapa pengguna atau layanan menulis log ke direktori tingkat atas berbeda tetapi menggunakan subjalur dan nama file identik, nama file saja tidak dapat membedakan sumber. Misalnya:
/data/logs ├── userA │ └── serviceA │ └── service.log ├── userB │ └── serviceA │ └── service.log └── userC └── serviceA └── service.logDalam kasus ini, konfigurasikan File Path Extraction dan gunakan ekspresi reguler untuk mengekstrak informasi kunci dari jalur lengkap. Hasil pencocokan menjadi topik log yang diunggah ke Logstore.
Aturan ekstraksi: Grup penangkapan dalam ekspresi reguler
Saat mengonfigurasi ekspresi reguler, sistem secara otomatis menentukan format bidang output berdasarkan jumlah dan penamaan grup penangkapan, sebagai berikut:
Dalam ekspresi reguler jalur file, escape garis miring (/).
Jenis grup penangkap
Kasus penggunaan
Bidang yang dihasilkan
Contoh Regex
Contoh jalur yang cocok
Bidang yang dihasilkan
Grup penangkapan tunggal (hanya satu
(.*?))Hanya memerlukan satu dimensi untuk membedakan sumber (seperti username atau lingkungan)
Menghasilkan bidang
__topic__\/logs\/(.*?)\/app\.log/logs/userA/app.log__topic__: userABeberapa grup penangkapan—tidak bernama (beberapa
(.*?))Memerlukan beberapa dimensi tetapi tanpa label semantik
Menghasilkan bidang tag
__tag__:__topic_{i}__, di mana{i}adalah nomor grup penangkapan\/logs\/(.*?)\/(.*?)\/app\.log/logs/userA/svcA/app.log__tag__:__topic_1__userA.__tag__:__topic_2__svcABeberapa grup penangkapan—bernama (menggunakan
(?P<name>.*?))Memerlukan beberapa dimensi dengan makna bidang yang jelas untuk memudahkan kueri dan analisis
Menghasilkan bidang tag
__tag__:{name}\/logs\/(?P<user>.*?)\/(?P<service>.*?)\/app\.log/logs/userA/svcA/app.log__tag__:user:userA.__tag__:service:svcA
Penandaan log
Aktifkan pengayaan tag log untuk mengekstrak informasi kunci dari variabel lingkungan kontainer atau label pod Kubernetes dan melampirkannya sebagai tag untuk pengelompokan log detail halus.
Langkah konfigurasi: Di halaman Logtail Configuration, buka bagian Input Configurations. Aktifkan Log Tag Enrichment dan klik Add.
-
Environment Variables: Konfigurasikan nama variabel lingkungan dan nama tag. Nilai variabel lingkungan akan disimpan di bawah nama tag.
-
Nama variabel lingkungan: Nama variabel lingkungan yang akan diekstrak.
-
Nama tag: Nama tag variabel lingkungan.
-
-
Pod Labels: Konfigurasikan nama label pod dan nama tag. Nilai label pod akan disimpan di bawah nama tag.
-
Nama label pod: Nama label pod Kubernetes yang akan diekstrak.
-
Nama tag: Nama tag.
-
5. Konfigurasi output
Secara default, semua log dikirim ke Logstore saat ini menggunakan kompresi lz4. Untuk mendistribusikan log dari sumber yang sama ke Logstore berbeda, ikuti langkah-langkah berikut:
Distribusi dinamis multi-tujuan
-
Pengiriman multi-tujuan hanya didukung di LoongCollector versi 3.0.0 atau lebih baru. Logtail tidak mendukungnya.
-
Anda dapat mengonfigurasi hingga lima tujuan output.
-
Setelah mengonfigurasi beberapa tujuan output, konfigurasi pengumpulan ini tidak lagi muncul di daftar konfigurasi pengumpulan Logstore saat ini. Untuk melihat, memodifikasi, atau menghapus konfigurasi distribusi multi-tujuan, lihat Bagaimana cara mengelola konfigurasi distribusi multi-tujuan?.
Langkah konfigurasi: Di halaman Logtail Configuration, buka bagian Output Configurations.
-
Klik
untuk memperluas konfigurasi output. -
Klik Add Output Targets dan lengkapi pengaturan berikut:
-
Logstores: Pilih Logstore target.
-
Compression Method: Mendukung lz4 dan zstd.
-
Route Settings: Rute log berdasarkan bidang tag. Log yang cocok dengan konfigurasi routing diunggah ke Logstore target. Konfigurasi routing kosong berarti semua log yang dikumpulkan diunggah ke Logstore target.
-
Tag Name: Nama bidang tag yang digunakan untuk routing. Masukkan nama bidang secara langsung (misalnya,
__path__) tanpa awalan__tag__:. Bidang tag terbagi menjadi dua kategori:Untuk informasi lebih lanjut tentang tag, lihat Kelola tag pengumpulan LoongCollector.
-
Terkait agen: Terkait dengan agen pengumpulan itu sendiri dan independen dari plugin. Contoh termasuk
__hostname__dan__user_defined_id__. -
Terkait plugin input: Disediakan oleh plugin input dan diperkaya ke dalam log. Contoh termasuk
__path__untuk pengumpulan file, dan_pod_name_dan_container_name_untuk pengumpulan Kubernetes.
-
-
Tag Value: Log yang nilai bidang tagnya cocok dengan nilai ini dikirim ke Logstore target.
-
Discard this tag?: Saat diaktifkan, log yang diunggah tidak menyertakan bidang tag ini.
-
-
Langkah 4: Konfigurasi Kueri dan Analisis
Setelah mengonfigurasi pemrosesan log dan plugin, klik Next untuk masuk ke halaman Query and Analysis Configurations:
-
Sistem mengaktifkan indeks teks penuh secara default. Ini mendukung pencarian kata kunci pada konten log mentah.
-
Untuk melakukan kueri tepat berdasarkan bidang, setelah Preview Data dimuat di halaman, klik Automatic Index Generation. Simple Log Service menghasilkan indeks bidang berdasarkan entri pertama dalam data pratinjau.
Setelah menyelesaikan konfigurasi, klik Next untuk menyelesaikan pengaturan seluruh proses pengumpulan.
Langkah 5: Validasi dan troubleshooting
Setelah Anda membuat konfigurasi pengumpulan dan menerapkannya ke machine group, sistem secara otomatis menerapkan konfigurasi dan mulai mengumpulkan log inkremental.
Lihat log yang dilaporkan
-
Konfirmasi bahwa konten baru ditambahkan ke file log: LoongCollector hanya mengumpulkan log inkremental. Jalankan perintah
tail -f /path/to/your/log/filedan picu operasi bisnis untuk memastikan log baru sedang ditulis. -
Kueri log: Buka halaman kueri dan analisis LogStore tujuan. Klik Search & Analyze. Rentang waktu default adalah 15 menit terakhir. Periksa apakah log baru diingesti. Secara default, setiap log teks kontainer yang dikumpulkan berisi bidang berikut:
Nama bidang
Deskripsi
__tag__:__hostname__
Nama host kontainer.
__tag__:__path__
Jalur file log di dalam kontainer.
__tag__:_container_ip_
Alamat IP kontainer.
__tag__:_image_name_
Nama image yang digunakan kontainer.
__tag__:_pod_name_
Nama pod.
__tag__:_namespace_
Namespace tempat pod berada.
__tag__:_pod_uid_
Pengenal unik (UID) pod.
Memecahkan masalah umum
Heartbeat machine group tidak normal
-
Periksa identitas pengguna: Jika jenis server Anda bukan ECS, atau jika instans ECS dan proyek milik akun Alibaba Cloud berbeda, periksa apakah identitas pengguna yang benar ada di direktori yang ditentukan.
-
Linux: Jalankan perintah
cd /etc/ilogtail/users/ && touch <uid>untuk membuat file identitas pengguna. -
Windows: Buka direktori
C:\LogtailData\users\dan buat file kosong bernama<uid>.
Jika file bernama dengan ID akun Alibaba Cloud proyek ada di jalur yang ditentukan, identitas pengguna dikonfigurasi dengan benar.
-
-
Periksa identitas machine group: Jika Anda menggunakan machine group berbasis pengenal kustom, periksa apakah file bernama
user_defined_idada di direktori yang ditentukan. Jika file ada, periksa apakah isi file sama dengan ID kustom yang dikonfigurasi untuk machine group.-
Linux:
# Konfigurasikan ID kustom. Jika direktori tidak ada, buat secara manual. echo "user-defined-1" > /etc/ilogtail/user_defined_id -
Windows: Di direktori
C:\LogtailData, buat file bernamauser_defined_iddan tulis ID kustom ke file tersebut. Jika direktori tidak ada, buat secara manual.
-
-
Jika identitas pengguna dan identitas machine group dikonfigurasi dengan benar, lihat Troubleshoot masalah machine group LoongCollector (Logtail) untuk informasi lebih lanjut.
Terjadi error pengumpulan log atau error format
Troubleshooting: Masalah ini menunjukkan bahwa konektivitas jaringan dan konfigurasi dasar normal. Masalah disebabkan oleh ketidakcocokan antara konten log dan aturan parsing. Lihat pesan error spesifik untuk mengidentifikasi penyebab masalah:
-
Di halaman Logtail Configuration, klik nama konfigurasi LoongCollector (Logtail) yang tidak normal. Di tab Log Collection Error, klik Select Time Range untuk mengatur rentang waktu kueri.
-
Di bagian , lihat metrik alarm log error dan temukan solusi berdasarkan informasi di Error umum selama pengumpulan data.
Langkah selanjutnya
-
Visualisasi data: Pantau tren metrik utama menggunakan dasbor visualisasi.
-
Peringatan anomali otomatis: Tetapkan kebijakan peringatan untuk mendeteksi anomali sistem secara real-time.
Troubleshoot data log kontainer yang hilang
-
Periksa entri log baru. Setelah Anda mengonfigurasi Logtail untuk mengumpulkan log, Logtail tidak mengumpulkan file log kecuali entri log baru ditambahkan ke dalamnya.
FAQ
Kelola Konfigurasi Distribusi Multi-Tujuan
Karena konfigurasi distribusi multi-tujuan dikaitkan dengan beberapa Logstore, kelola konfigurasi ini di halaman manajemen tingkat Proyek:
-
Login ke Konsol Simple Log Service. Kemudian, klik nama Proyek target.
-
Di halaman Proyek target, klik
di panel navigasi kiri.CatatanHalaman ini mengelola secara terpusat semua konfigurasi pengumpulan di bawah Proyek, termasuk yang tetap ada karena Logstore dihapus secara tidak sengaja.
Transfer Log Kluster ACK ke Proyek di Akun Alibaba Cloud Lain
Instal secara manual komponen Simple Log Service LoongCollector (Logtail) di kluster ACK. Kemudian, konfigurasikan ID akun root atau kredensial akses (AccessKey) akun tujuan. Ini mengirim log kontainer ke Proyek Simple Log Service di akun Alibaba Cloud lain.
Skenario: Saat Anda perlu mengumpulkan data log dari kluster ACK ke Proyek Simple Log Service independen di akun Alibaba Cloud lain karena struktur organisasi, isolasi izin, atau persyaratan pemantauan terpadu, instal LoongCollector (Logtail) secara manual untuk konfigurasi cross-account.
Prosedur: Prosedur ini menggunakan instalasi manual LoongCollector sebagai contoh. Untuk informasi tentang cara menginstal Logtail, lihat Instalasi dan Konfigurasi Logtail.
-
Hubungkan ke kluster Kubernetes Anda dan jalankan perintah yang sesuai berdasarkan wilayah:
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.sh -
Masuk ke direktori
loongcollector-custom-k8s-packagedan modifikasi file konfigurasi./loongcollector/values.yaml.# ===================== Required fields ===================== # Project name for this cluster, for example, k8s-log-custom-sd89ehdq projectName: "" # Region of the project, for example, cn-shanghai for Shanghai region: "" # Alibaba Cloud account ID of the project owner. Enclose it in quotes, for example, "123456789" aliUid: "" # Network type. Valid values: Internet (public network) and Intranet (private network). Default value: Internet. net: Internet # AccessKey ID and AccessKey secret of the Alibaba Cloud account or RAM user. The account must have the AliyunLogFullAccess system policy. accessKeyID: "" accessKeySecret: "" # Custom cluster ID. Only letters, digits, and hyphens (-) are allowed. clusterID: "" -
Di direktori
loongcollector-custom-k8s-package, jalankan perintah berikut untuk menginstal LoongCollector dan dependensinya:bash k8s-custom-install.sh install -
Setelah instalasi, periksa status komponen.
Jika pod gagal dimulai, verifikasi bahwa konfigurasi values.yaml benar dan image terkait berhasil ditarik.
# Periksa status pod kubectl get po -n kube-system | grep loongcollector-dsSimple Log Service juga secara otomatis membuat resource berikut. Anda dapat melihatnya di Konsol Simple Log Service.
Jenis resource
Nama resource
Tujuan
Project
Nilai
projectNamedalam file values.yamlUnit manajemen resource yang mengisolasi log dari bisnis berbeda.
Untuk membuat proyek Anda sendiri guna manajemen resource log yang lebih fleksibel, lihat Buat proyek.
Machine group
k8s-group-${cluster_id}Kumpulan node pengumpulan log.
Logstore
config-operation-logPentingJangan hapus Logstore ini.
Menyimpan log dari komponen loongcollector-operator. Menggunakan metode penagihan yang sama dengan Logstore standar. Untuk detailnya, lihat Item penagihan untuk metode pengukuran pay-by-ingested-data. Kami menyarankan agar Anda tidak membuat konfigurasi pengumpulan di Logstore ini.
Izinkan Beberapa Konfigurasi Pengumpulan untuk Mengumpulkan File Log atau Standard Output Kontainer yang Sama
Secara default, untuk mencegah duplikasi data, Simple Log Service membatasi setiap sumber log hanya dikumpulkan oleh satu konfigurasi pengumpulan:
-
File log teks hanya dapat cocok dengan satu konfigurasi pengumpulan Logtail.
-
Standard output (stdout) kontainer:
-
Jika Anda menggunakan templat standard output baru, hanya satu konfigurasi pengumpulan standard output yang dapat mengumpulkannya secara default.
-
Jika Anda menggunakan templat standard output lama, tidak diperlukan konfigurasi tambahan. Mendukung pengumpulan beberapa salinan secara default.
-
-
Login ke Konsol Simple Log Service. Buka Proyek target.
-
Di panel navigasi kiri, pilih
Logstore. Temukan Logstore target. -
Klik
sebelum namanya untuk memperluas Logstore. -
Klik Logtail Configuration. Di daftar konfigurasi, temukan konfigurasi Logtail target. Kemudian, klik Manage Logtail Configuration di kolom Actions.
-
Di halaman Logtail Configuration, klik Edit. Gulir ke bawah ke bagian Input Configurations:
-
Untuk mengumpulkan log file teks, aktifkan Allow File to Be Collected for Multiple Times.
-
Untuk mengumpulkan standard output kontainer, aktifkan Allow Collection by Different Logtail Configurations.
-
Dependency Error Saat Menguninstal Komponen loongcollector (logtail-ds) di ACK
Deskripsi Masalah: Saat Anda mencoba menghapus komponen pengumpulan log loongcollector (logtail-ds) di Container Service for Kubernetes (ACK), sistem melaporkan error: The dependencies of this component are not met.
Dependencies of addons are not met: terway-eniip depends on logtail-ds(>0.0) whose version is v3.x.x.x-aliyun or will be v3.x.x.x-aliyun.
Penyebab: Plugin jaringan terway-eniip mengaktifkan fitur pengumpulan log. Plugin ini bergantung pada komponen loongcollector (logtail-ds). Oleh karena itu, ACK tidak mengizinkan Anda menguninstal loongcollector (logtail-ds) secara langsung sebelum menghapus dependensi ini.
Solusi: Ikuti langkah-langkah berikut untuk menghapus dependensi dan kemudian menguninstal komponen:
-
Login ke Konsol Container Service for Kubernetes.
-
Di daftar kluster, klik nama kluster target. Buka halaman detail kluster.
-
Di panel navigasi kiri, klik Add-ons.
-
Di daftar komponen, cari dan temukan komponen
terway-eniip. Klik . -
Di kotak dialog yang muncul, klik OK.
-
Setelah konfigurasi berlaku, coba uninstal komponen loongcollector (logtail-ds) lagi.
Mengapa Segmen Log Terakhir Dilaporkan dengan Penundaan Panjang dan Kadang Terpotong?
Analisis Penyebab: Pemotongan log biasanya terjadi ketika file log tidak memiliki line feed di akhir atau ketika log multi-baris (seperti stack exception) belum ditulis sepenuhnya. Karena collector data tidak dapat menentukan apakah log telah berakhir, segmen konten terakhir mungkin dipotong lebih awal atau dilaporkan dengan penundaan. Versi LoongCollector (Logtail) yang berbeda memiliki mekanisme pemrosesan berbeda:
-
Versi sebelum 1.8:
Jika baris log terakhir tidak memiliki line feed (carriage return) atau segmen log multi-baris tidak lengkap, collector data menunggu tulisan berikutnya untuk memicu output. Hal ini dapat menyebabkan entri log terakhir tetap tidak terkirim untuk waktu yang lama hingga log baru ditulis. -
Versi 1.8 dan lebih baru:
Mekanisme refresh timeout diperkenalkan untuk mencegah log macet. Saat baris log yang tidak lengkap terdeteksi, sistem memulai timer. Setelah timeout, sistem secara otomatis mengirimkan konten saat ini untuk memastikan log akhirnya dikumpulkan.-
Timeout default: 60 detik (memastikan kelengkapan dalam sebagian besar skenario)
-
Sesuaikan nilai ini sesuai kebutuhan. Namun, jangan atur ke 0. Jika tidak, log mungkin terpotong atau beberapa konten hilang.
-
Solusi:
Anda dapat memperpanjang waktu tunggu untuk memastikan log lengkap ditulis sebelum dikumpulkan:
-
Login ke Konsol Simple Log Service. Buka Proyek target.
-
Di panel navigasi kiri, pilih
Logstore. Temukan Logstore target. -
Klik
sebelum namanya untuk memperluas Logstore. -
Klik Logtail Configuration. Di daftar konfigurasi, temukan konfigurasi Logtail target. Kemudian, klik Manage Logtail Configuration di kolom Actions.
-
Di halaman Logtail Configuration, klik Edit:
-
Pilih . Tambahkan konfigurasi JSON berikut untuk menyesuaikan timeout:
{ "FlushTimeoutSecs": 1 }-
Nilai default: Ditentukan oleh parameter startup
default_reader_flush_timeout(biasanya beberapa detik). -
Unit: detik.
-
Nilai yang disarankan: ≥1 detik. Jangan atur ke 0. Jika tidak, log mungkin terpotong atau beberapa konten hilang.
-
-
-
Setelah konfigurasi selesai, klik OK.
Mengapa LoongCollector (Logtail) Beralih dari Nama Domain Jaringan Pribadi ke Jaringan Publik Selama Runtime? Dapatkah Ia Secara Otomatis Beralih Kembali?
Selama runtime LoongCollector (Logtail), jika sistem mendeteksi komunikasi nama domain jaringan pribadi tidak normal (seperti jaringan tidak tersedia atau timeout koneksi), sistem secara otomatis beralih ke nama domain jaringan publik untuk mengirim data. Hal ini memastikan kelangsungan dan keandalan pengumpulan log serta mencegah akumulasi atau kehilangan log.
-
LoongCollector: Setelah jaringan pribadi pulih, sistem secara otomatis beralih kembali ke jaringan pribadi.
-
Logtail: Tidak secara otomatis beralih kembali. Anda harus me-restart secara manual untuk memulihkan komunikasi jaringan pribadi.
Lampiran: Detail Plugin Native
Di bagian Processor Configurations halaman Logtail Configuration, tambahkan processor untuk menterstrukturkan log mentah. Untuk menambahkan plugin pemrosesan ke konfigurasi pengumpulan yang sudah ada, ikuti langkah-langkah berikut:
Di panel navigasi kiri, pilih
Logstore dan temukan logstore target.Klik ikon
sebelum namanya untuk memperluas logstore.Klik Logtail Configuration. Di daftar konfigurasi, temukan konfigurasi Logtail target dan klik Manage Logtail Configuration di kolom Actions.
Di halaman konfigurasi Logtail, klik Edit.
Bagian ini hanya memperkenalkan plugin pemrosesan yang umum digunakan yang mencakup kasus penggunaan pemrosesan log umum. Untuk fitur lainnya, lihat Extended processors.
Aturan menggabungkan plugin (untuk LoongCollector / Logtail 2.0 dan lebih baru):
Processor native dan extended dapat digunakan secara independen atau digabungkan sesuai kebutuhan.
Utamakan processor native karena menawarkan performa lebih baik dan stabilitas lebih tinggi.
Ketika fitur native tidak dapat memenuhi kebutuhan bisnis Anda, tambahkan processor extended setelah processor native yang dikonfigurasi untuk pemrosesan tambahan.
Batasan urutan:
Semua plugin dieksekusi secara berurutan sesuai urutan konfigurasinya, yang membentuk rantai pemrosesan. Catatan: Semua processor native harus mendahului processor extended apa pun. Setelah Anda menambahkan processor extended, Anda tidak dapat menambahkan processor native lagi.
Parsing Ekspresi Reguler
Ekstrak bidang log menggunakan ekspresi reguler dan uraikan log menjadi pasangan kunci-nilai. Setiap bidang dapat dikueri dan dianalisis secara independen.
Contoh:
|
Log mentah tanpa pemrosesan |
Menggunakan plugin Parsing Ekspresi Reguler |
|
|
Langkah konfigurasi: Di area Logtail Configuration pada halaman Processor Configurations, klik Add Processor, dan pilih :
-
Regular Expression: Mencocokkan log. Mendukung pembuatan otomatis atau input manual:
-
Pembuatan otomatis:
-
Klik Generate Regular Expression automatically.
-
Pilih konten log untuk diekstrak di Log Sample.
-
Klik Generate Regular Expression.

-
-
Input manual: Manually enter a regular expression berdasarkan format log.
Setelah konfigurasi, klik Validate untuk menguji apakah ekspresi reguler mengurai konten log dengan benar.
-
-
Extracted Field: Atur nama bidang yang sesuai (Key) untuk konten log yang diekstrak (Value).
-
Untuk parameter lainnya, lihat deskripsi parameter konfigurasi umum di Skenario 2: Log Terstruktur.
Parsing Delimiter
Menterstrukturkan konten log menggunakan delimiter dan mengurai menjadi beberapa pasangan kunci-nilai. Mendukung delimiter karakter tunggal dan multi-karakter.
Contoh:
|
Log mentah tanpa pemrosesan |
Pisahkan bidang berdasarkan karakter yang ditentukan |
|
|
Langkah konfigurasi: Di area Logtail Configuration pada halaman Processor Configurations, klik Add Processor, dan pilih :
-
Delimiter: Tentukan karakter yang digunakan untuk memisahkan konten log.
Contoh: Untuk file CSV, pilih Custom dan masukkan koma (,).
-
Quote: Jika nilai bidang berisi delimiter, tentukan karakter quote untuk membungkus bidang dan mencegah pemisahan salah.
-
Extracted Field: Atur nama bidang yang sesuai (Key) untuk setiap kolom sesuai urutan pemisahan. Aturan sebagai berikut:
-
Nama bidang hanya boleh berisi huruf, angka, dan garis bawah (_).
-
Harus dimulai dengan huruf atau garis bawah (_).
-
Panjang maksimum: 128 byte.
-
-
Untuk parameter lainnya, lihat deskripsi parameter konfigurasi umum di Skenario 2: Log Terstruktur.
Parsing JSON Standar
Menterstrukturkan log JSON bertipe Object dan mengurai menjadi pasangan kunci-nilai.
Contoh:
|
Log mentah tanpa pemrosesan |
Ekstraksi otomatis kunci-nilai JSON standar |
|
|
Langkah konfigurasi: Di area Logtail Configuration pada halaman Processor Configurations, klik Add Processor, dan pilih :
-
Original Field: Nilai default adalah content (bidang ini menyimpan konten log mentah yang akan diurai).
-
Untuk parameter lainnya, lihat deskripsi parameter konfigurasi umum di Skenario 2: Log Terstruktur.
Parsing JSON Bersarang
Uraikan log JSON bersarang menjadi pasangan kunci-nilai dengan menentukan kedalaman ekspansi.
Contoh:
|
Log mentah tanpa pemrosesan |
Kedalaman ekspansi: 0, dan gunakan kedalaman ekspansi sebagai awalan |
Kedalaman ekspansi: 1, dan gunakan kedalaman ekspansi sebagai awalan |
|
|
|
Langkah konfigurasi: Di area Logtail Configuration pada halaman Processor Configurations, klik Add Processor, dan pilih :
-
Original Field: Nama bidang sumber untuk diekspansi, seperti
content. -
JSON Expansion Depth: Level ekspansi objek JSON. 0 berarti ekspansi penuh (default), 1 berarti level saat ini, dan seterusnya.
-
Character to Concatenate Expanded Keys: Penghubung untuk nama bidang selama ekspansi JSON. Default-nya adalah garis bawah (_).
-
Name Prefix of Expanded Keys: Tentukan awalan untuk nama bidang setelah ekspansi JSON.
-
Expand Array: Aktifkan opsi ini untuk mengekspansi array menjadi pasangan kunci-nilai berindeks.
Contoh:
{"k":["a","b"]}diekspansi menjadi{"k[0]":"a","k[1]":"b"}.Untuk mengganti nama bidang yang diekspansi (misalnya, mengubah prefix_s_key_k1 menjadi new_field_name), tambahkan plugin Rename Fields nanti untuk menyelesaikan pemetaan.
-
Untuk parameter lainnya, lihat deskripsi parameter konfigurasi umum di Skenario 2: Log Terstruktur.
Parsing Array JSON
Gunakan fungsi json_extract function untuk mengekstrak objek JSON dari array JSON.
Contoh:
|
Log mentah tanpa pemrosesan |
Ekstrak struktur array JSON |
|
|
Langkah konfigurasi: Di area Logtail Configuration pada halaman Processor Configurations, ubah Processing Method ke SPL, konfigurasikan pernyataan SPL, dan gunakan fungsi json_extract untuk mengekstrak objek JSON dari array JSON.
Contoh: Ekstrak elemen dari array JSON di bidang log content dan simpan hasilnya di bidang baru json1 dan json2, masing-masing.
* | extend json1 = json_extract(content, '$[0]'), json2 = json_extract(content, '$[1]')Penguraian Log Apache
Menterstrukturkan konten log berdasarkan definisi dalam file konfigurasi log Apache dan mengurai menjadi beberapa pasangan kunci-nilai.
Contoh:
|
Log mentah tanpa pemrosesan |
Format Log Umum Apache |
|
|
Langkah konfigurasi: Di area Logtail Configuration pada halaman Processor Configurations, klik Add Processor, dan pilih :
-
Log Format: combined
-
APACHE LogFormat Configuration: Sistem secara otomatis mengisi konfigurasi berdasarkan Log Format.
PentingVerifikasi konten yang diisi otomatis untuk memastikan persis sama dengan LogFormat yang didefinisikan dalam file konfigurasi Apache di server (biasanya terletak di /etc/apache2/apache2.conf).
-
Untuk parameter lainnya, lihat deskripsi parameter konfigurasi umum di Skenario 2: Log Terstruktur.
Masking Data
Mask data sensitif dalam log.
Contoh:
|
Log mentah tanpa pemrosesan |
Hasil masking |
|
|
Langkah konfigurasi: Di area Logtail Configuration pada halaman Processor Configurations, klik Add Processor, dan pilih :
-
Original Field: Bidang sumber yang menyimpan konten log sebelum parsing.
-
Data Masking Method:
-
const: Mengganti konten sensitif dengan string yang dimodifikasi.
-
md5: Mengganti konten sensitif dengan hash MD5-nya.
-
-
Replacement String: Saat Anda memilih Data Masking Method sebagai const, masukkan string untuk mengganti konten sensitif.
-
Content Expression that Precedes Replaced Content: Digunakan untuk menemukan konten sensitif. Konfigurasikan menggunakan sintaks RE2.
-
Content Expression to Match Replaced Content: Ekspresi untuk konten sensitif. Konfigurasikan menggunakan sintaks RE2.
Parsing Waktu
Uraikan bidang waktu dalam log dan atur hasil yang diurai sebagai bidang __time__ log.
Contoh:
|
Log mentah tanpa pemrosesan |
Parsing waktu |
|
|
Langkah konfigurasi: Di area Logtail Configuration pada halaman Processor Configurations, klik Add Processor, dan pilih :
-
Original Field: Bidang sumber yang menyimpan konten log sebelum parsing.
-
Time Format: Atur format waktu berdasarkan konten waktu dalam log. Untuk informasi lebih lanjut, lihat Format Waktu.
-
Time Zone: Pilih zona waktu bidang waktu log. Secara default, menggunakan zona waktu mesin, yaitu zona waktu lingkungan tempat proses LoongCollector (Logtail) berjalan.
Lampiran: Batasan Ekspresi Reguler (Penyaringan Kontainer)
Ekspresi reguler yang digunakan untuk penyaringan kontainer didasarkan pada mesin RE2 Go. Mesin ini memiliki beberapa batasan sintaks dibandingkan mesin lain seperti PCRE. Perhatikan hal berikut saat menulis ekspresi reguler:
1. Perbedaan sintaks grup bernama
Go menggunakan sintaks (?P<name>...) untuk mendefinisikan grup bernama. Tidak mendukung sintaks (?<name>...) yang digunakan di PCRE.
-
Contoh benar:
(?P<year>\d{4}) -
Contoh salah:
(?<year>\d{4})
2. Fitur ekspresi reguler yang tidak didukung
Fitur ekspresi reguler umum tetapi kompleks berikut tidak tersedia di RE2. Hindari penggunaannya:
-
Assertion:
(?=...),(?!...),(?<=...),(?<!...) -
Ekspresi kondisional:
(?(condition)true|false) -
Pencocokan rekursif:
(?R),(?0) -
Referensi subrutin:
(?&name),(?P>name) -
Grup atomik:
(?>...)
3. Rekomendasi penggunaan
Saat men-debug ekspresi reguler menggunakan alat seperti Regex101, pilih mode Golang (RE2) untuk validasi guna memastikan kompatibilitas. Jika sintaks yang tidak didukung di atas digunakan, plugin tidak dapat mengurai atau mencocokkan dengan benar.
Lampiran: Perbandingan versi lama dan baru standard output kontainer
Untuk meningkatkan efisiensi penyimpanan log dan konsistensi pengumpulan, format metadata log untuk standard output kontainer telah ditingkatkan. Format baru mengkonsolidasikan metadata ke bidang __tag__, yang mencapai optimasi penyimpanan dan standardisasi format.
Keunggulan inti versi standard output baru
Peningkatan performa signifikan
Direfactoring dalam C++, performa meningkat 180% hingga 300% dibandingkan implementasi Go lama.
Mendukung plugin native untuk pemrosesan data dan pemrosesan paralel multi-threading, yang sepenuhnya memanfaatkan resource sistem.
Mendukung kombinasi fleksibel plugin native dan Go untuk memenuhi persyaratan skenario kompleks.
Keandalan lebih tinggi
Mendukung antrian rotasi log standard output. Mekanisme pengumpulan log disatukan dengan mekanisme pengumpulan file, yang memberikan keandalan tinggi dalam skenario rotasi log standard output cepat.
Konsumsi resource lebih rendah
Penggunaan CPU berkurang 20% hingga 25%.
Penggunaan memory berkurang 20% hingga 25%.
Konsistensi O&M yang ditingkatkan
Parameter konfigurasi terpadu: Parameter konfigurasi plugin pengumpulan standard output baru konsisten dengan plugin pengumpulan file.
Manajemen metadata terpadu: Penamaan bidang metadata kontainer dan lokasi penyimpanan log tag disatukan dengan skenario pengumpulan file. Sisi konsumen hanya perlu mempertahankan satu set logika pemrosesan.
Perbandingan fitur versi baru dan lama
Dimensi fitur
Fitur versi lama
Fitur versi baru
Metode penyimpanan
Metadata langsung disematkan dalam konten log sebagai bidang normal.
Metadata disimpan terpusat di tag
__tag__.Efisiensi penyimpanan
Setiap log membawa metadata lengkap berulang-ulang, yang mengonsumsi lebih banyak ruang penyimpanan.
Beberapa log dalam konteks yang sama dapat menggunakan kembali metadata, yang menghemat biaya penyimpanan.
Konsistensi format
Tidak konsisten dengan format pengumpulan file kontainer.
Penamaan bidang dan struktur penyimpanan sepenuhnya selaras dengan pengumpulan file kontainer, yang memberikan pengalaman terpadu.
Metode akses kueri
Dapat dikueri langsung berdasarkan nama bidang, seperti
_container_name_.Memerlukan akses kunci-nilai yang sesuai melalui
__tag__, seperti__tag__: _container_name_.Tabel pemetaan bidang metadata kontainer
Nama bidang versi lama
Nama bidang versi baru
_container_ip_
__tag__:_container_ip_
_container_name_
__tag__:_container_name_
_image_name_
__tag__:_image_name_
_namespace_
__tag__:_namespace_
_pod_name_
__tag__:_pod_name_
_pod_uid_
__tag__:_pod_uid_
Dalam versi baru, semua bidang metadata disimpan di area tag log dalam format
__tag__:<key>, bukan disematkan dalam konten log.Dampak perubahan versi baru terhadap pengguna
Adaptasi sisi konsumen: Karena lokasi penyimpanan berubah dari "content" ke "tag", logika konsumsi log pengguna perlu disesuaikan. Misalnya, Anda harus mengakses bidang melalui __tag__ selama kueri.
Kompatibilitas SQL: SQL kueri telah secara otomatis diadaptasi untuk kompatibilitas, sehingga pengguna tidak perlu memodifikasi pernyataan kueri mereka untuk memproses log versi baru dan lama secara bersamaan.






