Deploy LoongCollector dalam mode DaemonSet dan buat konfigurasi pengumpulan di konsol SLS untuk mengkonsentrasikan pengumpulan log kontainer Kubernetes serta mengaktifkan pemrosesan terstruktur guna memungkinkan kueri dan analisis yang efisien.
Persyaratan
Lingkungan runtime
Mendukung Container Service for Kubernetes (ACK) (edisi managed dan dedicated) serta kluster Kubernetes yang dikelola sendiri.
Kubernetes 1.10.0 atau lebih baru yang mendukung
Mount propagation: HostToContainer.Runtime kontainer (hanya Docker dan Containerd)
Docker:
Memerlukan akses ke docker.sock.
Pengumpulan standard output hanya mendukung driver log JSON.
Hanya mendukung driver penyimpanan overlay dan overlay2. Untuk menggunakan jenis driver penyimpanan lain, mount direktori log secara manual.
Containerd: Memerlukan akses ke containerd.sock.
Kebutuhan sumber daya: LoongCollector (Logtail) berjalan dengan kelas prioritas tinggi system-cluster-critical. Deploy pada kluster dengan sumber daya terbatas dapat mengusir Pod yang sudah ada.
CPU: Cadangkan minimal 0,1 core.
Memory: Cadangkan minimal 150 MB untuk komponen pengumpulan dan minimal 100 MB untuk komponen controller.
Penggunaan aktual bergantung pada laju pengumpulan, jumlah direktori dan file yang dipantau, serta kemacetan pengiriman. Pastikan penggunaan sumber daya tetap di bawah 80% dari batas yang ditentukan.
Persyaratan izin: Untuk melakukan deploy, akun Alibaba Cloud atau Pengguna RAM harus memiliki izin
AliyunLogFullAccess.Untuk membuat kebijakan kustom dengan izin detail halus, salin izin dari kebijakan sistem AliyunCSManagedLogRolePolicy, lalu berikan kepada Pengguna RAM atau role target.
Konfigurasi pengumpulan
Instal LoongCollector: Deploy LoongCollector dalam mode DaemonSet. Ini memastikan bahwa satu kontainer pengumpulan berjalan di setiap node dalam kluster untuk mengumpulkan log dari semua kontainer di node tersebut.
Untuk pola Sidecar, gunakan Kumpulkan log teks dari pod Kubernetes (pola Sidecar).
Buat Logstore: Logstore menyimpan log yang dikumpulkan.
Buat dan konfigurasikan aturan pengumpulan log
Konfigurasi global dan input: Tentukan nama konfigurasi pengumpulan dan tentukan sumber serta cakupan pengumpulan log.
Pemrosesan dan strukturisasi log: Konfigurasikan aturan pemrosesan berdasarkan format log.
Log multiline: Tangani entri log yang mencakup beberapa baris, seperti stack exception Java atau traceback Python, dengan mendefinisikan ekspresi reguler baris pertama untuk mengidentifikasi awal setiap entri.
Penguraian terstruktur: Konfigurasikan plugin penguraian, seperti ekspresi reguler, delimiter, atau mode NGINX, untuk mengekstrak string mentah menjadi pasangan kunci-nilai terstruktur, sehingga memungkinkan kueri dan analisis yang efisien.
Penyaringan log: Konfigurasikan daftar hitam pengumpulan dan aturan penyaringan konten untuk menyaring data log yang tidak diinginkan. Hal ini membantu mengurangi transmisi dan penyimpanan data berlebihan.
Kategorisasi log: Konfigurasikan topik dan tag log untuk membedakan log dari layanan, kontainer, atau sumber path yang berbeda.
Konfigurasi kueri dan analisis: Indeks teks penuh diaktifkan secara default untuk pencarian kata kunci. Untuk kueri dan analisis presisi pada field terstruktur, aktifkan indeks bidang guna meningkatkan efisiensi pencarian.
Verifikasi dan troubleshooting: Setelah menyelesaikan konfigurasi, verifikasi bahwa log berhasil dikumpulkan. Jika mengalami masalah seperti kegagalan pengumpulan data, kegagalan heartbeat, atau error parsing, lihat FAQ troubleshooting.
Langkah 1: Instal LoongCollector
LoongCollector adalah agen pengumpulan log generasi berikutnya dari Simple Log Service dan penerus Logtail. LoongCollector dan Logtail tidak dapat berjalan bersamaan. Untuk menginstal Logtail, lihat Instal, jalankan, upgrade, dan uninstall Logtail.
Instal LoongCollector menggunakan salah satu metode di bawah ini. Untuk detail parameter, lihat Instalasi dan konfigurasi. Jika LoongCollector atau Logtail sudah terinstal, lanjutkan ke Langkah 2: Buat logstore.
Mengubah waktu host saat LoongCollector (Logtail) sedang berjalan dapat menyebabkan pengumpulan duplikat atau kehilangan data.
Kluster ACK
Instal LoongCollector di konsol Container Service for Kubernetes. Secara default, log dikirim ke Proyek Simple Log Service dalam Akun Alibaba Cloud saat ini.
-
Masuk ke konsol ACK. Di panel navigasi kiri, klik Clusters.
Klik nama kluster target.
Di panel navigasi sisi kiri, klik Add-ons.
Di tab Logs and Monitoring, temukan LoongCollector, lalu klik Install.
CatatanSaat membuat kluster, Anda dapat memilih Enable Log Service di halaman Component Configurations. Anda dapat memilih Create Project atau Select Project. Saat menginstal LoongCollector untuk kluster yang sudah ada, kotak dialog instalasi mendukung penentuan nama Proyek menggunakan parameter
projectName. Jika dibiarkan kosong, nilai defaultk8s-log-{cluster_id}akan digunakan.Setelah instalasi selesai, Simple Log Service secara otomatis membuat sumber daya berikut di akun saat ini. Anda dapat melihatnya di konsol Simple Log Service.
Jenis sumber daya
Nama sumber daya
Deskripsi
Project
k8s-log-${cluster_id}Mengisolasi log dari layanan yang berbeda.
Untuk manajemen log yang fleksibel, Buat Project.
Kelompok mesin
k8s-group-${cluster_id}Kumpulan node pengumpulan log. Alamat IP node Kubernetes berubah secara dinamis saat kluster diskalakan, sehingga mengidentifikasi kelompok mesin berdasarkan alamat IP dapat menyebabkan kegagalan heartbeat. Oleh karena itu, kelompok mesin dalam skenario Kubernetes menggunakan pengenal kustom. Untuk informasi lebih lanjut, lihat Panduan mengaitkan kelompok mesin dengan konfigurasi pengumpulan.
PentingKomponen LoongCollector tidak membuat logstore bernama config-operation-log. Jika logstore ini sudah ada, LoongCollector tidak akan menulis log ke dalamnya.
Kluster yang dikelola sendiri
Hubungkan ke kluster Kubernetes dan jalankan perintah yang sesuai untuk wilayah Anda:
Wilayah 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.shMasuk ke direktori
loongcollector-custom-k8s-packagedan modifikasi file konfigurasi./loongcollector/values.yaml.# ===================== Informasi Wajib ===================== # Nama Project tempat log dari kluster ini dikirim. Contoh: k8s-log-custom-sd89ehdq projectName: "" # Wilayah tempat Project berada. Contoh: cn-shanghai region: "" # UID Akun Alibaba Cloud yang memiliki Project. Sertakan UID dalam tanda kutip (""). Contoh: "123456789" aliUid: "" # Jenis jaringan. Nilai yang valid: Internet dan Intranet. Nilai default: Internet. net: Internet # ID AccessKey dan rahasia AccessKey dari akun Alibaba Cloud atau Pengguna RAM. Akun atau Pengguna RAM harus memiliki izin 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 dependensinya:bash k8s-custom-install.sh installSetelah instalasi selesai, verifikasi bahwa komponen berjalan.
Jika pod gagal dimulai, verifikasi konfigurasi di file values.yaml dan pastikan image yang diperlukan telah ditarik.
# Periksa status pod kubectl get po -n kube-system | grep loongcollector-dsSimple Log Service juga secara otomatis membuat sumber daya berikut. Anda dapat melihatnya di konsol Simple Log Service.
Jenis sumber daya
Nama sumber daya
Deskripsi
Project
Nilai
projectNameyang Anda tentukan di file values.yamlMengisolasi log dari layanan yang berbeda.
Untuk manajemen log yang fleksibel, Buat Project.
Kelompok mesin
k8s-group-${cluster_id}Kumpulan node pengumpulan log. Alamat IP node Kubernetes berubah secara dinamis saat kluster diskalakan, sehingga mengidentifikasi kelompok mesin berdasarkan alamat IP dapat menyebabkan kegagalan heartbeat. Oleh karena itu, kelompok mesin dalam skenario Kubernetes menggunakan pengenal kustom. Untuk informasi lebih lanjut, lihat Panduan mengaitkan kelompok mesin dengan konfigurasi pengumpulan.
PentingKomponen LoongCollector tidak membuat logstore bernama config-operation-log. Jika logstore ini sudah ada, LoongCollector tidak akan menulis log ke dalamnya.
Langkah 2: Buat logstore
Logstore adalah unit penyimpanan dasar untuk log di SLS.
Masuk ke konsol Simple Log Service dan klik nama proyek target.
Di panel navigasi sisi kiri, pilih
, klik +, lalu buat logstore:Logstore Name: Masukkan nama yang unik dalam proyek. Nama ini tidak dapat diubah setelah dibuat.
Logstore Type: Pilih Standard atau Query berdasarkan perbandingan fitur.
Billing Mode:
Pay-by-feature (Cannot Be Changed): Anda ditagih secara terpisah untuk setiap sumber daya, seperti penyimpanan, indeks, dan operasi baca/tulis. Mode ini cocok untuk kasus penggunaan skala kecil atau ketika penggunaan fitur belum pasti.
Pay-by-ingested-data: Anda hanya ditagih berdasarkan volume data mentah yang ditulis. Mode ini menyediakan penyimpanan gratis selama 30 hari dan fitur gratis seperti transformasi data dan pengiriman. Mode ini cocok untuk kasus bisnis dengan periode penyimpanan mendekati 30 hari atau pipeline pemrosesan data yang kompleks.
Data Retention Period: Jumlah hari untuk menyimpan log. Nilainya berkisar antara 1 hingga 3.650. Nilai 3.650 menunjukkan retensi permanen. Nilai default adalah 30 hari.
Biarkan pengaturan lainnya tetap default dan klik OK. Kelola logstore.
Langkah 3: Konfigurasikan aturan pengumpulan log
Tentukan log mana yang akan dikumpulkan, cara menguraikannya, dan cara menyaring konten, lalu terapkan konfigurasi ke kelompok mesin.
Di halaman
Logstore, klik ikon
di sebelah kiri nama Logstore target untuk memperluasnya.Klik ikon
di sebelah Import Data. Di kotak dialog Quick Data Import, pilih templat berdasarkan sumber log lalu klik Integrate Now:Untuk standard output kontainer, pilih K8s-Standard Output-New.
Tersedia dua templat, versi baru dan lama, untuk mengumpulkan standard output kontainer. Kami merekomendasikan menggunakan versi baru. Untuk perbandingan versi, lihat Lampiran: Perbandingan versi standard output kontainer baru dan lama.
Untuk log teks kluster, pilih Kubernetes-File.
Di bagian Machine Group Configurations, lengkapi konfigurasi lalu klik Next:
Scenario: Pilih Docker Containers.
Metode deployment: Pilih ACK DaemonSet atau Self-managed Cluster in DaemonSet Mode.
Dari daftar Source Machine Group, pindahkan kelompok mesin yang dibuat sistem
k8s-group-${cluster_id}ke daftar Applied Machine Group.
Di halaman Logtail Configuration, konfigurasikan pengaturan berikut, lalu klik Next.
1. Konfigurasi global dan input
Pada langkah ini, tentukan nama, sumber log, dan cakupan untuk konfigurasi pengumpulan Anda.
Standard output kontainer
Global Configurations
Configuration Name: Masukkan nama kustom untuk konfigurasi pengumpulan. Nama harus unik dalam Project dan tidak dapat diubah setelah dibuat. Aturan penamaan:
Hanya boleh berisi huruf kecil, angka, tanda hubung (-), dan garis bawah (_).
Harus diawali dan diakhiri dengan huruf kecil atau angka.
Konfigurasi input
Nyalakan toggle Stdout and Stderr dan/atau Standard Error. Keduanya diaktifkan secara default.
PentingKami tidak merekomendasikan mengaktifkan standard output dan standard error secara bersamaan karena dapat menyebabkan pengumpulan log tidak berurutan.
Log teks kluster
Global Configurations:
Configuration Name: Masukkan nama kustom untuk konfigurasi pengumpulan. Nama harus unik dalam Project dan tidak dapat diubah setelah dibuat. Aturan penamaan:
Hanya boleh berisi huruf kecil, angka, tanda hubung (-), dan garis bawah (_).
Harus diawali dan diakhiri dengan huruf kecil atau angka.
Input Configurations:
File Path Type:
Path in Container: Kumpulkan file log dari dalam kontainer.
Host Path: Kumpulkan log dari layanan lokal pada mesin host.
File Path: Jalur absolut untuk pengumpulan log.
Linux: Harus diawali dengan garis miring (/), seperti
/data/mylogs/**/*.log. Path ini menunjukkan semua file yang berakhiran .log di direktori/data/mylogsdan subdirektorinya.Windows: Harus diawali dengan huruf drive, seperti
C:\Program Files\Intel\**\*.log.
Maximum Directory Monitoring Depth: Kedalaman direktori maksimum yang dapat dicocokkan oleh wildcard
**dalam File Path. Defaultnya adalah 0 (hanya direktori saat ini), dan rentang yang valid adalah 0 hingga 1.000.Kami merekomendasikan mengatur nilai ini ke 0 dan mengonfigurasi path ke direktori yang berisi file log.
2. Pemrosesan dan strukturisasi log
Konfigurasikan aturan pemrosesan untuk mengonversi log mentah menjadi data terstruktur yang dapat dicari. Tambahkan contoh log sebelum mengonfigurasi aturan.
Di halaman Logtail Configuration, di area Processor Configurations, klik Add Sample Log dan masukkan konten log yang ingin Anda kumpulkan. Sistem menggunakan contoh ini untuk mengidentifikasi format log dan membantu menghasilkan ekspresi reguler serta aturan penguraian, sehingga menyederhanakan proses konfigurasi.
Kasus penggunaan 1: Proses log multiline
Log seperti stack trace Java dan objek JSON sering kali mencakup beberapa baris. Secara default, log ini dibagi menjadi catatan yang tidak lengkap. Aktifkan mode multiline dan konfigurasikan regex baris pertama untuk menggabungkan baris berurutan menjadi catatan lengkap.
Contoh:
Log mentah yang belum diproses | Dalam mode default, setiap baris dianggap sebagai log terpisah, sehingga stack trace terpecah dan kehilangan konteks. | Dengan mode multiline diaktifkan, ekspresi reguler baris pertama mengidentifikasi log lengkap, sehingga mempertahankan struktur semantisnya. |
|
|
|
Prosedur: Di halaman Logtail Configuration, di area Processor Configurations, aktifkan Multi-line Mode.
Type: Pilih Custom atau Multi-line JSON.
Custom: Jika format log mentah tidak tetap, Anda harus mengonfigurasi Regex to Match First Line guna mengidentifikasi baris awal setiap entri log.
Regex to Match First Line: Anda dapat menghasilkannya secara otomatis atau memasukkannya secara manual. Ekspresi harus mencocokkan seluruh baris data. Untuk contoh di atas, regex 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 yang ingin diekstrak lalu klik Generate Regex.
Input manual: Klik Manually Enter Regular Expression. Setelah memasukkan ekspresi, klik Validate.
Multi-line JSON: Pilih opsi ini ketika log mentah dalam format JSON standar. LoongCollector secara otomatis menangani line break dalam satu entri JSON.
Processing Method If Splitting Fails:
Discard: Jika segmen teks tidak cocok dengan ekspresi reguler baris pertama, segmen tersebut akan dibuang.
Retain Single Line: Teks yang tidak cocok dibagi dan dipertahankan sesuai mode satu baris aslinya.
Kasus penggunaan 2: Strukturisasi log
Ketika log mentah berupa teks tidak terstruktur (misalnya, log akses Nginx), kueri langsung menjadi tidak efisien. LoongCollector menyediakan plugin penguraian yang mengonversi log mentah menjadi pasangan kunci-nilai terstruktur untuk analisis, pemantauan, dan peringatan.
Contoh:
Log mentah yang belum diproses | Log setelah penguraian terstruktur |
| |
Prosedur: Di area Processor Configurations halaman Logtail Configuration:
Tambahkan plugin penguraian: Klik Add Processor dan konfigurasikan plugin penguraian regex, delimiter, atau JSON berdasarkan format log Anda. Untuk contoh NGINX ini, pilih .
NGINX Log Configuration: salin seluruh definisi
log_formatdari file konfigurasi server Nginx Anda (nginx.conf) dan tempelkan 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 menghasilkan log di server; jika tidak, penguraian akan gagal.
Parameter umum: Parameter berikut umum untuk beberapa plugin penguraian data dan berfungsi dengan cara yang sama.
Field asli: Menentukan field sumber untuk diuraikan. Defaultnya adalah
content, yaitu seluruh entri log yang dikumpulkan.Pertahankan field asli saat gagal: Direkomendasikan. Jika log gagal diuraikan (misalnya, karena ketidakcocokan format), opsi ini mempertahankan konten log asli di field asli yang ditentukan.
Pertahankan field asli saat berhasil: Saat dipilih, konten log asli dipertahankan bahkan setelah penguraian berhasil.
3. Penyaringan log
Mengumpulkan log bernilai rendah atau tidak relevan, seperti log level DEBUG atau INFO, membuang penyimpanan, meningkatkan biaya, mengganggu kinerja kueri, dan dapat menimbulkan risiko keamanan. Terapkan kebijakan penyaringan detail halus untuk pengumpulan log yang efisien dan aman.
Penyaringan konten
Saring log berdasarkan konten field, seperti hanya mengumpulkan log dengan level WARNING atau ERROR.
Contoh:
Log mentah yang belum diproses | Kumpulkan hanya log |
| |
Prosedur: Di area Processor Configurations halaman Logtail Configuration:
Klik Add Processor dan pilih .
Field Name: Field log yang akan disaring.
Field Value: Ekspresi reguler untuk penyaringan. Hanya pencocokan teks penuh yang didukung; pencocokan kata kunci parsial tidak didukung.
Daftar hitam pengumpulan
Gunakan daftar hitam untuk mengecualikan direktori atau file tertentu, sehingga mencegah pengunggahan log yang tidak relevan atau sensitif.
Prosedur: Di halaman Logtail Configuration, navigasikan ke area , aktifkan Collection Blacklist, lalu klik Add.
Mendukung pencocokan eksak dan wildcard untuk direktori dan nama file. Wildcard yang didukung hanya tanda bintang (*) dan tanda tanya (?).
File Path Blacklist: Path file yang akan diabaikan. Contoh:
/home/admin/private*.log: Mengabaikan semua file di direktori/home/admin/yang diawali dengan "private" dan diakhiri dengan ".log"./home/admin/private*/*_inner.log: Mengabaikan file yang diakhiri dengan "_inner.log" yang berada di subdirektori yang diawali dengan "private" di bawah direktori/home/admin/.
File Blacklist: Nama file yang akan diabaikan selama pengumpulan. Contoh:
app_inner.log: Mengabaikan semua file bernamaapp_inner.log.
Directory Blacklist: Path direktori tidak boleh diakhiri dengan garis miring (/). Contoh:
/home/admin/dir1/: Daftar hitam direktori tidak akan berlaku./home/admin/dir*: Mengabaikan semua file di subdirektori/home/admin/yang diawali dengan "dir"./home/admin/*/dir: Mengabaikan semua file di subdirektori tingkat kedua bernama "dir" di bawah/home/admin/. Misalnya, file di/home/admin/a/dirdiabaikan, tetapi file di/home/admin/a/b/dirdikumpulkan.
Penyaringan kontainer
Tentukan kondisi pengumpulan berdasarkan metadata kontainer—seperti variabel lingkungan, label Pod, namespace, dan nama kontainer—untuk mengontrol secara tepat log kontainer mana yang dikumpulkan.
Prosedur: Di area Input Configurations halaman Logtail Configuration, aktifkan Container Filtering lalu klik Add.
Beberapa kondisi digabungkan dengan logika "DAN". Semua pencocokan ekspresi reguler berbasis mesin RE2 Go, yang memiliki keterbatasan dibandingkan mesin seperti PCRE. Pastikan ekspresi Anda mematuhi Lampiran: Batasan Penggunaan Ekspresi Reguler (Penyaringan Kontainer).
Daftar Hitam/Putih Variabel Lingkungan: Saring kontainer berdasarkan variabel lingkungannya.
Daftar Hitam/Putih Label Pod K8s: Saring Pod berdasarkan labelnya.
Pencocokan Regex Nama Pod K8s: Kumpulkan log dari Pod yang namanya cocok dengan ekspresi reguler yang ditentukan.
Pencocokan Regex Namespace K8s: Pilih kontainer untuk pengumpulan berdasarkan nama namespace.
Pencocokan Regex Nama Kontainer K8s: Kumpulkan log dari kontainer yang namanya cocok dengan ekspresi reguler yang ditentukan.
Daftar Hitam/Putih Label Kontainer: Kumpulkan log dari kontainer dengan label yang cocok. Ini ditujukan untuk skenario Docker dan tidak direkomendasikan untuk skenario K8s.
4. Kategorisasi log
Dalam skenario di mana beberapa aplikasi berbagi format log yang sama, membedakan sumbernya menjadi sulit. Konfigurasikan topik dan tag log untuk mengaktifkan asosiasi konteks otomatis dan kategorisasi logis.
Topik log
Ketika beberapa aplikasi atau instans berbagi format log tetapi memiliki path berbeda (misalnya, /apps/app-A/run.log dan /apps/app-B/run.log), membedakan sumbernya menjadi sulit. Untuk mengatasi ini, Anda dapat menghasilkan topik log berdasarkan kelompok mesin, nama kustom, atau ekstraksi path file untuk membedakan log dari berbagai sumber bisnis atau path.
Prosedur: Navigasikan ke lalu pilih metode pembuatan topik dari tiga opsi berikut:
Topik kelompok mesin: Ketika konfigurasi pengumpulan diterapkan ke beberapa kelompok mesin, LoongCollector secara otomatis menggunakan nama kelompok mesin sebagai nilai field
__topic__. Ini cocok untuk skenario di mana log dikategorikan berdasarkan kluster host.Custom: Formatnya adalah
customized://<nama_topik_kustom>, misalnya,customized://app-login. Ini cocok untuk skenario topik statis dengan pengenal bisnis tetap.Ekstraksi path file: Mengekstrak informasi kunci dari path lengkap file log untuk menandai sumber log secara dinamis. Ini cocok ketika beberapa pengguna atau aplikasi berbagi nama file log yang sama tetapi memiliki path berbeda.
Ketika beberapa pengguna atau layanan menulis log ke direktori tingkat atas berbeda dengan sub-path dan nama file identik, sumbernya tidak dapat dibedakan hanya berdasarkan nama file. Misalnya:
/data/logs ├── userA │ └── serviceA │ └── service.log ├── userB │ └── serviceA │ └── service.log └── userC └── serviceA └── service.logDalam kasus ini, Anda dapat mengonfigurasi ekstraksi path file dan menggunakan ekspresi reguler untuk mengekstrak informasi kunci dari path lengkap. Hasil yang cocok kemudian diunggah ke Logstore sebagai topik log.
Aturan ekstraksi: Grup penangkapan regex
Ketika Anda mengonfigurasi ekspresi reguler, sistem secara otomatis menentukan format field output berdasarkan jumlah dan penamaan grup penangkapan, sebagai berikut:
Dalam ekspresi reguler untuk path file, garis miring (/) harus di-escape.
Tipe kelompok penangkap
Kasus penggunaan
Field yang dihasilkan
Contoh regex
Contoh path
Field yang dihasilkan
Grup penangkapan tunggal (satu
(.*?))Diperlukan satu dimensi untuk membedakan sumber (misalnya, nama pengguna, lingkungan).
Menghasilkan field
__topic__.\/logs\/(.*?)\/app\.log/logs/userA/app.log__topic__:userABeberapa grup penangkapan tanpa nama (beberapa
(.*?))Diperlukan beberapa dimensi tetapi tanpa label semantis.
Menghasilkan field Tag diformat sebagai
__tag__:__topic_{i}__:value, di mana{i}adalah indeks grup penangkapan.\/logs\/(.*?)\/(.*?)\/app\.log/logs/userA/svcA/app.log__tag__:__topic_1__:userA;__tag__:__topic_2__:svcABeberapa grup penangkapan bernama (menggunakan
(?P<name>.*?))Diperlukan beberapa dimensi dengan nama field semantis yang jelas untuk memudahkan kueri dan analisis.
Menghasilkan field Tag diformat sebagai
__tag__:{name}:value.\/logs\/(?P<user>.*?)\/(?P<service>.*?)\/app\.log/logs/userA/svcA/app.log__tag__:user:userA;__tag__:service:svcA
Tagging log
Aktifkan fitur pengayaan tag log untuk mengekstrak informasi kunci dari variabel lingkungan kontainer atau label Pod Kubernetes dan melampirkannya sebagai Tag untuk pengelompokan log detail halus.
Prosedur: Di halaman Logtail Configuration, di area Input Configurations, aktifkan Log Tag Enrichment lalu klik Add.
Environment Variables: Konfigurasikan nama variabel lingkungan dan kunci Tag. Nilai variabel lingkungan akan disimpan sebagai nilai Tag.
Nama variabel lingkungan: Nama variabel lingkungan yang akan diekstrak.
Kunci Tag: Kunci untuk Tag baru.
Pod Labels: Konfigurasikan kunci label Pod dan kunci Tag. Nilai label Pod akan disimpan sebagai nilai Tag.
Kunci label Pod: Kunci label Pod Kubernetes yang akan diekstrak.
Kunci Tag: Kunci untuk Tag baru.
5. Konfigurasi output
Secara default, semua log dikirim ke Logstore saat ini dengan kompresi lz4. Untuk mendistribusikan log dari sumber yang sama ke Logstore berbeda, ikuti langkah-langkah berikut.
Distribusi multi-tujuan dinamis
Distribusi multi-tujuan dinamis hanya tersedia untuk LoongCollector 3.0.0 dan lebih baru. Fitur ini tidak didukung oleh Logtail.
Anda dapat mengonfigurasi maksimal lima tujuan output.
Setelah mengonfigurasi beberapa tujuan output, konfigurasi pengumpulan ini tidak akan lagi muncul di daftar konfigurasi pengumpulan Logstore saat ini. Untuk melihat, mengubah, atau menghapus konfigurasi, lihat Bagaimana cara mengelola konfigurasi distribusi multi-tujuan?.
Prosedur: Di halaman Logtail Configuration, di area Output Configurations:
Klik
untuk memperluas konfigurasi output.Klik Add Output Targets dan lengkapi konfigurasi berikut:
Logstores: Pilih Logstore target.
Compression Method: Mendukung lz4 dan zstd.
Route Settings: Rute log berdasarkan field Tag. Log yang cocok dengan konfigurasi routing dikirim ke Logstore target. Jika dibiarkan kosong, semua log yang dikumpulkan dikirim ke Logstore target.
Tag Name: Kunci Tag yang digunakan untuk routing. Masukkan kunci secara langsung (misalnya,
__path__) tanpa awalan__tag__:. Field Tag terbagi menjadi dua kategori:Tag dijelaskan di Kelola Tag Pengumpulan LoongCollector.
Terkait agen: Dihasilkan oleh agen pengumpulan dan tidak bergantung pada plugin apa pun. Contohnya termasuk
__hostname__dan__user_defined_id__.Terkait plugin input: Disediakan dan diperkaya oleh plugin input. Contohnya termasuk
__path__dari pengumpulan file dan_pod_name_atau_container_name_dari pengumpulan K8s.
Tag Value: Log yang nilai Tag-nya cocok dengan pengaturan ini dikirim ke Logstore target.
Discard this tag?: Jika diaktifkan, field Tag ini tidak akan disertakan dalam log yang diunggah.
Langkah 4: Kueri dan analisis
Setelah mengonfigurasi pemrosesan log dan plugin, klik Next untuk melanjutkan ke halaman Query and Analysis Configurations:
Secara default, sistem mengaktifkan indeks teks penuh, yang memungkinkan Anda mencari konten log mentah berdasarkan kata kunci.
Untuk mengkueri data berdasarkan field tertentu, klik Automatic Index Generation setelah Preview Data dimuat. Layanan Log menghasilkan indeks bidang berdasarkan entri log pertama dalam data pratinjau.
Setelah menyelesaikan konfigurasi, klik Next untuk menyelesaikan proses pengumpulan.
Langkah 5: Validasi dan troubleshooting
Setelah membuat dan menerapkan konfigurasi pengumpulan ke kelompok mesin, sistem secara otomatis menerapkannya dan mulai mengumpulkan log inkremental.
Lihat log yang dikumpulkan
Konfirmasi bahwa file log memiliki konten baru: LoongCollector hanya mengumpulkan log inkremental. Jalankan
tail -f /path/to/your/log/filedan picu operasi bisnis untuk memastikan log baru sedang ditulis.Cari log: Buka halaman Search & Analyze Logstore target. Klik Search & Analyze. Rentang waktu default adalah 15 menit terakhir. Periksa apakah log baru telah diingest. Setiap log teks kontainer yang dikumpulkan mencakup field berikut secara default:
Parameter
Deskripsi
__tag__:__hostname__Nama host kontainer.
__tag__:__path__Path file log di dalam kontainer.
__tag__:_container_ip_Alamat IP kontainer.
__tag__:_image_name_Nama image yang digunakan oleh kontainer.
__tag__:_pod_name_Nama Pod.
__tag__:_namespace_Namespace Pod.
__tag__:_pod_uid_Pengenal unik (UID) Pod.
Melihat riwayat node sebuah Pod
Jika Pod mengalami drift atau restart, Anda dapat mengkueri log event Kubernetes kluster ACK Anda di Simple Log Service untuk menemukan node tempat Pod tersebut sebelumnya berjalan.
Masuk ke konsol Simple Log Service dan temukan proyek
k8s-log-{cluster_id}di daftar proyek.Klik LogStore k8s-event untuk membuka halaman kueri dan analisis.
Di kotak pencarian, masukkan pernyataan kueri yang menyaring berdasarkan nama Pod, misalnya,
pod_name: my-pod, lalu klik Search & Analyze.Di hasil yang dikembalikan, periksa nilai field
hostname. Nilai ini adalah hostname node tempat Pod berjalan.
Di LogStore k8s-event, nama field adalah pod_name dan hostname, tanpa awalan __tag__:. Format awalan __tag__: berlaku untuk pengumpulan stdout kontainer dan log teks, bukan untuk log event Kubernetes.
Atasi masalah umum
Kegagalan heartbeat kelompok mesin
Periksa pengenal pengguna: Jika server Anda bukan instans ECS, atau jika instans ECS dan Proyek milik akun Alibaba Cloud yang berbeda, pastikan pengenal pengguna yang benar ada di direktori yang ditentukan.
Di Linux, jalankan perintah
cd /etc/ilogtail/users/ && touch <uid>untuk membuat file pengenal pengguna.Windows: Buka direktori
C:\LogtailData\users\dan buat file kosong bernama<uid>.
Pengenal pengguna dikonfigurasi dengan benar jika path yang ditentukan berisi file yang namanya adalah ID akun Alibaba Cloud dari Proyek saat ini.
Periksa pengenal kelompok mesin: Jika Anda menggunakan pengenal kustom untuk kelompok mesin, periksa apakah file
user_defined_idada di direktori yang ditentukan. Jika file ada, periksa apakah isinya cocok dengan pengenal kustom yang dikonfigurasi untuk kelompok mesin.Linux:
# Konfigurasikan pengenal kustom. Jika direktori tidak ada, buat secara manual. echo "user-defined-1" > /etc/ilogtail/user_defined_idWindows: Di direktori
C:\LogtailData, buat file bernamauser_defined_iddan tulis pengenal kustom ke dalam file tersebut. (Jika direktori tidak ada, buat secara manual.)
Jika pengenal pengguna dan pengenal kelompok mesin dikonfigurasi dengan benar, lihat Troubleshooting kelompok mesin LoongCollector (Logtail) untuk troubleshooting lebih lanjut.
Error pengumpulan log atau error format
Masalah ini biasanya terjadi ketika koneksi jaringan dan konfigurasi dasar Anda benar, tetapi konten log tidak cocok dengan aturan penguraian. Untuk mendiagnosis masalah, lihat pesan error spesifik:
Di halaman Logtail Configuration, klik nama konfigurasi LoongCollector (Logtail) yang mengalami error pengumpulan. Di tab Log Collection Error, klik Select Time Range untuk mengatur rentang kueri.
Di bagian , lihat jenis alert dari log error dan rujuk ke Jenis error umum untuk pengumpulan data untuk menemukan solusi yang sesuai.
Langkah selanjutnya
Visualisasi data: Gunakan dasbor visualisasi untuk memantau tren metrik utama.
Peringatan anomali data: Siapkan kebijakan peringatan untuk mendeteksi anomali data secara real-time.
Troubleshooting pengumpulan log kontainer
Verifikasi bahwa log baru sedang dihasilkan di file log target. Logtail tidak mengumpulkan data sampai log baru muncul.
FAQ
Kelola konfigurasi distribusi multi-tujuan
Karena konfigurasi distribusi multi-tujuan berlaku untuk beberapa logstore, kelola dari halaman manajemen tingkat Project:
Masuk ke konsol Simple Log Service lalu klik nama Project target.
Di halaman Project, di panel navigasi sisi kiri, klik
.CatatanHalaman ini mengelola semua konfigurasi pengumpulan dalam Project, termasuk konfigurasi untuk logstore yang tidak sengaja dihapus.
Kirim log ACK ke Project lintas akun
Anda dapat mengirim log kontainer ke Project Simple Log Service (SLS) di akun Alibaba Cloud lain dengan menginstal komponen LoongCollector (Logtail) secara manual di kluster ACK dan mengonfigurasinya dengan ID akun Alibaba Cloud target atau kredensial akses (AccessKey).
Deskripsi skenario: Jika Anda perlu mengumpulkan data log ke Project SLS akun lain untuk keperluan organisasi, izin, atau pemantauan, instal LoongCollector (Logtail) secara manual untuk mengaktifkan pengumpulan lintas akun.
Prosedur: Ikuti langkah-langkah berikut untuk menginstal LoongCollector secara manual. Untuk informasi tentang cara menginstal Logtail, lihat Instal dan konfigurasikan Logtail.
Hubungkan ke kluster Kubernetes dan jalankan perintah yang sesuai untuk wilayah Anda:
Wilayah 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.shMasuk ke direktori
loongcollector-custom-k8s-packagedan modifikasi file konfigurasi./loongcollector/values.yaml.# ===================== Informasi Wajib ===================== # Nama Project tempat log dari kluster ini dikirim. Contoh: k8s-log-custom-sd89ehdq projectName: "" # Wilayah tempat Project berada. Contoh: cn-shanghai region: "" # UID Akun Alibaba Cloud yang memiliki Project. Sertakan UID dalam tanda kutip (""). Contoh: "123456789" aliUid: "" # Jenis jaringan. Nilai yang valid: Internet dan Intranet. Nilai default: Internet. net: Internet # ID AccessKey dan rahasia AccessKey dari akun Alibaba Cloud atau Pengguna RAM. Akun atau Pengguna RAM harus memiliki izin 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 dependensinya:bash k8s-custom-install.sh installSetelah instalasi selesai, verifikasi bahwa komponen berjalan.
Jika pod gagal dimulai, verifikasi konfigurasi di file values.yaml dan pastikan image yang diperlukan telah ditarik.
# Periksa status pod kubectl get po -n kube-system | grep loongcollector-dsSimple Log Service juga secara otomatis membuat sumber daya berikut. Anda dapat melihatnya di konsol Simple Log Service.
Jenis sumber daya
Nama sumber daya
Deskripsi
Project
Nilai
projectNameyang Anda tentukan di file values.yamlMengisolasi log dari layanan yang berbeda.
Untuk manajemen log yang fleksibel, Buat Project.
Kelompok mesin
k8s-group-${cluster_id}Kumpulan node pengumpulan log. Alamat IP node Kubernetes berubah secara dinamis saat kluster diskalakan, sehingga mengidentifikasi kelompok mesin berdasarkan alamat IP dapat menyebabkan kegagalan heartbeat. Oleh karena itu, kelompok mesin dalam skenario Kubernetes menggunakan pengenal kustom. Untuk informasi lebih lanjut, lihat Panduan mengaitkan kelompok mesin dengan konfigurasi pengumpulan.
PentingKomponen LoongCollector tidak membuat logstore bernama config-operation-log. Jika logstore ini sudah ada, LoongCollector tidak akan menulis log ke dalamnya.
Gunakan beberapa konfigurasi untuk sumber yang sama
Secara default, untuk mencegah duplikasi data, Simple Log Service (SLS) hanya mengizinkan satu konfigurasi pengumpulan untuk mengumpulkan log dari setiap sumber:
File log teks hanya dapat cocok dengan satu konfigurasi pengumpulan Logtail.
Standard output (stdout) kontainer:
Jika Anda menggunakan templat standard output versi baru, stdout hanya dapat dikumpulkan oleh satu konfigurasi pengumpulan standard output secara default.
Jika Anda menggunakan templat standard output versi lama, tidak diperlukan konfigurasi tambahan, dan pengumpulan ganda didukung secara default.
Masuk ke konsol Simple Log Service lalu buka Project target.
Di panel navigasi sisi kiri, pilih
Logstore dan temukan logstore target.Klik ikon
di sebelah nama logstore untuk memperluasnya.Klik Logtail Configuration. Di daftar konfigurasi, temukan konfigurasi Logtail target lalu klik Manage Logtail Configuration di kolom Actions.
Di halaman konfigurasi Logtail, klik Edit lalu gulir 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.
Error dependensi saat menguninstall loongcollector
Masalah: Saat mencoba menguninstall komponen loongcollector (logtail-ds) di Container Service for Kubernetes (ACK), Anda menerima error bahwa dependensi komponen tidak terpenuhi.
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 telah mengaktifkan pengumpulan log, yang menciptakan dependensi pada komponen loongcollector (logtail-ds). Oleh karena itu, ACK tidak mengizinkan Anda menguninstall loongcollector (logtail-ds) sampai Anda menghapus dependensi ini.
Solusi: Ikuti langkah-langkah berikut untuk menghapus dependensi lalu menguninstall komponen:
Masuk ke konsol ACK.
Di daftar kluster, klik nama kluster target untuk membuka halaman detailnya.
Di panel navigasi sisi kiri, klik Add-ons.
Di daftar add-on, cari komponen
terway-eniiplalu klik .Di kotak dialog yang muncul, klik OK.
Setelah konfigurasi diterapkan, coba uninstall komponen loongcollector (logtail-ds) lagi.
Entri log terakhir tertunda atau terpotong
Penyebab: Pemotongan log biasanya terjadi ketika file log tidak memiliki line feed di akhir, atau ketika entri log multiline, seperti stack exception, belum ditulis sepenuhnya. Karena collector tidak dapat menentukan apakah entri log sudah lengkap, entri log terakhir mungkin terbagi atau tertunda. Cara penanganannya tergantung pada versi LoongCollector (Logtail) Anda:
Versi sebelum 1.8:
Jika baris terakhir log tidak memiliki line feed (carriage return), atau jika blok log multiline tidak lengkap, collector menunggu operasi penulisan berikutnya untuk memicu output. Hal ini dapat sangat menunda entri log terakhir sampai log baru ditulis.Versi 1.8 dan lebih baru:
Versi ini memperkenalkan mekanisme flush timeout untuk mencegah log macet. Ketika baris log yang tidak lengkap terdeteksi, sistem memulai timer. Setelah periode timeout berakhir, konten saat ini secara otomatis dikirimkan untuk memastikan log akhirnya dikumpulkan.Timeout default: 60 detik (memastikan integritas data dalam sebagian besar skenario)
Anda dapat menyesuaikan nilai ini berdasarkan kebutuhan Anda. Namun, kami merekomendasikan agar Anda tidak mengaturnya ke 0 karena dapat menyebabkan pemotongan log atau kehilangan data parsial.
Solusi:
Anda dapat memperpanjang waktu tunggu untuk memastikan entri log lengkap ditulis sebelum dikumpulkan:
Masuk ke konsol Simple Log Service lalu buka Project target.
Di panel navigasi sisi kiri, pilih
Logstore dan temukan logstore target.Klik ikon
di sebelah nama logstore untuk memperluasnya.Klik Logtail Configuration. Di daftar konfigurasi, temukan konfigurasi Logtail target lalu klik Manage Logtail Configuration di kolom Actions.
Di halaman konfigurasi Logtail, klik Edit.
Buka lalu tambahkan konfigurasi JSON berikut untuk menyesuaikan periode timeout.
{ "FlushTimeoutSecs": 1 }Nilai default: Ditentukan oleh parameter startup
default_reader_flush_timeout, yang biasanya beberapa detik.Unit: Detik.
Nilai yang direkomendasikan: ≥ 1 detik. Kami merekomendasikan agar Anda tidak mengaturnya ke 0 karena dapat menyebabkan pemotongan log atau kehilangan data parsial.
Setelah menyelesaikan konfigurasi, klik OK.
Failover dan pemulihan jaringan LoongCollector
Jika LoongCollector (Logtail) mendeteksi masalah konektivitas jaringan internal, seperti kegagalan atau timeout, sistem secara otomatis beralih ke jaringan publik. Mekanisme failover ini memastikan pengumpulan log yang andal dan mencegah penumpukan atau kehilangan data.
LoongCollector: Secara otomatis beralih kembali ke jaringan internal setelah jaringan pulih.
Logtail: Tidak secara otomatis beralih kembali. Anda harus me-restart-nya untuk memulihkan komunikasi jaringan internal.
Lampiran: Prosesor native
Di halaman Logtail Configuration, di area Processor Configurations, Anda dapat menambahkan plugin pemrosesan untuk mengstrukturisasi log mentah. Untuk menambahkan plugin pemrosesan ke konfigurasi pengumpulan yang sudah ada, Anda dapat mengikuti langkah-langkah berikut:
Di panel navigasi kiri, pilih
Logstore dan temukan Logstore tujuan.Klik
di sebelah kiri nama Logstore untuk memperluasnya.Klik Logtail Configuration. Di daftar konfigurasi, temukan konfigurasi Logtail tujuan lalu klik Manage Logtail Configuration di kolom Actions.
Di halaman konfigurasi Logtail, klik Edit.
Bagian ini hanya memperkenalkan plugin pemrosesan yang umum digunakan yang mencakup skenario pemrosesan log umum. Untuk fitur lainnya, lihat Plugin pemrosesan ekstensi.
Aturan menggabungkan plugin (berlaku untuk LoongCollector / Logtail 2.0 dan lebih baru):
Plugin pemrosesan native dan ekstensi dapat digunakan secara independen atau dikombinasikan sesuai kebutuhan.
Kami merekomendasikan agar Anda menggunakan plugin pemrosesan native terlebih dahulu karena menawarkan kinerja dan stabilitas yang lebih baik.
Ketika fitur native tidak dapat memenuhi kebutuhan bisnis, Anda dapat menambahkan plugin pemrosesan ekstensi setelah plugin native yang dikonfigurasi untuk melakukan pemrosesan tambahan.
Batasan urutan:
Semua plugin dieksekusi secara berurutan sesuai urutan konfigurasinya, yang membentuk rantai pemrosesan. Catatan: Semua plugin pemrosesan native harus mendahului plugin pemrosesan ekstensi apa pun. Setelah Anda menambahkan plugin pemrosesan ekstensi, Anda tidak dapat menambahkan plugin pemrosesan native lagi.
Penguraian ekspresi reguler
Prosesor ini menggunakan ekspresi reguler untuk menguraikan log menjadi pasangan kunci-nilai. Anda kemudian dapat mengkueri dan menganalisis setiap field yang diekstrak secara independen.
Contoh:
Log mentah | Hasil penguraian |
| |
Langkah-langkah: Di halaman Logtail Configuration, di area Processor Configurations, klik Add Processor, lalu pilih :
Regular Expression: Mencocokkan entri log. Anda dapat menghasilkannya secara otomatis atau memasukkannya secara manual.
Untuk menghasilkan ekspresi reguler secara otomatis:
Klik Generate Regular Expression.
Di kotak Log Sample, sorot konten yang ingin diekstrak.
Klik Generate.

