Di lingkungan Kubernetes, log kontainer sering tersebar dan sulit dipusatkan serta dikelola, sehingga menyebabkan troubleshooting yang tidak efisien dan biaya operasional tinggi. Anda dapat memusatkan pengumpulan log dan melakukan pemrosesan terstruktur dengan men-deploy LoongCollector dalam mode DaemonSet serta membuat konfigurasi pengumpulan di konsol Simple Log Service (SLS). Hal ini meningkatkan efisiensi pengambilan log, diagnosis masalah, dan analisis observabilitas.
Persyaratan
-
Lingkungan runtime:
-
Mendukung Container Service for Kubernetes (ACK) (edisi managed dan dedicated) serta kluster Kubernetes yang dikelola sendiri.
-
Memerlukan Kubernetes 1.10.0 atau lebih baru dengan dukungan
Mount propagation: HostToContainer. -
Runtime kontainer (hanya Docker dan Containerd)
-
Docker:
-
Memerlukan akses ke docker.sock.
-
Pengumpulan output standar hanya mendukung driver log JSON.
-
Hanya driver penyimpanan overlay dan overlay2 yang didukung. Untuk driver penyimpanan lainnya, Anda harus memasang direktori log secara manual.
-
-
Containerd: Memerlukan akses ke containerd.sock.
-
-
-
Persyaratan sumber daya: LoongCollector (Logtail) berjalan dengan prioritas
system-cluster-critical. Jangan men-deploy-nya jika kluster Anda memiliki sumber daya yang tidak mencukupi; jika tidak, Pod yang ada pada suatu node mungkin akan di-evict.-
CPU: Cadangkan minimal 0,1 core.
-
Memory: Cadangkan minimal 150 MB untuk komponen pengumpulan dan minimal 100 MB untuk komponen controller.
-
Penggunaan sumber daya aktual bergantung pada laju pengumpulan, jumlah direktori dan file yang dipantau, serta kemacetan transfer data. Pastikan pemanfaatan sumber daya tetap di bawah 80% dari batas yang ditentukan.
-
-
Persyaratan izin: Akun Alibaba Cloud atau Pengguna RAM yang digunakan untuk deployment harus memiliki izin
AliyunLogFullAccess.Untuk membuat kebijakan kustom, rujuk ke kebijakan sistem AliyunCSManagedLogRolePolicy. Salin izin dari kebijakan sistem tersebut dan berikan kepada Pengguna RAM atau role target guna mengonfigurasi izin detail halus.
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 pada node tersebut.
Untuk informasi tentang pola sidecar, lihat Kumpulkan log teks dari Pod Kubernetes menggunakan 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 log.
-
Pemrosesan dan strukturisasi log: Konfigurasikan aturan pemrosesan berdasarkan format log.
-
Log multi-baris: Untuk entri log tunggal yang mencakup beberapa baris, seperti stack trace Java atau traceback Python. Gunakan ekspresi reguler untuk mengidentifikasi awal setiap entri log.
-
Penguraian terstruktur: Konfigurasikan plugin penguraian, seperti mode ekspresi reguler, delimiter, atau NGINX, untuk mengekstrak string log mentah menjadi pasangan kunci-nilai terstruktur guna memudahkan kueri dan analisis.
-
-
Penyaringan log: Konfigurasikan daftar hitam pengumpulan dan aturan penyaringan konten untuk memfilter log yang valid. Hal ini membantu mengurangi transmisi dan penyimpanan data berlebihan.
-
Kategorisasi log: Konfigurasikan topik dan tag log untuk membedakan log dari layanan, kontainer, atau jalur sumber yang berbeda.
-
-
Konfigurasi kueri dan analisis: Indeks teks penuh diaktifkan secara default untuk mendukung pencarian kata kunci. Kami merekomendasikan mengaktifkan indeks bidang untuk melakukan kueri dan analisis presisi pada bidang terstruktur, yang meningkatkan efisiensi pencarian.
-
Verifikasi dan troubleshooting: Setelah menyelesaikan konfigurasi, verifikasi bahwa log berhasil dikumpulkan. Jika mengalami masalah seperti data hilang, kegagalan heartbeat, atau error parsing, lihat FAQ troubleshooting.
Langkah 1: Instal LoongCollector
LoongCollector adalah agen pengumpulan log generasi berikutnya untuk Simple Log Service dan merupakan peningkatan dari Logtail. LoongCollector dan Logtail tidak dapat berjalan bersamaan. Untuk menginstal Logtail, lihat Instal, jalankan, tingkatkan, dan uninstal Logtail.
Topik ini hanya mencakup instalasi dasar LoongCollector. Untuk informasi lebih lanjut tentang parameter, lihat Instalasi dan konfigurasi. Jika Anda telah menginstal LoongCollector atau Logtail, lewati langkah ini dan lanjutkan ke Langkah 2: Buat logstore.
Perubahan waktu host saat LoongCollector (Logtail) sedang berjalan dapat menyebabkan pengumpulan log duplikat atau kehilangan data.
Kluster ACK
Secara default, LoongCollector mengirim log ke Project Simple Log Service di Akun Alibaba Cloud saat ini.
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
-
Klik nama kluster target untuk membuka halaman detailnya.
-
Di panel navigasi sebelah kiri, klik Add-ons.
-
Pada tab Logs and Monitoring, temukan loongcollector dan klik Install.
CatatanSaat membuat kluster, Anda dapat memilih Enable Log Service pada halaman Component Configurations. Anda dapat memilih untuk Create Project atau Select Project.
Setelah instalasi, Simple Log Service secara otomatis membuat sumber daya berikut di akun saat ini. Anda dapat melihatnya di Konsol Simple Log Service.
Tipe
Parameter
Deskripsi
Project
k8s-log-${cluster_id}Unit manajemen sumber daya yang mengisolasi log dari layanan berbeda.
Untuk membuat Project guna manajemen sumber daya log yang lebih fleksibel, lihat Buat Project.
machine group
k8s-group-${cluster_id}Sekumpulan node pengumpulan log.
PentingKomponen LoongCollector tidak membuat logstore bernama config-operation-log. Jika logstore ini sudah ada, LoongCollector tidak akan menulis log baru ke dalamnya.
Kluster yang dikelola sendiri
-
Hubungkan ke kluster Kubernetes Anda dan jalankan perintah yang sesuai dengan wilayah kluster Anda:
Wilayah Tiongkok Daratan
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 -
Berpindah ke direktori
loongcollector-custom-k8s-packagedan ubah file konfigurasi./loongcollector/values.yaml.# ===================== Informasi wajib ===================== # Project tempat log dari kluster ini dikumpulkan. Contoh: k8s-log-custom-sd89ehdq projectName: "" # Wilayah tempat Project berada. Contoh: cn-shanghai region: "" # ID Akun Alibaba Cloud yang memiliki Project. Sertakan ID 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. Kebijakan AliyunLogFullAccess diperlukan. 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 install -
Setelah instalasi selesai, periksa status komponen.
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, yang dapat Anda lihat di Konsol Simple Log Service.
Tipe
Parameter
Deskripsi
Project
Nilai
projectNameyang didefinisikan di file values.yamlUnit manajemen sumber daya yang mengisolasi log dari layanan berbeda.
Untuk membuat Project guna manajemen sumber daya log yang lebih fleksibel, lihat Buat Project.
machine group
k8s-group-${cluster_id}Sekumpulan node pengumpulan log.
PentingKomponen LoongCollector tidak membuat logstore bernama config-operation-log. Jika logstore ini sudah ada, LoongCollector tidak akan menulis log baru ke dalamnya.
Langkah 2: Buat logstore
Logstore adalah unit penyimpanan di Simple Log Service untuk menyimpan log yang dikumpulkan.
-
Masuk ke Konsol Simple Log Service dan klik nama project target.
-
Di panel navigasi sebelah kiri, pilih
, lalu klik + untuk membuat logstore:-
Logstore Name: Masukkan nama unik dalam project. 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 skenario di mana penggunaan fitur tidak pasti.
-
Pay-by-ingested-data: Anda hanya ditagih berdasarkan volume data mentah yang Anda tulis. Mode ini menyediakan penyimpanan gratis selama 30 hari dan fitur gratis seperti transformasi data dan pengiriman. Mode ini cocok untuk skenario bisnis di mana periode penyimpanan sekitar 30 hari atau pipeline pemrosesan data kompleks.
-
-
Data Retention Period: Atur jumlah hari untuk menyimpan log, dari 1 hingga 3.650. Nilai 3.650 menunjukkan retensi permanen. Nilai default adalah 30 hari.
-
Biarkan pengaturan lainnya pada nilai default dan klik OK. Untuk informasi lebih lanjut, lihat Kelola logstore.
-
Langkah 3: Konfigurasikan aturan pengumpulan log
Tentukan log apa yang dikumpulkan oleh LoongCollector, cara menguraikannya, dan cara menyaring kontennya. Kemudian, terapkan konfigurasi tersebut ke kelompok mesin yang terdaftar.
-
Di halaman
LogStores, klik ikon
di sebelah nama LogStore target untuk memperluasnya. -
Klik ikon
di sebelah Import Data. Di kotak dialog Quick Data Import, pilih templat untuk sumber log Anda, lalu klik Integrate Now:-
Untuk output standar kontainer, pilih K8s-Standard Output-New Version.
Templat untuk mengumpulkan output standar kontainer tersedia dalam versi baru dan lama. Kami merekomendasikan menggunakan versi baru. Untuk perbandingan versi baru dan lama, lihat Lampiran: Perbandingan Versi Baru dan Lama Output Standar Kontainer.
-
Untuk log teks kluster, pilih Kubernetes-File.
-
-
Lengkapi Machine Group Configurations, lalu klik Next:
-
Scenario: Pilih Docker Containers.
-
Metode Deployment: Pilih ACK DaemonSet atau Self-managed Cluster in DaemonSet Mode.
-
Dari daftar Source Machine Group, tambahkan kelompok mesin yang dibuat sistem
k8s-group-${cluster_id}ke daftar Applied Machine Group di sebelah kanan.
-
-
Di halaman Logtail Configuration, tentukan parameter berikut dan klik Next.
1. Konfigurasi global dan input
Sebelum memulai, pastikan Anda telah memilih templat pengumpulan data dan menerapkannya ke kelompok mesin. Pada langkah ini, Anda menentukan nama konfigurasi pengumpulan, sumber log, dan cakupannya.
Output standar kontainer
Global Configurations
-
Configuration Name: Tentukan nama kustom untuk konfigurasi pengumpulan. Nama harus unik dalam Project dan tidak dapat diubah setelah dibuat. Nama harus memenuhi persyaratan berikut:
-
Hanya boleh berisi huruf kecil, angka, tanda hubung (-), dan garis bawah (_).
-
Harus dimulai dan diakhiri dengan huruf kecil atau angka.
-
Konfigurasi Input
-
Aktifkan sakelar untuk Stdout and Stderr dan/atau Standard Error sesuai kebutuhan. Secara default, keduanya diaktifkan.
PentingKami merekomendasikan untuk tidak mengaktifkan output standar dan error standar secara bersamaan, karena hal ini dapat menyebabkan entri log yang tidak teratur.
Log teks kluster
Global Configurations:
-
Configuration Name: Tentukan nama kustom untuk konfigurasi pengumpulan. Nama harus unik dalam Project dan tidak dapat diubah setelah dibuat. Nama harus memenuhi persyaratan berikut:
-
Hanya boleh berisi huruf kecil, angka, tanda hubung (-), dan garis bawah (_).
-
Harus dimulai 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 layanan lokal dari host.
-
-
File Path: Jalur absolut untuk pengumpulan log.
-
Linux: Jalur harus dimulai dengan garis miring (/). Contoh,
/data/mylogs/**/*.logmenunjukkan semua file yang memiliki ekstensi.logdi direktori/data/mylogsdan subdirektorinya. -
Windows: Jalur harus dimulai dengan huruf drive. Contoh:
C:\Program Files\Intel\**\*.Log.
-
-
Maximum Directory Monitoring Depth: Kedalaman direktori maksimum yang dapat dicocokkan oleh wildcard
**di File Path. Nilai default adalah 0, yang menunjukkan hanya direktori saat ini. Rentang nilai yang valid adalah 0 hingga 1.000.Kami merekomendasikan mengatur nilai ini ke 0 dan menentukan jalur ke direktori tempat file berada.
2. Pemrosesan dan strukturisasi log
Konfigurasikan aturan pemrosesan log untuk mengubah log mentah yang tidak terstruktur menjadi data terstruktur yang dapat dicari guna meningkatkan efisiensi kueri dan analisis log. Kami merekomendasikan menambahkan sampel log sebelum mengonfigurasi aturan.
Di bagian Processor Configurations pada halaman Logtail Configuration, klik Add Sample Log dan masukkan sampel konten log. Sistem mengidentifikasi format log dari sampel dan membantu Anda menghasilkan ekspresi reguler dan aturan penguraian, menyederhanakan proses konfigurasi.
Skenario 1: Proses log multi-baris
Log seperti stack trace exception Java dan objek JSON sering kali mencakup beberapa baris. Dalam mode pengumpulan default, log ini dibagi menjadi beberapa catatan tidak lengkap, sehingga mengakibatkan kehilangan konteks. Untuk mengatasi hal ini, aktifkan mode multi-baris dan konfigurasikan ekspresi reguler baris pertama untuk menggabungkan baris log berturut-turut menjadi satu entri lengkap.
Contoh:
|
Log mentah yang belum diproses |
Mode pengumpulan default: Setiap baris menjadi log terpisah, memecah stack trace dan kehilangan konteks. |
Mode multi-baris diaktifkan: Ekspresi reguler baris pertama mengidentifikasi log lengkap, mempertahankan struktur semantiknya. |
|
Log mentah berisi stack trace exception Java lengkap. Dimulai dengan timestamp dan level ERROR, serta mencakup |
Dalam mode default, log mentah dibagi menjadi beberapa catatan terpisah. Setiap baris stack trace disimpan di bidang |
Dengan mode multi-baris diaktifkan, stack trace exception lengkap digabung menjadi satu catatan log. Bidang |
Prosedur: Di bagian Processor Configurations pada halaman Logtail Configuration, aktifkan Multi-line Mode:
-
Type: Pilih Custom atau Multi-line JSON.
-
Custom: Jika format log tidak tetap, Anda harus mengonfigurasi Regex to Match First Line untuk mengidentifikasi baris awal setiap entri.
-
Regex to Match First Line: Anda dapat menghasilkan ekspresi reguler secara otomatis atau memasukkannya secara manual. Ekspresi harus mencocokkan seluruh baris. Contohnya, ekspresi reguler yang cocok dengan data pada contoh sebelumnya adalah
\[\d+-\d+-\w+:\d+:\d+,\d+]\s\[\w+]\s.*.-
Generasi otomatis: Klik Auto-Generate Regular Expression. Lalu, di kotak teks Log Sample, pilih konten log untuk diekstrak dan klik Generate Regex.
-
Input manual: Klik Manually Enter Regular Expression. Setelah memasukkan ekspresi, klik Validate.
-
-
-
Multi-line JSON: Pilih opsi ini jika log mentah Anda semuanya dalam format JSON standar. Layanan secara otomatis menangani jeda baris dalam satu log JSON.
-
-
Processing Method If Splitting Fails:
-
Discard: Jika segmen teks tidak cocok dengan aturan baris pertama, segmen tersebut dibuang.
-
Retain Single Line: Teks yang tidak cocok dibagi dan dipertahankan sebagai log satu baris.
-
Skenario 2: Strukturisasi log
Ketika log mentah berupa teks tidak terstruktur atau semi-terstruktur, seperti log akses NGINX atau log output aplikasi, kueri dan analisis langsung bisa menjadi tidak efisien. Layanan ini menyediakan berbagai prosesor penguraian data yang dapat secara otomatis mengonversi log mentah dengan berbagai format menjadi data terstruktur. Hal ini menciptakan fondasi data yang kuat untuk analisis, pemantauan, dan peringatan selanjutnya.
Contoh:
|
Log mentah yang belum diproses |
Output log terstruktur |
|
|
Prosedur: Di bagian Processor Configurations pada halaman Logtail Configuration:
-
Tambahkan prosesor penguraian: Klik Add Processor, lalu konfigurasikan prosesor penguraian ekspresi reguler, delimiter, atau JSON berdasarkan format log. Dalam contoh ini, log NGINX dikumpulkan. Pilih .
-
NGINX Log Configuration: Salin seluruh definisi
log_formatdari file konfigurasi server NGINX (nginx.conf) dan tempelkan ke dalam kotak teks.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 untuk menghasilkan log di server. Jika tidak, penguraian log akan gagal.
-
Parameter konfigurasi umum: Parameter berikut umum untuk beberapa prosesor penguraian data dan memiliki fungsi serta penggunaan yang konsisten.
-
Bidang Asal: Tentukan nama bidang sumber untuk diurai. Nilai default adalah
content, yang merepresentasikan seluruh entri log yang dikumpulkan. -
Pertahankan Bidang Asal saat Penguraian Gagal: Kami merekomendasikan mengaktifkan opsi ini. Jika log tidak dapat diurai dengan sukses oleh prosesor (misalnya, karena ketidakcocokan format), opsi ini memastikan bahwa konten log asli dipertahankan di bidang asal yang ditentukan.
-
Pertahankan Bidang Asal saat Penguraian Berhasil: Jika dipilih, konten log asli dipertahankan bahkan jika log berhasil diurai.
-
3. Penyaringan log
Selama pengumpulan log, pengumpulan besar-besaran log dengan volume tinggi yang bernilai rendah atau tidak relevan, seperti log level DEBUG atau INFO, dapat membuang sumber daya penyimpanan, meningkatkan biaya, mengurangi efisiensi kueri, dan menimbulkan risiko kebocoran data. Untuk mengatasi masalah ini, Anda dapat menerapkan kebijakan penyaringan detail halus untuk pengumpulan log yang efisien dan aman.
Filter berdasarkan konten
Filter log berdasarkan konten bidang, seperti hanya mengumpulkan log dengan level WARNING atau ERROR.
Contoh:
|
Log mentah yang belum diproses |
Kumpulkan hanya log |
|
|
Prosedur: Di bagian Processor Configurations pada halaman Logtail Configuration:
Klik Add Processor dan pilih .
-
Field Name: Bidang log yang akan difilter.
-
Field Value: Ekspresi reguler yang digunakan untuk penyaringan. Hanya pencocokan teks penuh yang didukung. Pencocokan kata kunci parsial tidak didukung.
Daftar hitam
Gunakan daftar hitam untuk mengecualikan direktori atau file tertentu, mencegah log yang tidak relevan atau sensitif diunggah.
Prosedur: Di bagian pada halaman Logtail Configuration, aktifkan Collection Blacklist dan klik Add.
Mendukung pencocokan eksak dan wildcard untuk direktori dan nama file. Satu-satunya wildcard yang didukung adalah tanda bintang (*) dan tanda tanya (?).
-
File Path Blacklist: Jalur file yang akan diabaikan. Contoh:
-
/home/admin/private*.log: Mengabaikan semua file di direktori/home/admin/yang namanya dimulai denganprivatedan diakhiri dengan.log. -
/home/admin/private*/*_inner.log: Mengabaikan file yang diakhiri dengan_inner.logyang berada di subdirektori apa pun yang namanya dimulai denganprivatedi bawah direktori/home/admin/.
-
-
File Blacklist: Nama file yang akan diabaikan selama pengumpulan. Contoh:
-
app_inner.log: Mengabaikan semua file bernamaapp_inner.logselama pengumpulan.
-
-
Directory Blacklist: Jalur direktori tidak boleh diakhiri dengan garis miring (/). Contoh:
-
/home/admin/dir1/: Entri daftar hitam ini tidak valid dan akan diabaikan. -
/home/admin/dir*: Mengabaikan semua file di subdirektori di bawah/home/admin/yang namanya dimulai dengandir. -
/home/admin/*/dir: Mengabaikan semua file di subdirektori tingkat kedua bernamadirdi bawah direktori/home/admin/. Misalnya, file di direktori/home/admin/a/dirdiabaikan, tetapi file di direktori/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 pengumpulan log dari kontainer tertentu.
Prosedur: Di bagian Input Configurations pada halaman Logtail Configuration, aktifkan Container Filtering dan klik Add.
Beberapa kondisi digabungkan dengan logika AND. Semua pencocokan ekspresi reguler didasarkan pada mesin RE2 Go, yang memiliki beberapa keterbatasan dibandingkan mesin seperti PCRE. Pastikan ekspresi reguler Anda mematuhi panduan dalam Lampiran: Batasan Penggunaan Ekspresi Reguler (Penyaringan Kontainer).
-
Daftar Hitam/Putih Variabel Lingkungan: Tentukan kondisi berdasarkan variabel lingkungan kontainer target.
-
Daftar Hitam/Putih Label Pod K8s: Tentukan kondisi berdasarkan label Pod tempat kontainer target berada.
-
Pencocokan Regex Nama Pod K8s: Tentukan kontainer untuk dikumpulkan dengan mencocokkan nama Pod.
-
Pencocokan Regex Namespace K8s: Tentukan kontainer untuk dikumpulkan dengan mencocokkan nama namespace.
-
Pencocokan Regex Nama Kontainer K8s: Tentukan kontainer untuk dikumpulkan dengan mencocokkan nama kontainer.
-
Daftar Hitam/Putih Label Kontainer: Kumpulkan log dari kontainer yang labelnya sesuai dengan kondisi yang ditentukan. Fitur ini ditujukan untuk skenario Docker dan tidak direkomendasikan untuk skenario Kubernetes.
4. Kategorisasi log
Dalam skenario di mana beberapa aplikasi atau instans berbagi format log yang sama, sulit untuk membedakan sumber log. Hal ini menyebabkan hilangnya konteks selama kueri dan analisis yang tidak efisien. Untuk mengatasi hal ini, Anda dapat mengonfigurasi topik log dan penandaan log untuk asosiasi konteks otomatis dan kategorisasi logis.
Topik log
Ketika log dari beberapa aplikasi atau instans berbagi format yang sama tetapi jalur berbeda (misalnya, /apps/app-A/run.log dan /apps/app-B/run.log), sulit untuk membedakan sumbernya. Dalam kasus seperti ini, Anda dapat menghasilkan topik berdasarkan kelompok mesin, nama kustom, atau ekstraksi jalur file untuk secara fleksibel membedakan log dari berbagai layanan atau jalur bisnis.
Prosedur: Buka dan pilih metode pembuatan topik. Tiga metode berikut didukung:
-
Machine Group Topic: Jika konfigurasi pengumpulan diterapkan ke beberapa kelompok mesin, LoongCollector secara otomatis menggunakan nama kelompok mesin server sebagai nilai bidang
__topic__. Metode ini cocok untuk skenario di mana log dikategorikan berdasarkan kluster host. -
Custom: Gunakan format
customized://<custom_topic_name>, misalnya,customized://app-login. Metode ini cocok untuk skenario topik statis dengan pengenal bisnis tetap. -
File Path Extraction: Ekstrak informasi kunci dari jalur lengkap file log untuk memberi tag sumber log secara dinamis. Metode ini cocok untuk situasi di mana beberapa pengguna atau aplikasi berbagi nama file log yang sama tetapi memiliki jalur berbeda.
Jika beberapa pengguna atau layanan menulis log ke direktori tingkat atas yang berbeda tetapi menggunakan jalur subdirektori dan nama file yang sama, sumbernya tidak dapat dibedakan hanya berdasarkan nama file. Contoh:
/data/logs ├── userA │ └── serviceA │ └── service.log ├── userB │ └── serviceA │ └── service.log └── userC └── serviceA └── service.logDalam kasus ini, Anda dapat mengonfigurasi File Path Extraction dan menggunakan ekspresi reguler untuk mengekstrak informasi kunci dari jalur lengkap. Hasil yang cocok kemudian diunggah ke LogStore sebagai topik log.
Aturan ekstraksi
Saat Anda mengonfigurasi ekspresi reguler, sistem secara otomatis menentukan format bidang output berdasarkan jumlah dan penamaan grup penangkapan, seperti dijelaskan dalam aturan berikut:
Dalam ekspresi reguler untuk jalur file, Anda harus meng-escape garis miring (/).
Jenis kelompok penangkap
Kasus penggunaan
Bidang yang dihasilkan
Contoh regex
Contoh jalur yang cocok
Bidang yang dihasilkan
Grup penangkapan tunggal (satu
(.*?))Hanya satu dimensi yang diperlukan untuk membedakan sumber, seperti nama pengguna atau lingkungan.
Menghasilkan bidang
__topic__.\/logs\/(.*?)\/app\.log/logs/userA/app.log__topic__:userABeberapa grup penangkapan tanpa nama (beberapa instance
(.*?))Beberapa dimensi diperlukan, tetapi tanpa label semantik.
Menghasilkan bidang tag dalam format
__tag__:__topic_{i}__, di mana{i}adalah nomor urut grup penangkapan.\/logs\/(.*?)\/(.*?)\/app\.log/logs/userA/svcA/app.log__tag__:__topic_1__:userA;__tag__:__topic_2__:svcABeberapa grup penangkapan bernama (menggunakan
(?P<name>.*?))Beberapa dimensi diperlukan, dan makna bidang yang jelas diinginkan untuk memudahkan kueri dan analisis.
Menghasilkan bidang tag dalam format
__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 melampirkan informasi ini sebagai tag untuk pengelompokan log detail halus.
Prosedur: Di bagian Input Configurations pada halaman Logtail Configuration, aktifkan Log Tag Enrichment dan klik Add.
-
Environment Variables: Konfigurasikan nama variabel lingkungan dan nama tag. Nilai variabel lingkungan disimpan sebagai nilai tag.
-
Nama Variabel Lingkungan: Nama variabel lingkungan yang akan diekstrak.
-
Nama Tag: Nama tag yang menyimpan nilai variabel lingkungan.
-
-
Pod Labels: Konfigurasikan nama label Pod dan nama tag. Nilai label Pod disimpan sebagai nilai tag.
-
Nama Label Pod: Nama label Pod Kubernetes yang akan diekstrak.
-
Nama Tag: Nama tag yang menyimpan nilai label Pod.
-
5. Konfigurasi output
Secara default, semua log dikumpulkan dan dikirim ke LogStore saat ini dengan kompresi lz4. Untuk mengirim log dari sumber yang sama ke LogStore yang berbeda, ikuti langkah-langkah di bawah ini.
Pengiriman multi-tujuan
-
Pengiriman multi-tujuan hanya tersedia di LoongCollector 3.0.0 dan yang lebih baru. Logtail tidak mendukung fitur ini.
-
Anda dapat mengonfigurasi maksimal lima tujuan output.
-
Setelah Anda mengonfigurasi beberapa tujuan output, konfigurasi pengumpulan ini tidak akan lagi tercantum di bawah LogStore saat ini. Untuk melihat, mengubah, atau menghapus konfigurasi pengiriman multi-tujuan, lihat Bagaimana cara mengelola konfigurasi pengiriman multi-tujuan?.
Prosedur: Di bagian Output Configurations pada halaman Logtail Configuration:
-
Klik
untuk memperluas konfigurasi output. -
Klik Add Output Targets dan lengkapi konfigurasi berikut:
-
Logstores: Pilih LogStore tujuan.
-
Compression Method: Jenis yang didukung adalah lz4 dan zstd.
-
Route Settings: Rute dan kirim log berdasarkan bidang tagnya. Log yang cocok dengan konfigurasi routing dikirim ke LogStore tujuan. Jika konfigurasi ini dibiarkan kosong, semua log yang dikumpulkan dikirim ke LogStore tujuan.
-
Tag Name: Nama bidang tag yang digunakan untuk routing. Masukkan nama bidang secara langsung, seperti
__path__, tanpa awalan__tag__:. Bidang tag terbagi menjadi dua kategori berikut:Untuk informasi lebih lanjut tentang tag, lihat Kelola Tag Pengumpulan LoongCollector.
-
Terkait agen: Tag yang berasal dari agen pengumpulan dan independen dari prosesor. Contoh:
__hostname__,__user_defined_id__. -
Terakit prosesor input: Tag yang bersumber dari prosesor input, yang menambahkan informasi kontekstual ke log. Contoh:
__path__untuk pengumpulan file;_pod_name_dan_container_name_untuk pengumpulan K8s.
-
-
Tag Value: Jika bidang tag log cocok dengan nilai ini, log dikirim ke LogStore tujuan.
-
Discard this tag?: Jika diaktifkan, log yang diunggah tidak akan berisi bidang tag ini.
-
-
Langkah 4: Kueri dan analisis
Setelah mengonfigurasi pemrosesan log dan plugin, klik Next untuk membuka halaman Query and Analysis Configurations:
-
Secara default, indeks teks penuh diaktifkan, memungkinkan Anda mencari kata kunci dalam konten log mentah.
-
Untuk menjalankan kueri presisi berdasarkan bidang, klik Automatic Index Generation setelah Preview Data dimuat. Layanan Log kemudian menghasilkan indeks bidang berdasarkan entri pertama dalam data pratinjau.
Setelah menyelesaikan konfigurasi, klik Next untuk menyelesaikan proses pengumpulan.
Langkah 5: Validasi dan troubleshooting
Setelah membuat konfigurasi pengumpulan dan menerapkannya ke kelompok mesin, sistem secara otomatis men-deploy konfigurasi tersebut dan mulai mengumpulkan log inkremental.
Lihat log yang dikumpulkan
-
Konfirmasi bahwa log baru sedang ditulis ke file log: LoongCollector hanya mengumpulkan log inkremental. Jalankan perintah
tail -f /path/to/your/log/filedan picu operasi layanan untuk menghasilkan log baru. -
Kueri log: Buka halaman kueri dan analisis Logstore target dan klik Search & Analyze. Rentang waktu default adalah 15 menit terakhir. Periksa log baru. Secara default, setiap log teks kontainer yang dikumpulkan mencakup 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 oleh kontainer.
__tag__:_pod_name_
Nama Pod.
__tag__:_namespace_
Namespace Pod.
__tag__:_pod_uid_
Pengenal unik (UID) Pod.
Penyelesaian masalah umum
Heartbeat kelompok mesin gagal
-
Periksa pengenal pengguna: Jika server Anda bukan instans ECS, atau jika instans ECS dan Project termasuk dalam Akun Alibaba Cloud yang berbeda, verifikasi bahwa direktori yang ditentukan berisi file pengenal pengguna yang benar.
-
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>.
Jika file yang dinamai sesuai dengan ID Akun Alibaba Cloud Project saat ini ada di jalur yang ditentukan, pengenal pengguna dikonfigurasi dengan benar.
-
-
Periksa pengenal kelompok mesin: Jika Anda menggunakan kelompok mesin dengan ID kustom, verifikasi bahwa file
user_defined_idada di direktori yang ditentukan. Jika ada, periksa apakah isinya sesuai dengan ID kustom yang dikonfigurasi untuk kelompok mesin.-
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 jika belum ada), buat fileuser_defined_iddan tuliskan ID kustom ke dalamnya.
-
-
Jika pengenal pengguna dan pengenal kelompok mesin dikonfigurasi dengan benar, lihat Panduan Troubleshooting Kelompok Mesin LoongCollector (Logtail) untuk langkah troubleshooting lebih lanjut.
Error pengumpulan atau format log
Pendekatan troubleshooting: Error ini menunjukkan bahwa koneksi jaringan dan konfigurasi dasar normal. Penyebabnya biasanya ketidakcocokan antara konten log dan aturan parsing. Lihat pesan error spesifik untuk menemukan penyebabnya:
-
Di halaman Logtail Configuration, klik nama konfigurasi LoongCollector (Logtail) yang gagal. Di tab Log Collection Error, klik Select Time Range untuk mengatur rentang waktu kueri.
-
Di bagian , periksa jenis peringatan log error dan temukan solusi yang sesuai di Error Pengumpulan Data Umum.
Langkah selanjutnya
-
Visualisasi data: Gunakan dasbor visualisasi untuk memantau tren metrik utama.
-
Peringatan otomatis untuk anomali data: Tetapkan kebijakan peringatan untuk mendeteksi anomali sistem secara real-time.
Troubleshooting pengumpulan log kontainer
-
Setelah Anda mengonfigurasi LoongCollector (Logtail), jika file log target tidak berisi log baru, LoongCollector (Logtail) tidak mengumpulkan data darinya.
FAQ
Kelola konfigurasi distribusi multi-tujuan
Karena konfigurasi distribusi multi-tujuan dikaitkan dengan beberapa Logstore, konfigurasi tersebut harus dikelola di halaman manajemen tingkat Project:
-
Masuk ke Konsol Simple Log Service dan klik nama Project target.
-
Di halaman Project, klik
di panel navigasi sebelah kiri.CatatanHalaman ini mengelola secara terpusat semua konfigurasi pengumpulan di Project, termasuk konfigurasi yang tersisa dari Logstore yang secara tidak sengaja dihapus.
Transfer log kluster ACK ke akun lain
Anda dapat mengirim log kontainer ke Project Simple Log Service di akun Alibaba Cloud lain dengan menginstal komponen LoongCollector (Logtail) secara manual di kluster ACK dan mengonfigurasikannya dengan ID Akun Alibaba Cloud atau kredensial akses (AccessKey) akun target.
Skenario: Untuk mengumpulkan data log dari kluster ACK ke Project Simple Log Service di akun Alibaba Cloud yang berbeda karena alasan seperti struktur organisasi, isolasi izin, atau pemantauan terpusat, instal LoongCollector (Logtail) secara manual untuk mengaktifkan pengumpulan lintas akun.
Prosedur: Ikuti langkah-langkah berikut untuk menginstal LoongCollector secara manual. Untuk informasi lebih lanjut, lihat Instal dan konfigurasikan Logtail.
-
Hubungkan ke kluster Kubernetes Anda dan jalankan perintah yang sesuai dengan wilayah kluster Anda:
Wilayah Tiongkok Daratan
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 -
Berpindah ke direktori
loongcollector-custom-k8s-packagedan ubah file konfigurasi./loongcollector/values.yaml.# ===================== Informasi wajib ===================== # Project tempat log dari kluster ini dikumpulkan. Contoh: k8s-log-custom-sd89ehdq projectName: "" # Wilayah tempat Project berada. Contoh: cn-shanghai region: "" # ID Akun Alibaba Cloud yang memiliki Project. Sertakan ID 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. Kebijakan AliyunLogFullAccess diperlukan. 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 install -
Setelah instalasi selesai, periksa status komponen.
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, yang dapat Anda lihat di Konsol Simple Log Service.
Tipe
Parameter
Deskripsi
Project
Nilai
projectNameyang didefinisikan di file values.yamlUnit manajemen sumber daya yang mengisolasi log dari layanan berbeda.
Untuk membuat Project guna manajemen sumber daya log yang lebih fleksibel, lihat Buat Project.
machine group
k8s-group-${cluster_id}Sekumpulan node pengumpulan log.
PentingKomponen LoongCollector tidak membuat logstore bernama config-operation-log. Jika logstore ini sudah ada, LoongCollector tidak akan menulis log baru ke dalamnya.
Konfigurasi ganda untuk satu sumber
Secara default, Simple Log Service hanya menggunakan satu konfigurasi pengumpulan per sumber log untuk mencegah duplikasi data:
-
Setiap file log teks hanya dapat dicocokkan dengan satu konfigurasi pengumpulan Logtail.
-
Untuk output standar kontainer (stdout):
-
Jika Anda menggunakan templat output standar baru, hanya satu konfigurasi pengumpulan yang dapat mengumpulkan dari stdout secara default.
-
Templat output standar lama mendukung pengumpulan ganda secara default tanpa konfigurasi tambahan.
-
-
Masuk ke Konsol Simple Log Service dan buka Project target.
-
Di panel navigasi sebelah kiri, klik
Logstores dan temukan Logstore target. -
Klik ikon
di sebelah nama Logstore untuk memperluas detailnya. -
Klik Logtail Configuration. Di daftar konfigurasi, temukan konfigurasi Logtail target dan klik Manage Logtail Configuration di kolom Actions.
-
Di halaman konfigurasi, klik Edit dan gulir ke bagian Input Configurations.
-
Untuk log file teks, aktifkan Allow File to Be Collected for Multiple Times.
-
Untuk output standar kontainer, aktifkan Allow Collection by Different Logtail Configurations.
-
Error dependensi saat uninstallasi
Gejala: Saat mencoba meng-uninstall komponen pengumpulan log loongcollector (logtail-ds) di Container Service for Kubernetes (ACK), sistem melaporkan error berikut:
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: Error ini terjadi karena fitur pengumpulan log plugin jaringan terway-eniip membuat dependensi pada komponen loongcollector (logtail-ds). Oleh karena itu, ACK mencegah uninstallasi hingga dependensi ini dihapus.
Solusi: Ikuti langkah-langkah berikut untuk menghapus dependensi sebelum meng-uninstall komponen:
-
Masuk ke Konsol ACK.
-
Di daftar kluster, klik nama kluster target.
-
Di panel navigasi sebelah kiri, klik Add-ons.
-
Di halaman Add-ons, temukan komponen
terway-eniipdan klik . -
Di kotak dialog konfirmasi yang muncul, klik OK.
-
Setelah konfigurasi diterapkan, coba uninstall komponen loongcollector (logtail-ds) lagi.
Entri log terakhir tertunda atau terpotong
Analisis: Pemotongan log sering terjadi ketika baris terakhir dalam file log tidak memiliki karakter line feed, atau ketika entri log multi-baris (seperti stack exception) tidak lengkap. Hal ini terjadi karena collector tidak dapat menentukan apakah entri log sudah lengkap, yang dapat menyebabkan segmen terakhir terpisah secara prematur atau dilaporkan setelah penundaan. Mekanisme penanganan bervariasi tergantung versi LoongCollector (Logtail):
-
Versi sebelum 1.8:
Jika baris terakhir log tidak memiliki line feed (atau carriage return), atau jika log multi-baris tidak lengkap, collector menunggu operasi penulisan berikutnya untuk memicu output. Hal ini dapat menyebabkan entri log terakhir ditahan untuk periode yang lama hingga log baru ditulis. -
Versi 1.8 dan lebih baru:
Versi ini memperkenalkan mekanisme flush timeout untuk mencegah log ditahan tanpa batas. Saat collector mendeteksi baris log yang tidak lengkap, timer dimulai. Setelah periode timeout berakhir, buffer saat ini secara otomatis dikirimkan, memastikan log akhirnya dikumpulkan.-
Timeout default: 60 detik (memastikan integritas log dalam sebagian besar skenario).
-
Anda dapat menyesuaikan nilai ini sesuai kebutuhan, tetapi jangan mengaturnya ke 0. Mengatur nilai ke 0 dapat menyebabkan pemotongan log atau kehilangan data parsial.
-
Solusi:
Anda dapat memperpanjang periode timeout untuk memastikan log ditulis sepenuhnya sebelum dikumpulkan:
-
Masuk ke Konsol Simple Log Service dan buka Project target.
-
Di panel navigasi sebelah kiri, klik
Logstores dan temukan Logstore target. -
Klik ikon
di sebelah nama Logstore untuk memperluas detailnya. -
Klik Logtail Configuration. Di daftar konfigurasi, temukan konfigurasi Logtail target dan klik Manage Logtail Configuration di kolom Actions.
-
Di halaman konfigurasi, klik Edit.
-
Buka dan 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. Jangan mengatur nilai ini ke 0, karena dapat menyebabkan pemotongan log atau kehilangan data parsial.
-
-
-
Setelah menyelesaikan konfigurasi, klik OK.
Failover titik akhir jaringan
Jika LoongCollector (Logtail) mendeteksi anomali komunikasi di jaringan internal, seperti kegagalan jaringan atau timeout koneksi, secara otomatis beralih ke titik akhir jaringan publik untuk transmisi data. Hal ini memastikan pengumpulan log yang berkelanjutan dan andal, mencegah penumpukan log atau kehilangan data.
-
LoongCollector: Secara otomatis beralih kembali ke jaringan internal begitu konektivitas dipulihkan.
-
Logtail: Tidak secara otomatis beralih kembali. Anda harus me-restart komponen secara manual untuk melanjutkan komunikasi melalui jaringan internal.
Lampiran: Referensi prosesor native
Di bagian Processor Configurations pada halaman Logtail Configuration, tambahkan prosesor untuk menyusun log mentah. Untuk menambahkan plugin pemrosesan ke konfigurasi yang sudah ada:
-
Di panel navigasi sebelah kiri, pilih
Logstores dan temukan logstore target. -
Klik ikon
di depan 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 Prosesor ekstensi.
Aturan menggabungkan plugin (untuk LoongCollector / Logtail 2.0 dan yang lebih baru):
-
Prosesor native dan ekstensi dapat digunakan secara independen atau digabungkan sesuai kebutuhan.
-
Utamakan prosesor native karena menawarkan kinerja dan stabilitas yang lebih baik.
-
Ketika fitur native tidak dapat memenuhi kebutuhan bisnis Anda, tambahkan prosesor ekstensi setelah prosesor native yang dikonfigurasi untuk pemrosesan tambahan.
Batasan urutan:
Plugin dijalankan secara berurutan sesuai konfigurasi, membentuk rantai pemrosesan. Semua prosesor native harus mendahului prosesor ekstensi apa pun. Setelah menambahkan prosesor ekstensi, Anda tidak dapat menambahkan prosesor native lagi.
Penguraian data (mode regex)
Anda dapat menggunakan ekspresi reguler untuk mengekstrak bidang dari log dan mengurai log menjadi pasangan kunci-nilai. Setiap bidang kemudian dapat dikueri dan dianalisis secara independen.
Contoh:
|
Log mentah |
Hasil |
|
|
Prosedur: Di halaman Logtail Configuration, di bagian Processor Configurations, klik Add Processor, lalu pilih :
-
Regular Expression: Ekspresi reguler yang digunakan untuk mencocokkan log. Anda dapat menghasilkan ekspresi secara otomatis atau memasukkannya secara manual.
-
Hasilkan ekspresi reguler secara otomatis:
-
Klik Auto-generate regular expression.
-
Di bidang Log Sample, sorot konten log yang ingin Anda ekstrak.
-
Klik Generate regular expression.
Setelah Anda menyorot konten, tombol Generate regular expression muncul di atas teks log.
-
-
Masukkan ekspresi reguler secara manual berdasarkan format log.
Setelah menyelesaikan konfigurasi, klik Validate untuk menguji apakah ekspresi reguler dapat mengurai konten log dengan benar.
-
-
Extracted Field: Atur nama bidang (kunci) untuk nilai log yang diekstrak.
-
Untuk informasi tentang parameter lainnya, lihat deskripsi parameter konfigurasi umum di Studi Kasus 2: Log terstruktur.
Penguraian data (mode delimiter)
Anda dapat menggunakan delimiter untuk mengurai konten log menjadi pasangan kunci-nilai. Delimiter karakter tunggal maupun multi-karakter didukung.
Contoh:
|
Log mentah |
Menggunakan karakter yang ditentukan |
|
|
Prosedur: Di halaman Logtail Configuration, di bagian Processor Configurations, klik Add Processor, lalu pilih :
-
Delimiter: Karakter yang digunakan untuk membagi konten log.
Contoh: Untuk file CSV, pilih Custom dan masukkan koma setengah lebar (,).
-
Quote: Jika nilai bidang berisi delimiter, Anda harus menentukan quote untuk membungkus bidang tersebut guna mencegah pemisahan yang salah.
-
Extracted Field: Atur nama bidang (kunci) untuk kolom hasil secara berurutan. Aturan berikut berlaku:
-
Nama bidang hanya boleh berisi huruf, angka, dan garis bawah (_).
-
Nama bidang harus dimulai dengan huruf atau garis bawah (_).
-
Panjang maksimum adalah 128 byte.
-
-
Untuk informasi tentang parameter lainnya, lihat deskripsi parameter konfigurasi umum di Studi Kasus 2: Log terstruktur.
Penguraian data (mode JSON)
Anda dapat mengurai objek JSON dari log Anda menjadi pasangan kunci-nilai.
Contoh:
|
Log mentah |
Hasil |
|
|
Prosedur: Di halaman Logtail Configuration, di bagian Processor Configurations, klik Add Processor, lalu pilih :
-
Original Field: Nilai default adalah
content. Bidang ini menyimpan konten log mentah yang akan diurai. -
Untuk informasi tentang parameter lainnya, lihat deskripsi parameter konfigurasi umum di Studi Kasus 2: Log terstruktur.
Perluas bidang JSON
Anda dapat mengurai log JSON bersarang menjadi pasangan kunci-nilai dengan menentukan kedalaman perluasan.
Contoh:
|
Log mentah |
Kedalaman perluasan: 0 |
Kedalaman perluasan: 1 |
|
|
|
Prosedur: Di halaman Logtail Configuration, di bagian Processor Configurations, klik Add Processor, lalu pilih :
-
Original Field: Nama bidang sumber untuk diperluas, seperti
content. -
JSON Expansion Depth: Jumlah level untuk diperluas dalam objek JSON. Nilai 0 (default) memperluas semua level. Nilai 1 mencegah perluasan objek bersarang.
-
Character to Concatenate Expanded Keys: Karakter yang digunakan untuk menggabungkan nama bidang bersarang. Default adalah garis bawah _.
-
Name Prefix of Expanded Keys: Awalan untuk nama bidang setelah perluasan JSON.
-
Expand Array: Aktifkan opsi ini untuk memperluas array menjadi pasangan kunci-nilai yang diindeks.
Contoh:
{"k":["a","b"]}diperluas menjadi{"k[0]":"a","k[1]":"b"}.Untuk mengganti nama bidang yang diperluas, misalnya dari
prefix_s_key_k1menjadinew_field_name, Anda dapat menambahkan prosesor Rename Fields untuk melakukan pemetaan. -
Untuk informasi tentang parameter lainnya, lihat deskripsi parameter konfigurasi umum di Studi Kasus 2: Log terstruktur.
Penguraian array JSON
Gunakan fungsi json_extract untuk mengekstrak objek JSON dari array JSON.
Contoh:
|
Log mentah |
Objek yang diekstrak |
|
|
Prosedur: Di halaman Logtail Configuration, di bagian 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 bernama json1 dan json2.
* | extend json1 = json_extract(content, '$[0]'), json2 = json_extract(content, '$[1]')Penguraian data (mode Apache)
Anda dapat menyusun konten log menjadi beberapa pasangan kunci-nilai berdasarkan definisi di file konfigurasi log Apache Anda.
Contoh:
|
Log mentah |
Format Log Umum Apache |
|
|
Prosedur: Di halaman Logtail Configuration, di bagian Processor Configurations, klik Add Processor, lalu pilih :
-
Log Format: combined
-
APACHE LogFormat Configuration: Sistem secara otomatis mengisi bidang ini berdasarkan Log Format yang dipilih.
PentingAnda harus memverifikasi konten yang diisi otomatis untuk memastikan identik dengan definisi LogFormat di file konfigurasi Apache di server Anda, yang biasanya terletak di
/etc/apache2/apache2.conf. -
Untuk informasi tentang parameter lainnya, lihat deskripsi parameter konfigurasi umum di Studi Kasus 2: Log terstruktur.
Penyamaran data
Sembunyikan data sensitif dalam log Anda.
Contoh:
|
Log mentah |
Hasil yang disembunyikan |
|
|
Prosedur: Di halaman Logtail Configuration, di bagian Processor Configurations, klik Add Processor, lalu pilih :
-
Original Field: Bidang 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: Jika Anda mengatur Data Masking Method ke const, Anda harus memasukkan string untuk mengganti konten sensitif.
-
Content Expression that Precedes Replaced Content: Ekspresi reguler yang mencocokkan konten tepat sebelum data sensitif. Ekspresi ini menggunakan sintaks RE2.
-
Content Expression to Match Replaced Content: Ekspresi reguler yang mencocokkan konten sensitif. Ekspresi ini menggunakan sintaks RE2.
Penguraian waktu
Mengurai bidang waktu di log dan mengatur hasil yang diurai sebagai bidang __time__ log.
Contoh:
|
Log mentah |
Hasil |
|
Log yang diurai ditampilkan sebagai pasangan kunci-nilai terstruktur, dengan bidang waktu diurai dengan benar sebagai waktu log (misalnya, 09-29 09:56:01) dan bidang lain seperti |
Prosedur: Di halaman Logtail Configuration, di bagian Processor Configurations, klik Add Processor, lalu pilih :
-
Original Field: Bidang yang berisi nilai waktu yang akan diurai.
-
Time Format: format waktu yang sesuai dengan nilai waktu di log.
-
Time Zone: Zona waktu bidang waktu sumber. Secara default, sistem menggunakan zona waktu lingkungan tempat proses LoongCollector (Logtail) berjalan.
Lampiran: Batasan ekspresi reguler
Ekspresi reguler untuk penyaringan kontainer menggunakan mesin Go RE2, yang memiliki batasan sintaks dibandingkan mesin lain seperti Perl Compatible Regular Expressions (PCRE). Perhatikan hal berikut saat menulis ekspresi reguler:
1. Perbedaan sintaks grup bernama
Go menggunakan sintaks (?P<name>...) untuk grup bernama dan tidak mendukung sintaks (?<name>...) yang digunakan di PCRE.
-
Benar:
(?P<year>\d{4}) -
Salah:
(?<year>\d{4})
2. Fitur ekspresi reguler yang tidak didukung
RE2 tidak mendukung fitur ekspresi reguler umum berikut yang kompleks. Hindari penggunaannya:
-
Assertion:
(?=...),(?!...),(?<=...), atau(?<!...) -
Ekspresi kondisional:
(?(condition)true|false) -
Pencocokan rekursif:
(?R)atau(?0) -
Referensi subprogram:
(?&name)atau(?P>name) -
Grup atomik:
(?>...)
3. Rekomendasi
Untuk men-debug ekspresi reguler Anda, gunakan alat seperti Regex101. Untuk memastikan kompatibilitas, pilih mode Golang (RE2) untuk validasi. Plugin akan gagal mengurai atau menemukan kecocokan dengan ekspresi yang menggunakan sintaks yang tidak didukung.
Lampiran: Perbandingan versi output standar kontainer
Untuk meningkatkan efisiensi penyimpanan dan konsistensi pengumpulan, format metadata log untuk output standar kontainer telah ditingkatkan. Dalam format baru, semua metadata dikonsolidasikan di bawah bidang __tag__ untuk mengoptimalkan penyimpanan dan menstandarkan format.
Keunggulan inti versi baru
Keuntungan kinerja signifikan
Direfaktor dalam C++, versi baru memberikan peningkatan kinerja 180% hingga 300% dibandingkan implementasi Go sebelumnya.
Mendukung plugin native untuk pemrosesan data dan pemrosesan paralel multi-threaded untuk memanfaatkan sumber daya sistem secara penuh.
Mendukung kombinasi fleksibel plugin native dan Go untuk menangani skenario kompleks.
Keandalan yang ditingkatkan
Mendukung antrian rotasi log untuk output standar kontainer dan menyatukan mekanisme pengumpulan log dengan mekanisme pengumpulan file. Penyatuan ini memastikan keandalan tinggi selama rotasi log cepat.
Konsumsi sumber daya lebih rendah
Penggunaan CPU berkurang 20% hingga 25%.
Penggunaan memori berkurang 20% hingga 25%.
Konsistensi O&M yang ditingkatkan
Konfigurasi parameter terpadu: Parameter konfigurasi untuk plugin pengumpulan output standar kontainer baru konsisten dengan plugin pengumpulan file.
Manajemen metadata terpadu: Nama bidang dan lokasi penyimpanan untuk metadata kontainer sekarang konsisten dengan format pengumpulan file. Akibatnya, sisi konsumen hanya memerlukan satu set logika pemrosesan.
Perbandingan fitur versi baru dan lama
Fitur
Perilaku sebelumnya
Perilaku baru
Metode penyimpanan
Metadata disematkan dalam konten log sebagai bidang individual.
Metadata dikonsolidasikan di bawah bidang
__tag__.Efisiensi penyimpanan
Setiap entri log berisi set lengkap metadata duplikat, yang mengonsumsi lebih banyak ruang penyimpanan.
Beberapa entri log dari sumber yang sama dapat menggunakan kembali metadata, menghemat biaya penyimpanan.
Konsistensi format
Format tidak konsisten dengan format pengumpulan file.
Nama bidang dan struktur penyimpanan sekarang konsisten dengan format pengumpulan file, memberikan pengalaman terpadu.
Metode akses kueri
Anda dapat mengkueri bidang metadata langsung berdasarkan nama, seperti
_container_name_.Anda harus mengakses pasangan kunci-nilai yang sesuai melalui objek
__tag__, seperti__tag__: _container_name_.Pemetaan bidang metadata kontainer
Parameter sebelumnya
Parameter 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 bagian tag log dalam format
__tag__:<key>alih-alih disematkan dalam konten log.Dampak pada pengguna
Adaptasi sisi konsumen: Karena lokasi penyimpanan berubah dari "Content" ke "Tag", Anda harus menyesuaikan logika konsumsi log Anda. Misalnya, Anda harus menggunakan __tag__ untuk mengakses bidang saat menjalankan kueri.
Kompatibilitas kueri SQL: Kueri SQL secara otomatis kompatibel mundur, sehingga Anda tidak perlu memodifikasi kueri yang ada untuk memproses log dari kedua versi.