Masukkan ekspresi reguler secara manual berdasarkan format log Anda.
Setelah mengonfigurasi ekspresi, klik Validate untuk menguji apakah ekspresi tersebut menguraikan contoh log Anda dengan benar.
Extracted Field: Tetapkan nama (kunci) untuk konten yang diekstrak (nilai).
Untuk informasi tentang parameter lainnya, lihat deskripsi parameter konfigurasi umum di Skenario 2: Log terstruktur.
Penguraian delimiter
Prosesor ini menggunakan delimiter untuk menguraikan log menjadi pasangan kunci-nilai. Anda dapat menggunakan delimiter karakter tunggal atau multi-karakter.
Contoh:
Log mentah | Menggunakan karakter yang ditentukan |
| |
Prosedur: Di halaman Logtail Configuration, di area Processor Configurations, klik Add Processor, lalu pilih :
Delimiter: Karakter yang memisahkan field dalam log.
Contoh: Untuk file CSV, pilih Custom lalu masukkan koma (,).
Quote: Karakter yang digunakan untuk mengapit nilai field. Ini diperlukan jika nilai field mungkin berisi delimiter, karena mencegah pemisahan yang salah.
Extracted Field: Tetapkan nama field (Kunci) untuk setiap kolom secara berurutan. Nama field harus mematuhi aturan berikut:
Hanya boleh berisi huruf, angka, dan garis bawah (_).
Harus diawali dengan huruf atau garis bawah (_).
Panjang maksimum: 128 byte.
Untuk informasi tentang parameter lainnya, lihat deskripsi parameter konfigurasi umum di Skenario 2: Log terstruktur.
Penguraian JSON standar
Prosesor ini menguraikan entri log yang merupakan objek JSON menjadi pasangan kunci-nilai.
Contoh:
Log mentah | Hasil penguraian |
| |
Prosedur: Di halaman Logtail Configuration, di bagian Processor Configurations, klik Add Processor, lalu pilih :
Original Field: Nilai defaultnya adalah
content. Field ini menyimpan konten log mentah yang akan diuraikan.Untuk informasi tentang parameter lainnya, lihat deskripsi parameter konfigurasi umum di Skenario 2: Log terstruktur.
Penguraian JSON bersarang
Prosesor ini memperluas objek JSON bersarang menjadi pasangan kunci-nilai. Anda mengontrol ekspansi dengan pengaturan Kedalaman ekspansi JSON.
Contoh:
Log mentah | Hasil (kedalaman: 0) | Hasil (kedalaman: 1) |
| | |
Prosedur: Di halaman Logtail Configuration, di bagian Processor Configurations, klik Add Processor, lalu pilih :
Original Field: Nama field asli yang akan diperluas, seperti
content.JSON Expansion Depth: Jumlah level yang akan diperluas dalam objek JSON.
0memperluas semua level (default),1hanya memperluas level teratas, dan seterusnya.Character to Concatenate Expanded Keys: Karakter yang digunakan untuk menggabungkan kunci dari objek bersarang. Defaultnya adalah garis bawah (
_).Name Prefix of Expanded Keys: Awalan yang ditambahkan ke nama setiap kunci yang diperluas.
Expand Array: Aktifkan opsi ini untuk memperluas array menjadi pasangan kunci-nilai yang diindeks.
Contohnya,
{"k":["a","b"]}diperluas menjadi{"k[0]":"a","k[1]":"b"}.Untuk mengganti nama field yang diperluas (misalnya, dari
prefix_s_key_k1kenew_field_name), tambahkan prosesor Rename Fields setelah prosesor ini.Untuk informasi tentang parameter lainnya, lihat deskripsi parameter konfigurasi umum di Skenario 2: Log terstruktur.
Penguraian array JSON
Gunakan fungsi json_extract untuk mengekstrak objek JSON dari array JSON.
Contoh:
Log mentah | Hasil penguraian |
| |
Prosedur: Di halaman Logtail Configuration, di bagian Processor Configurations, atur Processing Method ke SPL. Lalu, konfigurasikan Pernyataan SPL untuk menggunakan fungsi json_extract guna mengekstrak objek JSON dari array JSON.
Contoh: Dari field log content, ekstrak elemen dari array JSON dan simpan hasilnya masing-masing di field baru json1 dan json2.
* | extend json1 = json_extract(content, '$[0]'), json2 = json_extract(content, '$[1]')Penguraian log Apache
Prosesor ini menguraikan log akses Apache menjadi pasangan kunci-nilai berdasarkan direktif LogFormat Apache Anda.
Contoh:
Log mentah | Penguraian format log Apache Common |
| |
Prosedur: Di halaman Logtail Configuration, di bagian Processor Configurations, klik Add Processor, lalu pilih :
Log Format: combined
APACHE LogFormat Configuration: Sistem secara otomatis mengisi field ini berdasarkan Log Format yang dipilih.
PentingVerifikasi bahwa konten yang diisi otomatis identik dengan direktif LogFormat yang ditentukan dalam file konfigurasi server Apache Anda, yang biasanya berada di
/etc/apache2/apache2.conf.Untuk parameter lainnya, lihat deskripsi parameter konfigurasi umum di Skenario 2: Log Terstruktur.
Penyembunyian data
Sembunyikan data sensitif dalam log Anda.
Contoh:
Log mentah | Hasil penyembunyian |
| |
Prosedur: Di halaman Logtail Configuration, di bagian Processor Configurations, klik Add Processor, lalu pilih :
Original Field: Field sumber yang berisi konten yang akan disembunyikan.
Data Masking Method:
const: Mengganti konten sensitif dengan string yang ditentukan.
md5: Mengganti konten sensitif dengan nilai hash MD5-nya.
Replacement String: String yang digunakan untuk penyembunyian. Ini diperlukan ketika Data Masking Method diatur ke const.
Content Expression that Precedes Replaced Content: Ekspresi reguler dalam sintaks RE2 untuk menemukan konten tepat sebelum data sensitif.
Content Expression to Match Replaced Content: Ekspresi reguler dalam sintaks RE2 untuk mencocokkan data sensitif yang ingin Anda ganti.
Penguraian waktu
Menguraikan field waktu dalam log dan mengatur hasil penguraian sebagai field __time__ log.
Contoh:
Log mentah | Hasil penguraian |
|
|
Prosedur: Di halaman Logtail Configuration, di bagian Processor Configurations, klik Add Processor, lalu pilih :
Original Field: Field sumber yang berisi string waktu untuk diuraikan.
Time Format: format waktu yang sesuai dengan string waktu dalam log Anda.
Time Zone: Zona waktu field waktu log. Jika tidak ditentukan, defaultnya adalah zona waktu mesin yang menjalankan LoongCollector (Logtail).
Lampiran: Batasan ekspresi reguler (penyaringan kontainer)
Ekspresi reguler untuk penyaringan kontainer menggunakan mesin RE2 Go. Dibandingkan dengan mesin lain seperti PCRE, mesin RE2 memiliki beberapa batasan sintaks. Ingat hal-hal berikut saat menulis ekspresi reguler:
1. Perbedaan sintaks grup bernama
Go menggunakan sintaks (?P<name>...) untuk mendefinisikan grup bernama dan tidak mendukung sintaks (?<name>...) dari PCRE.
Benar:
(?P<year>\d{4})Salah:
(?<year>\d{4})
2. Fitur ekspresi reguler yang tidak didukung
Mesin RE2 tidak mendukung fitur ekspresi reguler umum berikut yang kompleks. Hindari penggunaannya:
Assertion:
(?=...),(?!...),(?<=...), dan(?<!...)Ekspresi kondisional:
(?(condition)true|false)Pencocokan rekursif:
(?R)dan(?0)Referensi subprogram:
(?&name)dan(?P>name)Grup atomik:
(?>...)
3. Rekomendasi
Gunakan alat seperti Regex101 untuk men-debug ekspresi reguler Anda. Untuk memastikan kompatibilitas, pilih mode Golang (RE2) untuk validasi. Jika Anda menggunakan sintaks yang tidak didukung, plugin tidak akan dapat menguraikan atau mencocokkan ekspresi tersebut.
Lampiran: Perbandingan versi standard output kontainer
Untuk meningkatkan efisiensi penyimpanan dan konsistensi pengumpulan, format metadata log untuk standard output kontainer telah ditingkatkan. Format baru mengkonsolidasikan metadata di bawah field __tag__, yang mengoptimalkan penyimpanan dan menstandarkan format.
Keunggulan utama standard output baru
Kinerja yang jauh lebih baik
Direkayasa ulang dalam C++, versi baru memberikan peningkatan kinerja 180% hingga 300% dibandingkan implementasi Go sebelumnya.
Mendukung pemrosesan data dengan plugin native dan pemrosesan paralel multi-threading, yang sepenuhnya memanfaatkan sumber daya sistem.
Mendukung kombinasi fleksibel plugin native dan plugin Go untuk memenuhi kebutuhan skenario kompleks.
Keandalan yang lebih kuat
Mendukung antrian rotasi untuk log standard output dan menyatukan mekanisme pengumpulan log dengan mekanisme pengumpulan file, yang memberikan keandalan tinggi saat log standard output berotasi dengan cepat.
Konsumsi sumber daya yang lebih rendah
Penggunaan CPU berkurang 20% hingga 25%.
Penggunaan memori 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 field metadata kontainer dan lokasi penyimpanan tag disatukan dengan skenario pengumpulan file, sehingga sisi konsumen hanya perlu mempertahankan satu set logika pemrosesan.
Perbandingan fitur versi baru dan lama
Fitur | Versi lama | Versi baru |
Metode penyimpanan | Metadata disematkan dalam konten log sebagai field biasa. | Metadata dikonsolidasikan di bawah tag |
Efisiensi penyimpanan | Setiap entri log membawa salinan lengkap metadata, yang mengonsumsi lebih banyak ruang penyimpanan. | Beberapa entri log dalam konteks yang sama dapat menggunakan kembali metadata, yang menghemat biaya penyimpanan. |
Konsistensi format | Format tidak konsisten dengan format pengumpulan file kontainer. | Penamaan field dan struktur penyimpanan sepenuhnya selaras dengan pengumpulan file kontainer, yang memberikan pengalaman terpadu. |
Metode akses kueri | Anda dapat mengkueri metadata langsung berdasarkan nama field, seperti | Anda harus mengakses pasangan kunci-nilai yang sesuai melalui |
Pemetaan field metadata kontainer
Nama field lama | Nama field baru |
|
|
|
|
|
|
|
|
|
|
|
|
Dalam versi baru, semua field metadata disimpan di bagian tag log dalam format __tag__:<kunci> alih-alih disematkan dalam konten log.
Dampak versi baru terhadap pengguna
Adaptasi sisi konsumen: Karena lokasi penyimpanan berubah dari konten ke tag, Anda harus menyesuaikan logika konsumsi log Anda. Misalnya, Anda harus mengakses field melalui
__tag__saat menjalankan kueri.Kompatibilitas SQL: SQL kueri sudah secara otomatis kompatibel dengan kedua versi, sehingga Anda tidak perlu memodifikasi pernyataan kueri Anda untuk memproses log dari versi mana pun.






