全部产品
Search
文档中心

Simple Log Service:Kumpulkan log kontainer Docker (standard output/file)

更新时间:Jan 29, 2026

Dalam lingkungan terkontainerisasi, log aplikasi tersebar di seluruh standard output dan file log berbagai kontainer Docker, sehingga menyulitkan manajemen dan pengambilannya. Gunakan LoongCollector dari Simple Log Service (SLS) untuk mengumpulkan log dari beberapa node ke dalam satu logstore. Hal ini memungkinkan penyimpanan terpusat, penguraian terstruktur, penyamaran data, penyaringan, serta kueri dan analisis yang efisien.

Catatan penggunaan

  • Persyaratan izin: Akun Alibaba Cloud atau Pengguna RAM yang Anda gunakan untuk penerapan harus memiliki izin AliyunLogFullAccess.

  • Persyaratan versi Docker dan LoongCollector:

    • Jika versi Docker Engine Anda adalah 29.0 atau lebih baru, atau jika versi minimum API Docker yang didukung adalah 1.42 atau lebih baru, Anda harus menggunakan LoongCollector 3.2.4 atau lebih baru. Jika tidak, LoongCollector tidak dapat mengumpulkan output standar kontainer atau log file.

    • Versi LoongCollector 3.2.4 dan lebih baru mendukung versi API Docker dari 1.24 hingga 1.48.

    • Versi LoongCollector 3.2.3 dan lebih lama mendukung versi API Docker dari 1.18 hingga 1.41.

  • Batasan pengumpulan standard output:

    • Anda harus menambahkan "log-driver": "json-file" ke file konfigurasi Docker, daemon.json.

    • Untuk CentOS 7.4 dan versi yang lebih baru, kecuali CentOS 8.0, Anda harus mengatur fs.may_detach_mounts=1.

  • Batasan pengumpulan log teks: Hanya driver penyimpanan overlay dan overlay2 yang didukung. Untuk tipe driver lainnya, Anda harus memasang direktori log secara manual.

Proses pembuatan konfigurasi pengumpulan

  1. Preparations: Buat proyek dan logstore. Proyek adalah unit manajemen resource yang digunakan untuk mengisolasi log dari aplikasi berbeda, sedangkan logstore digunakan untuk menyimpan log.

  2. Configure a machine group (install LoongCollector): Instal LoongCollector pada server tempat Anda ingin mengumpulkan log dan tambahkan server tersebut ke kelompok mesin. Gunakan kelompok mesin untuk mengelola node pengumpulan secara terpusat, mendistribusikan konfigurasi, dan mengelola status server.

  3. Create and configure log collection rules

    1. Global and input configuration: Tentukan nama konfigurasi pengumpulan, sumber, dan cakupan pengumpulan log.

    2. Log processing and structuring: Konfigurasikan aturan pemrosesan berdasarkan format log.

      • Log multi-baris: Berlaku untuk log tunggal yang membentang di beberapa baris, seperti stack exception Java atau traceback Python. Anda harus menggunakan ekspresi reguler untuk mengidentifikasi awal setiap log.

      • Penguraian terstruktur: Konfigurasikan plugin penguraian, seperti mode ekspresi reguler, pemisah, atau NGINX, untuk mengekstrak string mentah menjadi pasangan kunci-nilai terstruktur. Hal ini memfasilitasi kueri dan analisis selanjutnya.

    3. Log filtering: Konfigurasikan daftar hitam pengumpulan dan aturan penyaringan konten untuk memfilter konten log yang valid. Praktik ini mengurangi transmisi dan penyimpanan data berlebih.

    4. Log categorization: Konfigurasikan topik dan tag log untuk membedakan log dari aplikasi, kontainer, atau sumber path yang berbeda secara fleksibel.

  4. Query and analysis configuration: Sistem mengaktifkan indeks teks penuh secara default, yang mendukung pencarian kata kunci. Kami merekomendasikan agar Anda mengaktifkan indeks bidang untuk kueri dan analisis presisi pada bidang terstruktur guna meningkatkan efisiensi pencarian.

  5. Validation and troubleshooting: Setelah menyelesaikan konfigurasi, verifikasi bahwa log berhasil dikumpulkan. Jika Anda mengalami masalah seperti tidak ada data yang dikumpulkan, kegagalan heartbeat, atau error penguraian, lihat bagian FAQ.

Persiapan

Sebelum mengumpulkan log, Anda harus merencanakan dan membuat proyek serta logstore untuk mengelola dan menyimpan log. Jika Anda sudah memiliki resource yang diperlukan, lewati langkah ini dan lanjutkan ke Langkah 1: Konfigurasikan kelompok mesin (instal LoongCollector).

Buat proyek

  1. Masuk ke Konsol Simple Log Service.

  2. Klik Create Project dan konfigurasikan parameter berikut:

    • Region: Pilih wilayah berdasarkan sumber log. Parameter ini tidak dapat diubah setelah proyek dibuat.

    • Project Name: Nama proyek harus unik secara global dalam Alibaba Cloud dan tidak dapat diubah setelah proyek dibuat.

    • Pertahankan pengaturan default untuk parameter lainnya dan klik Create. Untuk informasi lebih lanjut tentang parameter lainnya, lihat Buat proyek.

Buat logstore

  1. Klik nama proyek.

  2. Di panel navigasi sebelah kiri, pilih imageLog Storage dan klik +.

  3. Pada halaman Create logstore, konfigurasikan parameter inti berikut:

    • Logstore Name: Masukkan nama yang unik dalam proyek. Nama ini tidak dapat diubah setelah logstore dibuat.

    • Logstore Type: Pilih Standard atau Query berdasarkan perbandingan spesifikasi.

    • Billing Mode:

      • Pay-by-feature: Ditagih secara terpisah untuk resource seperti penyimpanan, pengindeksan, dan operasi baca/tulis. Mode ini cocok untuk skenario skala kecil atau ketika penggunaan fitur belum pasti.

      • Pay-by-ingested-data: Hanya ditagih berdasarkan jumlah data mentah yang ditulis. Mode ini menyediakan penyimpanan gratis selama 30 hari dan fitur gratis seperti transformasi dan pengiriman data. Mode ini cocok untuk skenario bisnis dengan periode penyimpanan mendekati 30 hari atau pipeline pemrosesan data yang kompleks.

    • Data Retention Period: Tentukan jumlah hari untuk menyimpan log. Nilai yang valid: 1 hingga 3650. Nilai 3650 menunjukkan penyimpanan permanen. Nilai default adalah 30.

    • Pertahankan pengaturan default untuk parameter lainnya dan klik OK. Untuk informasi lebih lanjut tentang parameter lainnya, lihat Kelola Logstore.

Langkah 1: Konfigurasikan kelompok mesin (instal LoongCollector)

Terapkan LoongCollector sebagai kontainer pada host Docker dan tambahkan host tersebut ke kelompok mesin. Gunakan kelompok mesin untuk mengelola beberapa node pengumpulan secara terpusat, mendistribusikan konfigurasi, dan memantau status.

  1. Ambil image

    Pada host yang telah menginstal Docker, jalankan perintah berikut untuk mengambil image LoongCollector. Ganti ${region_id} dengan ID wilayah host atau wilayah terdekat, seperti cn-hangzhou, untuk meningkatkan kecepatan unduh dan stabilitas.

    # Alamat image LoongCollector
    docker pull aliyun-observability-release-registry.${region_id}.cr.aliyuncs.com/loongcollector/loongcollector:v3.0.12.0-25723a1-aliyun
    
    # Alamat image Logtail
    docker pull registry.${region_id}.aliyuncs.com/log-service/logtail:v2.1.11.0-aliyun
  2. Jalankan kontainer LoongCollector

    Jalankan perintah berikut untuk menjalankan kontainer. Pastikan Anda memasang direktori dengan benar dan mengatur variabel lingkungan yang diperlukan:

    docker run -d \
        -v /:/logtail_host:ro \
        -v /var/run/docker.sock:/var/run/docker.sock \
        --env ALIYUN_LOGTAIL_CONFIG=/etc/ilogtail/conf/${sls_upload_channel}/ilogtail_config.json \
        --env ALIYUN_LOGTAIL_USER_ID=${aliyun_account_id} \
        --env ALIYUN_LOGTAIL_USER_DEFINED_ID=${user_defined_id} \
        aliyun-observability-release-registry.${region_id}.cr.aliyuncs.com/loongcollector/loongcollector:v3.0.12.0-25723a1-aliyun

    Deskripsi parameter:

    • ${sls_upload_channel}: Saluran unggah log. Formatnya adalah Project Region-Network Transfer Type. Contoh:

      Tipe transfer

      Format nilai konfigurasi

      Contoh

      Skenario

      Transfer jaringan internal

      regionId

      cn-hangzhou

      Instance ECS dan proyek berada di wilayah yang sama.

      Transfer Internet

      regionId-internet

      cn-hangzhou-internet

      • Instance ECS dan proyek berada di wilayah berbeda.

      • Server berasal dari penyedia cloud lain atau pusat data yang dibangun sendiri.

      Akselerasi transfer

      regionId-acceleration

      cn-hangzhou-acceleration

      Komunikasi lintas wilayah di dalam dan luar Tiongkok.

    • ${aliyun_account_id}: ID akun Alibaba Cloud.

    • ${user_defined_id}: ID kustom kelompok mesin. ID ini digunakan untuk mengikat kelompok mesin. Misalnya, gunakan user-defined-docker-1. ID harus unik dalam wilayah tersebut.

      Penting

      Kondisi startup berikut harus dipenuhi:

      • Tiga variabel lingkungan utama dikonfigurasi dengan benar:

        ALIYUN_LOGTAIL_CONFIG, ALIYUN_LOGTAIL_USER_ID, dan ALIYUN_LOGTAIL_USER_DEFINED_ID.

      • Direktori /var/run/docker.sock dipasang. Direktori ini digunakan untuk mendengarkan event siklus hidup kontainer.

      • Direktori root / dipasang ke /logtail_host. Ini digunakan untuk mengakses sistem file host.

  3. Verifikasi status berjalan kontainer

    docker ps | grep loongcollector

    Contoh output yang diharapkan:

    6ad510001753   aliyun-observability-release-registry.cn-beijing.cr.aliyuncs.com/loongcollector/loongcollector:v3.0.12.0-25723a1-aliyun   "/usr/local/ilogtail…"   About a minute ago   Up About a minute             recursing_shirley
  4. Konfigurasikan kelompok mesin

    Di panel navigasi sebelah kiri, pilih imageResources > Machine Groups, klik 机器组 > Create Machine Group, konfigurasikan parameter berikut, lalu klik OK:

    • Name: Masukkan nama kustom untuk kelompok mesin, misalnya docker-host-group.

    • Machine Group Identifier: Pilih Custom Identifier.

    • Custom Identifier: Masukkan ${user_defined_id} yang Anda tetapkan saat menjalankan kontainer. ID harus persis sama. Jika tidak, asosiasi akan gagal.

  5. Verifikasi status heartbeat kelompok mesin

    Klik nama kelompok mesin baru untuk membuka halaman detail dan periksa Machine Group Status:

    • OK: Menunjukkan bahwa LoongCollector terhubung ke SLS.

    • FAIL: Untuk informasi lebih lanjut tentang cara memecahkan masalah ini, lihat Troubleshoot heartbeat errors.

Langkah 2: Buat dan konfigurasikan aturan pengumpulan log

Tentukan log mana yang dikumpulkan oleh LoongCollector, cara mengurai strukturnya, cara menyaring konten, dan cara mengikat konfigurasi ke kelompok mesin yang terdaftar.

  1. Pada halaman imageLogstores, klik ikon image di sebelah nama logstore target.

  2. Klik image di sebelah Data Collection. Di kotak dialog Quick Data Import, pilih templat berdasarkan sumber log lalu klik Integrate Now.

  3. Konfigurasikan Machine Group lalu klik Next.

    • Scenario: Pilih Docker Containers.

    • Pindahkan kelompok mesin yang Anda buat di Langkah 1 dari daftar kelompok mesin sumber ke daftar kelompok mesin yang diterapkan.

  4. Pada halaman Logtail Configuration, konfigurasikan parameter berikut lalu klik Next.

1. Konfigurasi global dan input

Sebelum memulai, pastikan Anda telah memilih templat impor data dan mengikat kelompok mesin. Pada langkah ini, tentukan nama konfigurasi pengumpulan, sumber log, dan cakupan pengumpulan.

Kumpulkan standard output Docker

Global Configurations

  • Configuration Name: Masukkan nama kustom untuk konfigurasi pengumpulan. Nama harus unik dalam proyek dan tidak dapat diubah setelah konfigurasi dibuat. Nama harus memenuhi konvensi berikut:

    • Hanya boleh berisi huruf kecil, angka, tanda hubung (-), dan garis bawah (_).

    • Harus dimulai dan diakhiri dengan huruf kecil atau angka.

Input Configurations

  • Nyalakan sakelar Stdout and Stderr atau Standard Error. Kedua sakelar ini aktif secara default.

    Penting

    Kami merekomendasikan agar Anda tidak mengaktifkan standard output dan standard error secara bersamaan karena dapat menyebabkan kebingungan dalam log yang dikumpulkan.

Kumpulkan log teks kontainer Docker

Global Configurations:

  • Configuration Name: Masukkan nama kustom untuk konfigurasi pengumpulan. Nama harus unik dalam proyek dan tidak dapat diubah setelah konfigurasi dibuat. Nama harus memenuhi konvensi 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 dari layanan lokal pada host.

  • File Path: Jalur absolut file log yang akan dikumpulkan.

    • Linux: Jalur harus dimulai dengan garis miring (`/`). Misalnya, /data/mylogs/**/*.log menunjukkan semua file yang memiliki ekstensi .log di direktori /data/mylogs.

    • Windows: Jalur harus dimulai dengan huruf drive. Misalnya, C:\Program Files\Intel\**\*.Log.

  • Maximum Directory Monitoring Depth: Kedalaman direktori maksimum yang dapat dicocokkan oleh karakter wildcard ** di File Path. Nilai default adalah 0, yang menunjukkan direktori saat ini. Nilainya berkisar antara 0 hingga 1000.

    Kami merekomendasikan agar Anda mengatur parameter ini ke 0 dan mengonfigurasi jalur ke direktori yang berisi file tersebut.

2. Pemrosesan dan strukturisasi log

Konfigurasikan aturan pemrosesan log untuk mengubah log mentah yang tidak terstruktur menjadi data terstruktur. Hal ini meningkatkan efisiensi kueri dan analisis log. Kami merekomendasikan agar Anda menambahkan contoh log sebelum mengonfigurasi aturan:

Di bagian Processor Configurations pada halaman Logtail Configuration, klik Add Log Sample lalu masukkan konten log yang akan dikumpulkan. Sistem akan mengidentifikasi format log berdasarkan contoh tersebut dan membantu Anda menghasilkan ekspresi reguler serta aturan penguraian. Hal ini menyederhanakan konfigurasi.

Skenario 1: Pemrosesan log multi-baris (seperti log stack Java)

Log seperti stack exception Java dan objek JSON sering kali membentang di beberapa baris. Dalam mode pengumpulan default, log-log ini dibagi menjadi beberapa catatan tidak lengkap, yang menyebabkan hilangnya konteks. Untuk mengatasi masalah ini, aktifkan mode pengumpulan multi-baris dan konfigurasikan ekspresi reguler untuk awal baris guna menggabungkan baris-baris berurutan dari log yang sama menjadi satu entri log lengkap.

Contoh efek:

Log mentah tanpa pemrosesan apa pun

Dalam mode pengumpulan default, setiap baris dianggap sebagai log independen, sehingga informasi stack terpecah dan konteks hilang

Dengan mode multi-baris diaktifkan, ekspresi reguler untuk awal baris mengidentifikasi log lengkap, sehingga mempertahankan struktur semantik penuh.

image

image

image

Konfigurasi: Di bagian Processor Configurations pada halaman Logtail Configuration, nyalakan Multi-line Mode:

  • Type: Pilih Custom atau Multi-line JSON.

    • Custom: Format log mentah tidak tetap. Anda harus mengonfigurasi Regex to Match First Line untuk mengidentifikasi baris awal setiap entri log.

      • Regex to Match First Line: Mendukung pembuatan otomatis atau input manual. Ekspresi reguler harus mencocokkan satu baris data lengkap. Misalnya, ekspresi reguler yang cocok dalam contoh sebelumnya adalah \[\d+-\d+-\w+:\d+:\d+,\d+]\s\[\w+]\s.*.

        • Pembuatan otomatis: Klik Generate. Lalu, di kotak teks Log Sample, pilih konten log yang akan diekstrak lalu klik Automatically Generate.

        • Input manual: Klik Manually Enter Regular Expression. Setelah memasukkan ekspresi, klik Validate.

    • Multi-line JSON: Jika log mentah semuanya dalam format JSON standar, SLS secara otomatis menangani jeda baris dalam satu log JSON.

  • Processing Method If Splitting Fails:

    • Discard: Jika sepotong teks tidak cocok dengan aturan awal baris, teks tersebut dibuang.

    • Retain Single Line: Teks yang tidak cocok dipotong dan dipertahankan dalam mode baris tunggal aslinya.

Skenario 2: Logging terstruktur

Jika log mentah berupa teks tidak terstruktur atau semi-terstruktur, seperti log akses NGINX atau log output aplikasi, kueri dan analisis langsung sering kali tidak efisien. SLS menyediakan berbagai plugin penguraian data yang secara otomatis mengonversi log mentah dengan format berbeda menjadi data terstruktur. Hal ini memberikan fondasi data yang kuat untuk analisis, pemantauan, dan peringatan selanjutnya.

Contoh efek:

Raw Logs

Parsed logs

192.168.*.* - - [15/Apr/2025:16:40:00 +0800] "GET /nginx-logo.png HTTP/1.1" 0.000 514 200 368 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.*.* Safari/537.36"
body_bytes_sent: 368
http_referer: -
http_user_agent : Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.x.x Safari/537.36
remote_addr:192.168.*.*
remote_user: -
request_length: 514
request_method: GET
request_time: 0.000
request_uri: /nginx-logo.png
status: 200
time_local: 15/Apr/2025:16:40:00

Langkah konfigurasi: Di bagian Processor Configurations pada halaman Logtail Configuration:

  1. Tambahkan plugin penguraian: Klik Add Processor dan konfigurasikan plugin seperti penguraian ekspresi reguler, penguraian pemisah, atau penguraian JSON yang sesuai dengan format log. Misalnya, untuk mengumpulkan log NGINX, pilih Native Processor > Data Parsing (NGINX Mode).

  2. NGINX Log Configuration: Salin definisi lengkap log_format dari file konfigurasi server NGINX (nginx.conf) lalu 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"';
    Penting

    Definisi format harus persis sama dengan format yang digunakan untuk menghasilkan log di server. Jika tidak, penguraian log akan gagal.

  3. Parameter umum: Parameter berikut muncul di beberapa plugin penguraian data. Fungsi dan penggunaannya konsisten.

    • Original Field: Nama field sumber yang akan diurai. Nilai default adalah content, yang menunjukkan seluruh konten log yang dikumpulkan.

    • Retain Original Field if Parsing Fails: Kami merekomendasikan agar Anda mengaktifkan sakelar ini. Jika log gagal diurai oleh plugin karena ketidakcocokan format, opsi ini memastikan bahwa konten log asli tidak hilang dan dipertahankan di field mentah yang ditentukan.

    • Retain Original Field if Parsing Succeeds: Jika Anda memilih opsi ini, konten log asli dipertahankan bahkan jika log berhasil diurai.

3. Penyaringan log

Saat pengumpulan log, pengumpulan besar-besaran log bernilai rendah atau tidak relevan tanpa seleksi—seperti log tingkat DEBUG atau INFO—memboroskan resource penyimpanan, meningkatkan biaya, memengaruhi efisiensi kueri, dan menimbulkan risiko kebocoran data. Untuk mengatasi masalah ini, terapkan strategi penyaringan detail halus guna pengumpulan log yang efisien dan aman.

Kurangi biaya melalui penyaringan konten

Saring log berdasarkan konten field. Misalnya, kumpulkan hanya log tingkat WARNING atau ERROR.

Contoh efek:

Log mentah tanpa pemrosesan apa pun

Kumpulkan hanya log WARNING atau ERROR

{"level":"WARNING","timestamp":"2025-09-23T19:11:40+0800","cluster":"yilu-cluster-0728","message":"Disk space is running low","freeSpace":"15%"}
{"level":"ERROR","timestamp":"2025-09-23T19:11:42+0800","cluster":"yilu-cluster-0728","message":"Failed to connect to database","errorCode":5003}
{"level":"INFO","timestamp":"2025-09-23T19:11:47+0800","cluster":"yilu-cluster-0728","message":"User logged in successfully","userId":"user-123"}
{"level":"WARNING","timestamp":"2025-09-23T19:11:40+0800","cluster":"yilu-cluster-0728","message":"Disk space is running low","freeSpace":"15%"}
{"level":"ERROR","timestamp":"2025-09-23T19:11:42+0800","cluster":"yilu-cluster-0728","message":"Failed to connect to database","errorCode":5003}

Langkah konfigurasi: Di bagian Processor Configurations pada halaman Logtail Configuration:

Klik Add Processor lalu pilih Native Processor > Data Filtering:

  • Field Name: Field log yang akan digunakan untuk penyaringan.

  • Field Value: Ekspresi reguler yang akan digunakan untuk penyaringan. Hanya pencocokan teks penuh yang didukung. Pencocokan kata kunci parsial tidak didukung.

Kontrol cakupan pengumpulan dengan daftar hitam

Gunakan daftar hitam untuk mengecualikan direktori atau file tertentu. Hal ini mencegah log yang tidak relevan atau sensitif diunggah.

Langkah konfigurasi: Di bagian Input Configurations pada halaman Logtail Configuration, aktifkan Collection Blacklist lalu klik Add.

Pencocokan penuh dan pencocokan wildcard didukung untuk direktori dan nama file. Karakter 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 diawali dengan "private" dan diakhiri dengan ".log" selama pengumpulan.

    • /home/admin/private*/*_inner.log: Mengabaikan file yang diakhiri dengan "_inner.log" di direktori yang diawali dengan "private" di bawah direktori /home/admin/ selama pengumpulan.

  • File Blacklist: Nama file yang akan diabaikan selama pengumpulan. Contoh:

    • app_inner.log: Mengabaikan semua file bernama app_inner.log selama pengumpulan.

  • Directory Blacklist: Jalur direktori tidak boleh diakhiri dengan garis miring (`/`). Contoh:

    • /home/admin/dir1/: Daftar hitam direktori tidak berlaku.

    • /home/admin/dir*: Mengabaikan file di semua subdirektori direktori /home/admin/ yang diawali dengan "dir" selama pengumpulan.

    • /home/admin/*/dir: Mengabaikan semua file di subdirektori bernama "dir" pada tingkat kedua direktori /home/admin/ selama pengumpulan. Misalnya, file di direktori /home/admin/a/dir diabaikan, sedangkan file di direktori /home/admin/a/b/dir dikumpulkan.

Penyaringan kontainer

Tetapkan kondisi pengumpulan berdasarkan metadata kontainer, seperti variabel lingkungan, label pod, namespace, dan nama kontainer, untuk mengontrol secara tepat log kontainer mana yang dikumpulkan.

Langkah konfigurasi: Di bagian Processor Configurations pada halaman Logtail Configuration, aktifkan Container Filtering lalu klik Add.

Beberapa kondisi digabungkan menggunakan operator logika AND. Semua pencocokan ekspresi reguler didasarkan pada mesin ekspresi reguler RE2 Go, yang memiliki beberapa batasan dibandingkan mesin seperti PCRE. Saat menulis ekspresi reguler, ikuti batasan yang dijelaskan dalam Lampiran: Batasan ekspresi reguler (penyaringan kontainer).
  • Daftar Hitam/Putih Variabel Lingkungan: Tentukan kondisi variabel lingkungan untuk kontainer dari mana Anda ingin mengumpulkan log.

  • Daftar Hitam/Putih Label Pod K8s: Tentukan kondisi label untuk pod tempat kontainer yang akan dikumpulkan berada.

  • Pencocokan Reguler Nama Pod K8s: Tentukan kontainer yang akan dikumpulkan berdasarkan nama pod.

  • Pencocokan Reguler Namespace K8s: Tentukan kontainer yang akan dikumpulkan berdasarkan nama namespace.

  • Pencocokan Reguler Nama Kontainer K8s: Tentukan kontainer yang akan dikumpulkan berdasarkan nama kontainer.

  • Daftar Hitam/Putih Label Kontainer: Kumpulkan log dari kontainer yang labelnya memenuhi kondisi yang ditentukan. Parameter ini digunakan dalam 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 membedakan sumber log. Hal ini menyebabkan kurangnya konteks selama kueri dan efisiensi analisis rendah. Untuk mengatasi masalah ini, konfigurasikan topik dan tag log untuk mencapai asosiasi konteks otomatis dan kategorisasi logis.

Konfigurasikan topik

Jika beberapa aplikasi atau instans memiliki format log yang sama tetapi path berbeda, seperti /apps/app-A/run.log dan /apps/app-B/run.log, sulit membedakan sumber log yang dikumpulkan. Anda dapat menghasilkan topik berdasarkan kelompok mesin, nama kustom, atau ekstraksi path file untuk membedakan log dari aplikasi atau sumber path yang berbeda secara fleksibel.

Langkah konfigurasi: Global Configurations > Other Global Configurations > Log Topic Type: Pilih metode pembuatan topik. Tiga jenis berikut didukung:

  • Machine Group Topic: Jika konfigurasi pengumpulan diterapkan ke beberapa kelompok mesin, LoongCollector secara otomatis menggunakan nama kelompok mesin tempat server tersebut berada sebagai nilai field __topic__ untuk diunggah. Ini cocok untuk skenario di mana log dibagi berdasarkan kluster host.

  • Custom: Formatnya adalah customized://<custom_topic_name>, misalnya, customized://app-login. Ini cocok untuk skenario topik statis dengan pengidentifikasi bisnis tetap.

  • File Path Extraction: Ekstrak informasi kunci dari jalur lengkap file log untuk menandai sumber log secara dinamis. Ini cocok untuk situasi di mana beberapa pengguna atau aplikasi berbagi nama file log yang sama tetapi memiliki path berbeda.

    Jika beberapa pengguna atau layanan menulis log ke direktori tingkat atas berbeda tetapi sub-path dan nama file-nya sama, sumber tidak dapat dibedakan hanya berdasarkan nama file. Misalnya:

    /data/logs
    ├── userA
    │   └── serviceA
    │       └── service.log
    ├── userB
    │   └── serviceA
    │       └── service.log
    └── userC
        └── serviceA
            └── service.log

    Konfigurasikan File Path Extraction dan gunakan ekspresi reguler untuk mengekstrak informasi kunci dari jalur lengkap. Hasil yang cocok diunggah ke logstore sebagai topik.

    Aturan ekstraksi: Berdasarkan grup penangkapan ekspresi reguler

    Saat Anda mengonfigurasi ekspresi reguler, sistem secara otomatis menentukan format field output berdasarkan jumlah dan penamaan grup penangkapan. Aturannya sebagai berikut:

    Dalam ekspresi reguler untuk jalur file, Anda harus melakukan escape terhadap garis miring (/).

    Jenis grup penangkapan

    Skenario

    Field yang dihasilkan

    Contoh Regex

    Contoh jalur yang cocok

    Field yang dihasilkan

    Grup penangkapan tunggal (hanya satu (.*?))

    Hanya satu dimensi yang diperlukan untuk membedakan sumber (seperti username, lingkungan)

    Menghasilkan field __topic__

    \/logs\/(.*?)\/app\.log

    /logs/userA/app.log

    __topic__:userA

    Beberapa grup penangkapan - tidak bernama (beberapa (.*?))

    Beberapa dimensi diperlukan tetapi tanpa label semantik

    Menghasilkan field tag __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__svcA

    Beberapa grup penangkapan - bernama (menggunakan (?P<name>.*?)

    Beberapa dimensi diperlukan dan Anda ingin makna field jelas untuk memudahkan kueri dan analisis

    Menghasilkan field tag __tag__:{name}

    \/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 melampirkan informasi tersebut sebagai tag. Hal ini mencapai pengelompokan log detail halus.

Langkah konfigurasi: Di bagian Input Configurations pada halaman Logtail Configuration, aktifkan Log Tag Enrichment lalu klik Add.

  • Environment Variables: Konfigurasikan nama variabel lingkungan dan nama tag. Nilai variabel lingkungan disimpan dalam nama tag.

    • Nama Variabel Lingkungan: Tentukan nama variabel lingkungan yang akan diekstrak.

    • Nama Tag: Nama tag variabel lingkungan.

  • Pod Labels: Konfigurasikan nama label pod dan nama tag. Nilai label pod disimpan dalam nama tag.

    • Nama Label Pod: Nama label pod Kubernetes yang akan diekstrak.

    • Nama Tag: Nama tag.

5. Konfigurasi output

Secara default, semua log dikirim ke logstore saat ini dengan kompresi lz4. Untuk mengirim log dari sumber yang sama ke logstore berbeda, ikuti langkah-langkah berikut:

Distribusi dinamis ke beberapa target

Penting
  • Mengirim log ke beberapa target hanya tersedia untuk LoongCollector 3.0.0 dan lebih baru. Fitur ini tidak didukung oleh Logtail.

  • Hingga lima target output dapat dikonfigurasi.

  • Setelah Anda mengonfigurasi beberapa target output, konfigurasi pengumpulan tidak lagi terlihat di daftar konfigurasi pengumpulan logstore saat ini. Untuk melihat, mengubah, atau menghapus konfigurasi distribusi multi-target, lihat Bagaimana cara mengelola konfigurasi distribusi multi-target?

Prosedur: Di bagian Output Configurations pada halaman Logtail Configuration

  1. Klik image untuk memperluas konfigurasi output.

  2. Klik Add Output Targets lalu konfigurasikan pengaturan berikut:

    • Logstore: Pilih logstore target.

    • Compression Method: Pilih lz4 atau zstd.

    • Route Settings: Mengarahkan log berdasarkan field tag. Log yang cocok dengan aturan routing dikirim ke logstore target. Jika konfigurasi ini kosong, semua log yang dikumpulkan dikirim ke logstore target.

      • Tag Name: Nama field tag yang digunakan untuk routing. Masukkan nama field secara langsung, seperti __path__, tanpa awalan __tag__:. Field tag terbagi menjadi dua kategori:

        Untuk informasi lebih lanjut tentang tag, lihat Kelola tag pengumpulan LoongCollector.
        • Terkait Agen: Tag ini terkait dengan agen pengumpulan dan independen dari plugin apa pun. Contohnya termasuk __hostname__ dan __user_defined_id__.

        • Terkait plugin input: Tag ini bergantung pada plugin input, yang menambahkan dan memperkaya log dengan informasi relevan. Contohnya termasuk __path__ untuk pengumpulan file, dan _pod_name_ serta _container_name_ untuk pengumpulan Kubernetes.

      • Tag Value: Jika nilai tag log cocok dengan nilai ini, log dikirim ke logstore target ini.

      • Discard this tag?: Jika Anda mengaktifkan opsi ini, field tag ini dihapus dari log yang diunggah.

Langkah 3: Konfigurasikan kueri dan analisis

Setelah menyelesaikan pemrosesan log dan konfigurasi plugin, klik Next untuk membuka halaman Query and Analysis Configurations:

  • Sistem mengaktifkan Indeks teks penuh secara default, yang mendukung pencarian kata kunci pada konten log asli.

  • Untuk melakukan kueri presisi berdasarkan field, klik Automatic Index Generation setelah Preview Data dimuat di halaman. SLS menghasilkan indeks bidang berdasarkan entri pertama dalam data pratinjau.

Setelah menyelesaikan konfigurasi, klik Next untuk menyelesaikan seluruh proses pengumpulan.

Langkah 4: Validasi dan troubleshooting

Setelah konfigurasi pengumpulan selesai dan diterapkan ke kelompok mesin, sistem secara otomatis mendistribusikan konfigurasi dan mulai mengumpulkan log inkremental.

Lihat log yang diunggah

  1. Konfirmasi bahwa ada konten baru di file log: LoongCollector hanya mengumpulkan log inkremental. Jalankan tail -f /path/to/your/log/file dan picu operasi bisnis untuk memastikan log baru sedang ditulis.

  2. Kueri log: Buka halaman kueri dan analisis logstore target, klik Search & Analyze (rentang waktu default adalah 15 menit terakhir), lalu periksa apakah log baru mengalir masuk. Setiap log teks kontainer Docker yang dikumpulkan berisi field berikut secara default:

    Nama bidang

    Deskripsi

    __source__

    Alamat IP kontainer LoongCollector (Logtail).

    _container_ip_

    Alamat IP kontainer aplikasi.

    __tag__:__hostname__

    Nama host Docker tempat LoongCollector (Logtail) berada.

    __tag__:__path__

    Jalur pengumpulan log.

    __tag__:__receive_time__

    Waktu log tiba di server.

    __tag__:__user_defined_id__

    ID kustom kelompok mesin.

FAQ

Koneksi heartbeat kelompok mesin GAGAL

  1. Periksa ID pengguna: Jika tipe server Anda bukan ECS, atau jika instance ECS dan proyek milik akun Alibaba Cloud berbeda, periksa apakah ID pengguna yang benar ada di direktori yang ditentukan berdasarkan tabel berikut.

    • Linux: Jalankan perintah cd /etc/ilogtail/users/ && touch <uid> untuk membuat file ID pengguna.

    • Windows: Buka direktori C:\LogtailData\users\ dan buat file kosong bernama <uid>.

    Jika file yang dinamai dengan ID akun Alibaba Cloud proyek saat ini ada di jalur yang ditentukan, ID pengguna dikonfigurasi dengan benar.

  2. Periksa ID kelompok mesin: Jika Anda menggunakan ID kustom untuk kelompok mesin, periksa apakah file user_defined_id ada di direktori yang ditentukan. Jika ada, periksa apakah isi file konsisten dengan ID kustom yang dikonfigurasi untuk kelompok mesin.

    Sistem

    Direktori yang ditentukan

    Solusi

    Linux

    /etc/ilogtail/user_defined_id

    # Konfigurasikan ID kustom. Jika direktori tidak ada, buat secara manual.
    echo "user-defined-1" > /etc/ilogtail/user_defined_id

    Windows

    C:\LogtailData\user_defined_id

    Buat file baru user_defined_id di direktori C:\LogtailData lalu tulis ID kustom ke dalamnya. (Jika direktori tidak ada, buat secara manual.)

  3. Jika ID pengguna dan ID kelompok mesin dikonfigurasi dengan benar, lihat Troubleshoot masalah kelompok mesin LoongCollector (Logtail) untuk troubleshooting lebih lanjut.


Tidak ada data yang dikumpulkan untuk log

  1. Periksa log inkremental: Setelah Anda mengonfigurasi LoongCollector (Logtail) untuk pengumpulan, jika tidak ada log baru di file log yang akan dikumpulkan, LoongCollector (Logtail) tidak mengumpulkan log dari file tersebut.

  2. Periksa status heartbeat kelompok mesin: Buka halaman imageResources > Machine Groups, klik nama kelompok mesin target, lalu di bagian Machine Group Configurations > Machine Group Status, periksa status Heartbeat.

  3. Konfirmasi apakah konfigurasi pengumpulan LoongCollector (Logtail) telah diterapkan ke kelompok mesin: Bahkan jika konfigurasi pengumpulan LoongCollector (Logtail) dibuat, log tidak dikumpulkan jika konfigurasi tidak diterapkan ke kelompok mesin.

    1. Buka halaman imageResources > Machine Groups lalu klik nama kelompok mesin target untuk membuka halaman Machine Group Configurations.

    2. Di halaman tersebut, lihat Manage Configuration. Sisi kiri menampilkan All Logtail Configurations, dan sisi kanan menampilkan Applied Logtail Configurations. Jika konfigurasi pengumpulan LoongCollector (Logtail) target telah dipindahkan ke area terapan di sebelah kanan, konfigurasi telah berhasil diterapkan ke kelompok mesin target.

    3. Jika konfigurasi pengumpulan LoongCollector (Logtail) target belum dipindahkan ke area terapan di sebelah kanan, klik Modify. Di daftar All Logtail Configurations di sebelah kiri, pilih nama konfigurasi LoongCollector (Logtail) target, klik image untuk memindahkannya ke area terapan di sebelah kanan, lalu klik Save.


Error pengumpulan log atau format salah

Pendekatan troubleshooting: Situasi ini menunjukkan bahwa koneksi jaringan dan konfigurasi dasar normal. Masalahnya terutama ketidakcocokan antara konten log dan aturan penguraian. Anda perlu melihat pesan error spesifik untuk menemukan masalahnya:

  1. 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.

  2. Di bagian Collection Exception Monitoring > Complete Error Information, lihat metrik alarm log error lalu temukan solusi yang sesuai di Jenis error umum dalam pengumpulan data.

Langkah selanjutnya

  1. Kueri dan analisis log:

  2. Visualisasi data: Gunakan dasbor visualisasi untuk memantau tren metrik utama.

  3. Peringatan otomatis untuk anomali data: Siapkan kebijakan peringatan untuk mengetahui anomali sistem secara real-time.

Perintah umum

Lihat status berjalan LoongCollector (Logtail)

docker exec ${logtail_container_id} /etc/init.d/ilogtaild status

Lihat informasi seperti nomor versi, alamat IP, dan waktu startup LoongCollector (Logtail)

docker exec ${logtail_container_id} cat /usr/local/ilogtail/app_info.json

Lihat log berjalan LoongCollector (Logtail)

Log berjalan LoongCollector (Logtail) disimpan di direktori /usr/local/ilogtail/ di dalam kontainer. Nama filenya adalah ilogtail.LOG, dan file yang diputar disimpan terkompresi sebagai ilogtail.LOG.x.gz. Contoh:

# Lihat log berjalan LoongCollector
docker exec a287de895e40 tail -n 5 /usr/local/ilogtail/loongcollector.LOG

# Lihat log berjalan Logtail
docker exec a287de895e40 tail -n 5 /usr/local/ilogtail/ilogtail.LOG

Contoh output:

[2025-08-25 09:17:44.610496]    [info]  [22]    /build/loongcollector/file_server/polling/PollingModify.cpp:75          polling modify resume:succeeded
[2025-08-25 09:17:44.610497]    [info]  [22]    /build/loongcollector/file_server/polling/PollingDirFile.cpp:100                polling discovery resume:starts
[2025-08-25 09:17:44.610498]    [info]  [22]    /build/loongcollector/file_server/polling/PollingDirFile.cpp:103                polling discovery resume:succeeded
[2025-08-25 09:17:44.610499]    [info]  [22]    /build/loongcollector/file_server/FileServer.cpp:117            file server resume:succeeded
[2025-08-25 09:17:44.610500]    [info]  [22]    /build/loongcollector/file_server/EventDispatcher.cpp:1019              checkpoint dump:succeeded

Restart LoongCollector (Logtail)

# Hentikan loongcollector
docker exec a287de895e40 /etc/init.d/ilogtaild stop

# Mulai loongcollector
docker exec a287de895e40 /etc/init.d/ilogtaild start

FAQ

Pesan error umum

Fenomena error

Penyebab

Solusi

Failed to connect to Logtail

Wilayah proyek tidak konsisten dengan kontainer LoongCollector (Logtail).

Periksa konfigurasi wilayah di ALIYUN_LOGTAIL_CONFIG.

No logs in LogStore

Konfigurasi jalur file salah.

Konfirmasi bahwa jalur log di kontainer aplikasi cocok dengan konfigurasi pengumpulan.


Error log: The parameter is invalid : uuid=none

Deskripsi masalah: Log LoongCollector (Logtail) (/usr/local/ilogtail/ilogtail.LOG) berisi log error The parameter is invalid : uuid=none.

Solusi: Buat file product_uuid di host, masukkan UUID valid apa pun, seperti 169E98C9-ABC0-4A92-B1D2-AA6239C0D261, lalu pasang file ini ke direktori /sys/class/dmi/id/product_uuid kontainer LoongCollector (Logtail).


Bagaimana file log yang sama atau standard output kontainer dapat dikumpulkan oleh beberapa konfigurasi pengumpulan secara bersamaan?

Secara default, untuk mencegah duplikasi data, SLS membatasi setiap sumber log hanya dikumpulkan oleh satu konfigurasi pengumpulan:

  • File log teks hanya dapat cocok dengan satu konfigurasi Logtail.

  • Standard output kontainer (stdout):

    • Jika Anda menggunakan templat standard output versi baru, hanya dapat dikumpulkan oleh satu konfigurasi pengumpulan standard output secara default.

    • Jika Anda menggunakan templat standard output versi lama, tidak diperlukan konfigurasi tambahan, dan mendukung pengumpulan beberapa salinan secara default.

  1. Masuk ke Konsol Simple Log Service lalu buka proyek target.

  2. Di panel navigasi sebelah kiri, pilih imageLogstores lalu temukan logstore target.

  3. Klik ikon image di sebelah namanya untuk memperluas logstore.

  4. Klik Logtail Configuration. Di daftar konfigurasi, temukan konfigurasi Logtail target lalu klik Manage Logtail Configuration di kolom Actions.

  5. Di halaman konfigurasi Logtail, klik Edit lalu gulir ke bawah ke bagian Input Configurations:

    • Untuk mengumpulkan log file teks: Aktifkan Allow File to Be Collected for Multiple Times.

    • Untuk mengumpulkan standard output kontainer: Nyalakan Allow Collection by Different Logtail Configurations.

Bagaimana cara mengelola konfigurasi distribusi multi-target?

Konfigurasi distribusi multi-target dikaitkan dengan beberapa logstore. Kelola konfigurasi ini dari halaman manajemen tingkat proyek:

  1. Masuk ke Konsol Simple Log Service lalu klik nama proyek target.

  2. Di halaman proyek, pilih image Resources > Configurations dari panel navigasi sebelah kiri.

    Catatan

    Halaman ini menyediakan manajemen terpusat untuk semua konfigurasi pengumpulan dalam proyek, termasuk konfigurasi yang tersisa setelah logstore terkaitnya dihapus secara tidak sengaja.

Lampiran: Penjelasan rinci plugin penguraian native

Di bagian Processing Configuration pada halaman Logtail Configuration, tambahkan plugin pemrosesan untuk mengonfigurasi pemrosesan terstruktur untuk log mentah. Untuk menambahkan plugin pemrosesan ke konfigurasi pengumpulan yang sudah ada, ikuti langkah-langkah berikut:

  1. Di panel navigasi sebelah kiri, pilih imageLogstores lalu temukan logstore target.

  2. Klik ikon image di sebelah namanya untuk memperluas logstore.

  3. Klik Logtail Configuration. Di daftar konfigurasi, temukan konfigurasi Logtail target lalu klik Manage Logtail Configuration di kolom Actions.

  4. Di halaman konfigurasi Logtail, klik Edit.

Bagian ini hanya memperkenalkan plugin pemrosesan yang umum digunakan yang mencakup skenario pemrosesan log umum. Untuk informasi lebih lanjut tentang fitur lainnya, lihat Plugin pemrosesan ekstensi.
Penting

Aturan menggabungkan plugin (berlaku untuk LoongCollector / Logtail 2.0 dan versi yang lebih baru):

  • Plugin pemrosesan native dan plugin pemrosesan ekstensi dapat digunakan secara independen atau digabungkan sesuai kebutuhan.

  • Kami merekomendasikan agar Anda memprioritaskan plugin pemrosesan native karena menawarkan kinerja dan stabilitas yang lebih baik.

  • Jika fitur native tidak dapat memenuhi kebutuhan bisnis Anda, tambahkan plugin pemrosesan ekstensi setelah plugin pemrosesan native yang dikonfigurasi untuk melakukan pemrosesan tambahan.

Batasan urutan:

Semua plugin dieksekusi secara berurutan sesuai urutan konfigurasinya, yang membentuk rantai pemrosesan. Perhatikan bahwa 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

Ekstrak field log menggunakan ekspresi reguler dan uraikan log menjadi pasangan kunci-nilai. Setiap field dapat dikueri dan dianalisis secara independen.

Contoh efek:

Log mentah tanpa pemrosesan apa pun

Menggunakan plugin penguraian regex

127.0.0.1 - - [16/Aug/2024:14:37:52 +0800] "GET /wp-admin/admin-ajax.php?action=rest-nonce HTTP/1.1" 200 41 "http://www.example.com/wp-admin/post-new.php?post_type=page" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0"
body_bytes_sent: 41
http_referer: http://www.example.com/wp-admin/post-new.php?post_type=page
http_user_agent: Mozilla/5.0 (Windows NT 10.0; Win64; ×64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0
remote_addr: 127.0.0.1
remote_user: -
request_method: GET
request_protocol: HTTP/1.1
request_uri: /wp-admin/admin-ajax.php?action=rest-nonce
status: 200
time_local: 16/Aug/2024:14:37:52 +0800

Langkah konfigurasi: Di bagian Processor Configurations pada halaman Logtail Configuration, klik Add Processor lalu pilih Native Processor > Data Parsing (Regex Mode):

  • Regular Expression: Digunakan untuk mencocokkan log. Mendukung pembuatan otomatis atau input manual:

    • Pembuatan otomatis:

      • Klik Generate.

      • Di Log Sample, sorot konten log yang akan diekstrak.

      • Klik Generate Regular Expression.

        image

    • Input manual: Klik Manually Enter Regular Expression berdasarkan format log.

    Setelah menyelesaikan konfigurasi, klik Validate untuk menguji apakah ekspresi reguler dapat mengurai konten log dengan benar.

  • Extracted Field: Atur nama field (Key) yang sesuai untuk konten log yang diekstrak (Value).

  • Untuk informasi lebih lanjut tentang parameter lainnya, lihat deskripsi parameter konfigurasi umum di Skenario 2: Logging terstruktur.


Penguraian pemisah

Strukturisasi konten log menggunakan pemisah, lalu uraikan menjadi beberapa pasangan kunci-nilai. Pemisah karakter tunggal dan multi-karakter didukung.

Contoh efek:

Log mentah tanpa pemrosesan apa pun

Bagi field berdasarkan karakter yang ditentukan ,

05/May/2025:13:30:28,10.10.*.*,"POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1",200,18204,aliyun-sdk-java
ip:10.10.*.*
request:POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1
size:18204
status:200
time:05/May/2025:13:30:28
user_agent:aliyun-sdk-java

Langkah konfigurasi: Di bagian Processor Configurations pada halaman Logtail Configuration, klik Add Processor lalu pilih Native Processor > Data Parsing (Delimiter Mode).

  • Delimiter: Tentukan karakter yang digunakan untuk membagi konten log.

    Contoh: Untuk file format CSV, pilih Custom lalu masukkan koma (,).

  • Quote: Jika nilai field berisi pemisah, Anda harus menentukan quote untuk membungkus field guna mencegah pembagian yang salah.

  • Extracted Field: Atur nama field (Key) yang sesuai untuk setiap kolom sesuai urutan pemisahan. Aturannya sebagai berikut:

    • Nama field hanya boleh berisi huruf, angka, dan garis bawah (_).

    • Harus dimulai dengan huruf atau garis bawah (_).

    • Panjang maksimum adalah 128 byte.

  • Untuk informasi lebih lanjut tentang parameter lainnya, lihat deskripsi parameter konfigurasi umum di Skenario 2: Logging terstruktur.


Penguraian JSON standar

Strukturisasi log JSON tipe Objek dengan menguraikannya menjadi pasangan kunci-nilai.

Contoh efek:

Log mentah tanpa pemrosesan apa pun

Ekstraksi otomatis kunci-nilai JSON standar

{"url": "POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=U0Ujpek********&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=pD12XYLmGxKQ%2Bmkd6x7hAgQ7b1c%3D HTTP/1.1", "ip": "10.200.98.220", "user-agent": "aliyun-sdk-java", "request": {"status": "200", "latency": "18204"}, "time": "05/Jan/2025:13:30:28"}
ip: 10.200.98.220
request: {"status": "200", "latency" : "18204" }
time: 05/Jan/2025:13:30:28
url: POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=U0Ujpek******&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=pD12XYLmGxKQ%2Bmkd6x7hAgQ7b1c%3D HTTP/1.1
user-agent:aliyun-sdk-java

Langkah konfigurasi: Di bagian Processor Configurations pada halaman Logtail Configuration, klik Add Processor lalu pilih Native Processor > Data Parsing (Delimiter Mode).

  • Original Field: Nilai default adalah content. Field ini digunakan untuk menyimpan konten log mentah yang akan diurai.

  • Untuk informasi lebih lanjut tentang parameter lainnya, lihat deskripsi parameter konfigurasi umum di Skenario 2: Logging terstruktur.


Penguraian JSON bersarang

Uraikan log JSON bersarang menjadi pasangan kunci-nilai dengan menentukan kedalaman ekspansi.

Contoh efek:

Log mentah tanpa pemrosesan apa pun

Kedalaman ekspansi: 0, menggunakan kedalaman ekspansi sebagai awalan

Kedalaman ekspansi: 1, menggunakan kedalaman ekspansi sebagai awalan

{"s_key":{"k1":{"k2":{"k3":{"k4":{"k51":"51","k52":"52"},"k41":"41"}}}}}
0_s_key_k1_k2_k3_k41:41
0_s_key_k1_k2_k3_k4_k51:51
0_s_key_k1_k2_k3_k4_k52:52
1_s_key:{"k1":{"k2":{"k3":{"k4":{"k51":"51","k52":"52"},"k41":"41"}}}}

Langkah konfigurasi: Di bagian Processor Configurations pada halaman Logtail Configuration, klik Add Processor lalu pilih Extended Processor > Expand JSON Field:

  • Original Field: Nama field mentah yang akan diekspansi, misalnya, content.

  • JSON Expansion Depth: Tingkat ekspansi objek JSON. Nilai 0 menunjukkan ekspansi penuh, yang merupakan nilai default. Nilai 1 menunjukkan tingkat saat ini.

  • Character to Concatenate Expanded Keys: Penghubung untuk nama field selama ekspansi JSON. Penghubung default adalah garis bawah (_).

  • Name Prefix of Expanded Keys: Tentukan awalan untuk nama field setelah ekspansi JSON.

  • Expand Array: Nyalakan sakelar ini untuk mengekspansi array menjadi pasangan kunci-nilai dengan indeks.

    Contoh: {"k":["a","b"]} diekspansi menjadi {"k[0]":"a","k[1]":"b"}.

    Untuk mengganti nama field yang diekspansi, misalnya dari prefix_s_key_k1 menjadi new_field_name, tambahkan plugin Rename Field untuk menyelesaikan pemetaan.
  • Untuk informasi lebih lanjut tentang parameter lainnya, lihat deskripsi parameter konfigurasi umum di Skenario 2: Logging terstruktur.


Penguraian array JSON

Gunakan fungsi json_extract untuk mengekstrak objek JSON dari array JSON.

Contoh efek:

Log mentah tanpa pemrosesan apa pun

Ekstrak struktur array JSON

[{"key1":"value1"},{"key2":"value2"}]
json1:{"key1":"value1"}
json2:{"key2":"value2"}

Langkah konfigurasi: Di bagian Processor Configurations pada halaman Logtail Configuration, ubah Processing Method ke SPL, konfigurasikan Pernyataan SPL, lalu gunakan fungsi json_extract untuk mengekstrak objek JSON dari array JSON.

Contoh: Ekstrak elemen dari array JSON di field log content lalu simpan hasilnya di field baru json1 dan json2.

* | extend json1 = json_extract(content, '$[0]'), json2 = json_extract(content, '$[1]')

Penguraian log Apache

Strukturisasi konten log berdasarkan definisi dalam file konfigurasi log Apache lalu uraikan menjadi beberapa pasangan kunci-nilai.

Contoh efek:

Log mentah tanpa pemrosesan apa pun

Apache Common Log Format combined Penguraian

1 192.168.1.10 - - [08/May/2024:15:30:28 +0800] "GET /index.html HTTP/1.1" 200 1234 "https://www.example.com/referrer" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.X.X Safari/537.36"
http_referer:https://www.example.com/referrer
http_user_agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.X.X Safari/537.36
remote_addr:192.168.1.10
remote_ident:-
remote_user:-
request_method:GET
request_protocol:HTTP/1.1
request_uri:/index.html
response_size_bytes:1234
status:200
time_local:[08/May/2024:15:30:28 +0800]

Langkah konfigurasi: Di bagian Processor Configurations pada halaman Logtail Configuration, klik Add Processor lalu pilih Native Processor > Data Parsing (Apache Mode):

  • Log Format: combined

  • APACHE LogFormat Configuration: Sistem secara otomatis mengisi konfigurasi berdasarkan Log Format.

    Penting

    Verifikasi konten yang diisi otomatis untuk memastikan persis sama dengan LogFormat yang didefinisikan dalam file konfigurasi server Apache. File tersebut biasanya berada di /etc/apache2/apache2.conf.

  • Untuk informasi lebih lanjut tentang parameter lainnya, lihat deskripsi parameter konfigurasi umum di Skenario 2: Logging terstruktur.


Penyamaran data

Samarkan data sensitif dalam log.

Contoh efek:

Log mentah tanpa pemrosesan apa pun

Hasil penyamaran

[{'account':'1812213231432969','password':'04a23f38'}, {'account':'1812213685634','password':'123a'}]
[{'account':'1812213231432969','password':'********'}, {'account':'1812213685634','password':'********'}]

Langkah konfigurasi: Di bagian Processor Configurations pada halaman Logtail Configuration, klik Add Processor lalu pilih Native Processor > Data Masking.

  • Original Field: Field mentah yang berisi konten log sebelum penguraian.

  • Data Masking Method:

    • const: Ganti konten sensitif dengan string yang dimodifikasi.

    • md5: Ganti konten sensitif dengan hash MD5-nya.

  • Replacement String: Jika Anda mengatur Masking Method ke const, Anda harus memasukkan string untuk mengganti konten sensitif.

  • Content Expression that Precedes Replaced Content: Digunakan untuk menemukan konten sensitif. Konfigurasikan parameter ini menggunakan sintaks RE2.

  • Content Expression to Match Replaced Content: Ekspresi untuk konten sensitif. Konfigurasikan parameter ini menggunakan sintaks RE2.


Penguraian waktu

Uraikan field waktu dalam log lalu atur hasil penguraian sebagai nilai field __time__ log.

Contoh efek:

Log mentah tanpa pemrosesan apa pun

Penguraian waktu

{"level":"INFO","timestamp":"2025-09-23T19:11:47+0800","cluster":"yilu-cluster-0728","message":"User logged in successfully","userId":"user-123"}

image

Langkah konfigurasi: Di bagian Processor Configurations pada halaman Logtail Configuration, klik Add Processor lalu pilih Native Processor > Time Parsing:

  • Original Field: Field mentah yang berisi konten log sebelum penguraian.

  • Time Format: Atur format waktu yang sesuai berdasarkan konten waktu dalam log.

  • Time Zone: Pilih zona waktu field waktu log. Secara default, zona waktu mesin digunakan, yaitu zona waktu lingkungan tempat proses LoongCollector (Logtail) berada.

Lampiran: Batasan ekspresi reguler (penyaringan kontainer)

Ekspresi reguler yang digunakan untuk Penyaringan Kontainer didasarkan pada mesin RE2 Go, yang memiliki beberapa batasan sintaks dibandingkan mesin lain seperti PCRE. Perhatikan hal berikut saat menulis ekspresi reguler:

1. Perbedaan sintaks grup bernama

Go menggunakan sintaks (?P<name>...) untuk mendefinisikan grup bernama dan tidak mendukung sintaks (?<name>...) dari PCRE.

  • Contoh benar: (?P<year>\d{4})

  • Sintaks salah: (?<year>\d{4})

2. Fitur regex yang tidak didukung

Fitur regex umum tetapi kompleks berikut tidak tersedia di RE2. Hindari penggunaannya:

  • Assertion: (?=...), (?!...), (?<=...), (?<!...)

  • Conditional expression: (?(condition)true|false)

  • Recursion matching: (?R), (?0)

  • Subprogram reference: (?&name), (?P>name)

  • Atomic group: (?>...)

3. Rekomendasi penggunaan

Kami merekomendasikan agar Anda menggunakan alat seperti Regex101 untuk men-debug ekspresi reguler. Pilih mode Golang (RE2) untuk validasi guna memastikan kompatibilitas. Jika Anda menggunakan sintaks yang tidak didukung yang disebutkan di atas, plugin tidak akan mengurai atau mencocokkan dengan benar.

Lampiran: Perbandingan versi lama dan baru standard output kontainer

Untuk meningkatkan efisiensi penyimpanan log dan konsistensi pengumpulan, format metadata log untuk standard output kontainer telah ditingkatkan. Format baru mengkonsolidasikan metadata ke field __tag__, yang mencapai optimasi penyimpanan dan standarisasi format.

  1. Keunggulan inti versi standard output baru

    • Peningkatan kinerja signifikan

      • Direfaktor dalam C++, kinerja meningkat 180% hingga 300% dibandingkan implementasi Go lama.

      • Mendukung plugin native untuk pemrosesan data dan pemrosesan paralel multi-threading, yang sepenuhnya memanfaatkan resource sistem.

      • Mendukung kombinasi fleksibel plugin native dan Go untuk memenuhi kebutuhan skenario kompleks.

    • Keandalan lebih tinggi

      • Mendukung antrian rotasi log standard output. Mekanisme pengumpulan log disatukan dengan mekanisme pengumpulan file, yang memberikan keandalan tinggi dalam skenario dengan rotasi log standard output yang cepat.

    • Konsumsi resource lebih rendah

      • Penggunaan CPU berkurang 20% hingga 25%.

      • Penggunaan memori berkurang 20% hingga 25%.

    • Konsistensi O&M yang ditingkatkan

      • Konfigurasi parameter terpadu: Parameter konfigurasi plugin pengumpulan standard output baru konsisten dengan plugin pengumpulan file.

      • Manajemen metadata terpadu: Penamaan field metadata kontainer dan lokasi penyimpanan log tag disatukan dengan skenario pengumpulan file. Sisi konsumen hanya perlu mempertahankan satu set logika pemrosesan.

  2. Perbandingan fitur versi baru dan lama

    Dimensi fitur

    Fitur versi lama

    Fitur versi baru

    Metode penyimpanan

    Metadata langsung disematkan dalam konten log sebagai field biasa.

    Metadata disimpan terpusat di tag __tag__.

    Efisiensi penyimpanan

    Setiap log membawa metadata lengkap berulang-ulang, yang mengonsumsi lebih banyak ruang penyimpanan.

    Beberapa log dalam konteks yang sama dapat menggunakan kembali metadata, yang menghemat biaya penyimpanan.

    Konsistensi format

    Tidak konsisten dengan format pengumpulan file kontainer.

    Penamaan field dan struktur penyimpanan sepenuhnya selaras dengan pengumpulan file kontainer, yang memberikan pengalaman terpadu.

    Metode akses kueri

    Dapat dikueri langsung berdasarkan nama field, seperti _container_name_.

    Memerlukan akses ke pasangan kunci-nilai yang sesuai melalui __tag__, seperti __tag__: _container_name_.

  3. Tabel pemetaan field metadata kontainer

    Nama field versi lama

    Nama field versi baru

    _container_ip_

    __tag__:_container_ip_

    _container_name_

    __tag__:_container_name_

    _image_name_

    __tag__:_image_name_

    _namespace_

    __tag__:_namespace_

    _pod_name_

    __tag__:_pod_name_

    _pod_uid_

    __tag__:_pod_uid_

    Dalam versi baru, semua field metadata disimpan di area tag log dalam format __tag__:<key>, bukan disematkan dalam konten log.

  4. Dampak perubahan versi baru terhadap pengguna

    • Adaptasi sisi konsumen: Karena lokasi penyimpanan berubah dari "content" ke "tag", logika konsumsi log pengguna perlu disesuaikan. Misalnya, Anda harus mengakses field melalui __tag__ selama kueri.

    • Kompatibilitas SQL: SQL kueri telah secara otomatis diadaptasi untuk kompatibilitas, sehingga pengguna tidak perlu mengubah pernyataan kueri mereka untuk memproses log versi baru dan lama secara bersamaan.

Informasi lebih lanjut

Parameter konfigurasi global

Parameter konfigurasi

Deskripsi

Configuration Name

Nama konfigurasi Logtail. Harus unik dalam proyeknya. Nama tidak dapat diubah setelah konfigurasi Logtail dibuat.

Log Topic Type

Pilih metode untuk menghasilkan topik log. Opsi termasuk Machine Group Topic, File Path Extraction, dan Custom.

Advanced Parameters

Untuk parameter fitur lanjutan opsional lainnya terkait konfigurasi global, lihat CreateLogtailPipelineConfig.

Parameter konfigurasi input

Item konfigurasi

Deskripsi

Logtail Deployment Mode

DaemonSet: Menyebarkan satu LoongCollector di setiap node kluster untuk mengumpulkan log dari semua kontainer di node tersebut.

Sidecar: Setiap pod menjalankan kontainer LoongCollector untuk mengumpulkan log dari semua kontainer dalam pod tersebut. Pengumpulan log untuk pod berbeda diisolasi.

File Path Type

Anda dapat mengonfigurasi Container Path atau Host Path.

  • Path In Container: Pilih opsi ini untuk mengumpulkan file log teks dari dalam kontainer.

  • Host Path: Pilih ini untuk mengumpulkan log layanan dari node kluster.

File Path

Atur direktori log dan nama file berdasarkan lokasi log di host, seperti instance ECS.

  • Jika host target adalah sistem Linux, jalur log harus dimulai dengan garis miring (/). Misalnya, /apsara/nuwa/**/app.Log.

  • Jika host target adalah sistem Windows, jalur log harus dimulai dengan huruf drive. Misalnya, C:\Program Files\Intel\**\*.Log.

Baik nama direktori maupun file mendukung mode penuh dan wildcard. Untuk informasi lebih lanjut tentang aturan nama file, lihat Pencocokan wildcard. Karakter wildcard jalur log hanya mendukung tanda bintang (*) dan tanda tanya (?).

Jalur log mendukung pencocokan direktori multi-level. Artinya, semua file yang memenuhi kriteria di direktori yang ditentukan dan subdirektorinya dikumpulkan. Misalnya:

  • /apsara/nuwa/**/*.log menunjukkan file dengan ekstensi .log di direktori /apsara/nuwa dan subdirektori rekursifnya.

  • /var/logs/app_*/**/*.log menunjukkan file dengan ekstensi .log di semua direktori yang cocok dengan format app_* di bawah direktori /var/logs dan subdirektori rekursifnya.

  • /var/log/nginx/**/access* menunjukkan file yang diawali dengan access di direktori /var/log/nginx dan subdirektori rekursifnya.

Max Directory Monitoring Depth

Kedalaman maksimum untuk memantau direktori log. Ini adalah kedalaman direktori maksimum yang dicocokkan oleh karakter wildcard ** di File Path. Nilai 0 menentukan bahwa hanya direktori file log yang Anda tentukan yang dipantau.

Standard Output

Setelah Anda mengaktifkan Standard Output, Logtail mengumpulkan standard output kontainer.

Standard Error

Setelah Anda mengaktifkan Standard Error, Logtail mengumpulkan error standar kontainer.

Allow multiple collections of standard output

Secara default, log standard output kontainer hanya dapat cocok dengan satu konfigurasi pengumpulan standard output Logtail versi baru. Jika standard output perlu dikumpulkan oleh beberapa konfigurasi pengumpulan standard output versi baru, Anda harus mengaktifkan Allow Standard Output To Be Collected Multiple Times.

Enable Container Metadata Preview

Setelah Anda mengaktifkan Enable Container Metadata Preview, Anda dapat melihat metadata kontainer setelah membuat konfigurasi Logtail. Metadata ini mencakup informasi kontainer yang cocok dan informasi kontainer lengkap.

Container Filtering

  • Deskripsi kondisi filter

Penting
  • Label kontainer diambil dengan menjalankan perintah docker inspect dan berbeda dari label Kubernetes. Untuk informasi lebih lanjut tentang cara mengambil label kontainer, lihat Obtain container labels.

  • Variabel lingkungan adalah variabel yang dikonfigurasi selama startup kontainer. Untuk informasi lebih lanjut tentang cara mendapatkan variabel lingkungan, lihat Obtaining Container Environment Variables.

  • Dalam skenario Kubernetes, kami merekomendasikan agar Anda menggunakan informasi tingkat Kubernetes, seperti K8s Pod Name Regex Match, K8s Namespace Regex Match, K8s Container Name Regex Match, dan K8s Pod Label Whitelist, untuk penyaringan kontainer.

  1. Namespace dan nama kontainer di Kubernetes dipetakan ke label kontainer, khususnya io.kubernetes.pod.namespace dan io.kubernetes.container.name. Kami merekomendasikan agar Anda menggunakan dua label kontainer ini untuk penyaringan kontainer. Misalnya, jika pod milik namespace backend-prod dan nama kontainer adalah worker-server, atur daftar putih label kontainer ke io.kubernetes.pod.namespace : backend-prod atau io.kubernetes.container.name : worker-server untuk mengumpulkan log dari kontainer tersebut.

  2. Jika dua label kontainer ini tidak memenuhi kebutuhan penyaringan Anda, gunakan daftar hitam dan putih variabel lingkungan untuk penyaringan kontainer.

K8s Pod Name Regular Expression Matching

Tentukan kontainer yang akan dikumpulkan berdasarkan nama pod. Pencocokan ekspresi reguler didukung. Misalnya, jika Anda mengatur parameter ini ke ^(nginx-log-demo.*)$, semua kontainer di pod yang namanya diawali dengan nginx-log-demo akan dicocokkan.

K8s Namespace Regular Matching

Tentukan kontainer yang akan dikumpulkan berdasarkan nama namespace. Pencocokan ekspresi reguler didukung. Misalnya, jika Anda mengatur parameter ini ke ^(default|nginx)$, semua kontainer di namespace nginx dan default akan dicocokkan.

K8s Container Name Regular Matching

Tentukan kontainer yang akan dikumpulkan berdasarkan nama kontainer. Nama kontainer Kubernetes didefinisikan di spec.containers. Pencocokan ekspresi reguler didukung. Misalnya, jika Anda mengatur parameter ini ke ^(container-test)$, semua kontainer bernama container-test akan dicocokkan.

Container Label Whitelist

Daftar putih label kontainer menentukan kontainer yang akan dikumpulkan. Secara default kosong, yang berarti semua standard output kontainer dikumpulkan. Untuk mengatur daftar putih label kontainer, LabelKey wajib diisi, dan LabelValue opsional.

  • Jika LabelValue kosong, semua kontainer dengan label yang mencakup LabelKey akan dicocokkan.

  • Jika LabelValue tidak kosong, hanya kontainer dengan label yang cocok LabelKey=LabelValue yang dicocokkan.

    Secara default, LabelValue melakukan pencocokan string, yang berarti kecocokan hanya terjadi jika nilai untuk LabelValue identik dengan nilai label kontainer. Jika nilai diawali dengan ^ dan diakhiri dengan $, itu adalah pencocokan ekspresi reguler. Misalnya, jika Anda mengatur LabelKey ke io.kubernetes.container.name dan LabelValue ke ^(nginx|cube)$, kontainer bernama nginx atau cube akan dicocokkan.

Beberapa entri daftar putih memiliki hubungan OR, yang berarti kontainer dicocokkan jika labelnya memenuhi salah satu entri daftar putih.

Container Label Blacklist

Daftar hitam label kontainer mengecualikan kontainer dari pengumpulan. Secara default kosong, yang berarti tidak ada kontainer yang dikecualikan. Untuk mengatur daftar hitam label kontainer, LabelKey wajib diisi, dan LabelValue opsional.

  • Jika LabelValue kosong, semua kontainer dengan label yang mencakup LabelKey dikecualikan.

  • Jika LabelValue tidak kosong, hanya kontainer dengan label yang cocok LabelKey=LabelValue yang dikecualikan.

    Secara default, LabelValue digunakan untuk pencocokan string, yang memerlukan kecocokan persis dengan nilai label kontainer. Jika nilai diawali dengan ^ dan diakhiri dengan $, dilakukan pencocokan ekspresi reguler. Misalnya, jika Anda mengatur LabelKey ke io.kubernetes.container.name dan LabelValue ke ^(nginx|cube)$, kontainer bernama nginx atau cube akan dicocokkan.

Beberapa entri daftar hitam memiliki hubungan OR, yang berarti kontainer dikecualikan jika labelnya memenuhi salah satu entri daftar hitam.

Environment Variable Whitelist

Daftar putih variabel lingkungan menentukan kontainer yang akan dikumpulkan. Secara default kosong, yang berarti semua standard output kontainer dikumpulkan. Untuk mengatur daftar putih variabel lingkungan, EnvKey wajib diisi, dan EnvValue opsional.

  • Jika EnvValue kosong, semua kontainer dengan variabel lingkungan yang mencakup EnvKey akan dicocokkan.

  • Jika EnvValue tidak kosong, hanya kontainer dengan variabel lingkungan yang cocok EnvKey=EnvValue yang dicocokkan.

    Secara default, EnvValue adalah pencocokan string, yang berarti kecocokan hanya terjadi jika nilainya persis sama dengan nilai variabel lingkungan. Jika nilai diawali dengan ^ dan diakhiri dengan $, itu adalah pencocokan ekspresi reguler. Misalnya, jika Anda mengatur EnvKey ke NGINX_SERVICE_PORT dan EnvValue ke ^(80|6379)$, kontainer dengan port layanan 80 atau 6379 akan dicocokkan.

Beberapa entri daftar putih memiliki hubungan OR, yang berarti kontainer dicocokkan jika variabel lingkungannya memenuhi salah satu pasangan kunci-nilai.

Environment Variable Blacklist

Daftar hitam variabel lingkungan mengecualikan kontainer dari pengumpulan. Secara default kosong, yang berarti tidak ada kontainer yang dikecualikan. Untuk mengatur daftar hitam variabel lingkungan, EnvKey wajib diisi, dan EnvValue opsional.

  • Jika EnvValue kosong, log dari semua kontainer dengan variabel lingkungan yang mencakup EnvKey dikecualikan.

  • Jika EnvValue tidak kosong, hanya kontainer dengan variabel lingkungan yang cocok EnvKey=EnvValue yang dikecualikan.

    Secara default, EnvValue adalah pencocokan string, yang berarti hanya cocok jika EnvValue persis sama dengan nilai variabel lingkungan. Jika nilai diawali dengan ^ dan diakhiri dengan $, itu adalah pencocokan ekspresi reguler. Misalnya, jika Anda mengatur EnvKey ke NGINX_SERVICE_PORT dan EnvValue ke ^(80|6379)$, kontainer dengan port layanan 80 atau 6379 akan dicocokkan.

Beberapa entri daftar hitam memiliki hubungan OR, yang berarti kontainer dikecualikan jika variabel lingkungannya memenuhi salah satu pasangan kunci-nilai.

K8s Pod Label Whitelist

Tentukan kontainer yang akan dikumpulkan menggunakan daftar putih label Kubernetes. Untuk mengatur daftar putih label Kubernetes, LabelKey wajib diisi, dan LabelValue opsional.

  • Jika LabelValue kosong, semua kontainer dengan label Kubernetes yang mencakup LabelKey akan dicocokkan.

  • Jika LabelValue tidak kosong, hanya kontainer dengan label Kubernetes yang cocok LabelKey=LabelValue yang dicocokkan.

    Secara default, `LabelValue` digunakan untuk pencocokan string. Kecocokan hanya terjadi jika nilai `LabelValue` identik dengan nilai label Kubernetes. Jika nilai diawali dengan ^ dan diakhiri dengan $, itu adalah pencocokan ekspresi reguler. Misalnya, jika Anda mengatur LabelKey ke app dan mengatur LabelValue ke ^(test1|test2)$, kontainer dengan label Kubernetes app:test1 atau app:test2 akan dicocokkan.

Beberapa entri daftar putih memiliki hubungan OR, yang berarti kontainer dicocokkan jika label Kubernetes-nya memenuhi salah satu entri daftar putih.

Catatan
  • Jika Anda mengubah label Kubernetes saat sumber daya kontrol Kubernetes, seperti deployment, sedang berjalan, pod operasional tidak akan dimulai ulang. Oleh karena itu, pod tidak dapat mendeteksi perubahan tersebut. Hal ini dapat menyebabkan aturan pencocokan menjadi tidak valid. Saat Anda mengonfigurasi daftar hitam dan putih label Kubernetes, kami merekomendasikan agar Anda menggunakan label pod Kubernetes. Untuk informasi lebih lanjut tentang label Kubernetes, lihat Labels and Selectors.

K8s Pod Label Blacklist

Kecualikan kontainer dari pengumpulan menggunakan daftar hitam label Kubernetes. Untuk mengatur daftar hitam label Kubernetes, LabelKey wajib diisi, dan LabelValue opsional.

  • Jika LabelValue kosong, semua kontainer dengan label Kubernetes yang mencakup LabelKey dikecualikan.

  • Jika LabelValue tidak kosong, hanya kontainer dengan label Kubernetes yang cocok LabelKey=LabelValue yang dikecualikan.

    Secara default, pencocokan string dilakukan untuk LabelValue. Kecocokan hanya terjadi jika nilai LabelValue persis sama dengan nilai label Kubernetes. Jika nilai diawali dengan ^ dan diakhiri dengan $, dilakukan pencocokan ekspresi reguler. Misalnya, jika Anda mengatur LabelKey ke app dan LabelValue ke ^(test1|test2)$, kontainer dengan label Kubernetes app:test1 atau app:test2 akan dicocokkan.

Beberapa entri daftar hitam memiliki hubungan OR, yang berarti kontainer dikecualikan jika label Kubernetes-nya memenuhi salah satu entri daftar hitam.

Catatan
  • Jika Anda mengubah label Kubernetes saat sumber daya kontrol Kubernetes, seperti deployment, sedang berjalan, pod operasional tidak akan dimulai ulang. Oleh karena itu, pod tidak dapat mendeteksi perubahan tersebut. Hal ini dapat menyebabkan aturan pencocokan menjadi tidak valid. Saat Anda mengonfigurasi daftar putih dan daftar hitam label Kubernetes, kami merekomendasikan agar Anda menggunakan label pod Kubernetes. Untuk informasi lebih lanjut tentang label Kubernetes, lihat Labels and Selectors.

Log Tag Enrichment

Tambahkan variabel lingkungan dan label Kubernetes ke log sebagai tag log.

Environment Variables

Setelah Anda mengonfigurasi parameter ini, Simple Log Service menambahkan field terkait variabel lingkungan ke log. Misalnya, jika Anda mengatur Environment Variable Name ke VERSION dan Tag Name ke env_version, dan kontainer mencakup variabel lingkungan VERSION=v1.0.0, informasi ini ditambahkan ke log sebagai field __tag__:__env_version__: v1.0.0.

Pod Labels

Setelah Anda mengonfigurasi parameter ini, Simple Log Service menambahkan field terkait label pod Kubernetes ke log. Misalnya, jika Anda mengatur Pod Label Name ke app dan Tag Name ke k8s_pod_app, dan pod Kubernetes mencakup label app=serviceA, informasi ini ditambahkan ke log sebagai field __tag__:__k8s_pod_app__: serviceA.

File Encoding

Pilih format encoding file log.

First Collection Size

Saat konfigurasi pertama kali diterapkan, ini adalah ukuran dari akhir file tempat pengumpulan dimulai. Ukuran pengumpulan awal default adalah 1.024 KB.

  • Untuk pengumpulan pertama, jika file lebih kecil dari 1.024 KB, pengumpulan dimulai dari awal file.

  • Untuk pengumpulan pertama, jika file lebih besar dari 1.024 KB, pengumpulan dimulai dari 1.024 KB dari akhir file.

Anda dapat memodifikasi First Collection Size di sini. Nilainya berkisar antara 0 hingga 10.485.760 KB.

Collection Blacklist

Setelah Anda menyalakan sakelar Collection Blacklist, Anda dapat mengonfigurasi daftar hitam untuk mengabaikan direktori atau file tertentu selama pengumpulan. Anda dapat menentukan direktori dan nama file menggunakan pencocokan persis atau karakter wildcard. Satu-satunya karakter wildcard yang didukung adalah tanda bintang (*) dan tanda tanya (?).

Penting
  • Jika Anda menggunakan karakter wildcard saat mengonfigurasi File Path tetapi perlu menyaring beberapa jalur tersebut, Anda harus memasukkan jalur lengkap yang sesuai di Collection Blacklist untuk memastikan konfigurasi daftar hitam berlaku.

    Misalnya, jika Anda mengatur File Path ke /home/admin/app*/log/*.log tetapi ingin menyaring semua subdirektori di bawah /home/admin/app1*, Anda harus memilih Directory Blacklist lalu mengonfigurasi direktori sebagai /home/admin/app1*/**. Jika Anda mengonfigurasinya sebagai /home/admin/app1*, daftar hitam tidak akan berlaku.

  • Pencocokan terhadap daftar hitam memiliki overhead komputasi. Batasi jumlah entri daftar hitam hingga 10.

  • Jalur direktori tidak boleh diakhiri dengan garis miring (/). Misalnya, jika Anda mengatur jalur ke /home/admin/dir1/, daftar hitam direktori tidak akan berlaku.

Mendukung pengaturan berdasarkan daftar hitam jalur file, daftar hitam file, dan daftar hitam direktori. Detailnya sebagai berikut:

File Path Blacklist

  • Pilih File Path Blacklist lalu konfigurasikan jalur sebagai /home/admin/private*.log. Ini akan mengabaikan semua file di direktori /home/admin/ yang diawali dengan "private" dan diakhiri dengan ".log" selama pengumpulan.

  • Pilih File Path Blacklist lalu konfigurasikan jalur sebagai /home/admin/private*/*_inner.log. Ini akan mengabaikan file yang diakhiri dengan _inner.log di direktori yang diawali dengan private di bawah direktori /home/admin/ selama pengumpulan. Misalnya, file /home/admin/private/app_inner.log diabaikan, tetapi file /home/admin/private/app.log dikumpulkan.

File Blacklist

Pilih File Blacklist lalu konfigurasikan nama file sebagai app_inner.log. Ini akan mengabaikan semua file bernama app_inner.log selama pengumpulan.

Directory Blacklist

  • Pilih Directory Blacklist lalu konfigurasikan direktori sebagai /home/admin/dir1. Ini akan mengabaikan semua file di direktori /home/admin/dir1 selama pengumpulan.

  • Pilih Directory Blacklist lalu konfigurasikan direktori sebagai /home/admin/dir*. Ini akan mengabaikan semua file di subdirektori yang diawali dengan "dir" di bawah direktori /home/admin/ selama pengumpulan.

  • Pilih Directory Blacklist lalu konfigurasikan direktori sebagai /home/admin/*/dir. Ini akan mengabaikan semua file di subdirektori bernama "dir" pada tingkat kedua di bawah direktori /home/admin/ selama pengumpulan. Misalnya, file di direktori /home/admin/a/dir diabaikan, tetapi file di direktori /home/admin/a/b/dir dikumpulkan.

Allow File To Be Collected For Multiple Times

Secara default, Anda hanya dapat menggunakan satu konfigurasi Logtail untuk mengumpulkan log dari file log. Jika log dalam file perlu dikumpulkan beberapa kali, aktifkan Allow File To Be Collected For Multiple Times.

Advanced Parameters

Untuk informasi lebih lanjut tentang parameter fitur lanjutan opsional lainnya terkait plugin input file, lihat CreateLogtailPipelineConfig.

Parameter konfigurasi pemrosesan

Item Konfigurasi

Deskripsi

Log Sample

Contoh log yang akan dikumpulkan. Gunakan log dari skenario aktual Anda. Contoh log membantu mengonfigurasi parameter pemrosesan log dan mengurangi kesulitan konfigurasi. Anda dapat menambahkan beberapa contoh, dengan panjang total tidak melebihi 1.500 karakter.

[2023-10-01T10:30:01,000] [INFO] java.lang.Exception: exception happened
    at TestPrintStackTrace.f(TestPrintStackTrace.java:3)
    at TestPrintStackTrace.g(TestPrintStackTrace.java:7)
    at TestPrintStackTrace.main(TestPrintStackTrace.java:16)

Multi-line Mode

  • Type: Log multi-baris adalah log di mana setiap entri log tersebar di beberapa baris berurutan. Penting untuk membedakan setiap entri log dari konten log.

    • Custom: Gunakan Regex To Match First Line untuk membedakan setiap entri log.

    • Multi-line JSON: Setiap objek JSON diperluas menjadi beberapa baris, misalnya:

      {
        "name": "John Doe",
        "age": 30,
        "address": {
          "city": "New York",
          "country": "USA"
        }
      }
  • Processing Method If Splitting Fails:

    Exception in thread "main" java.lang.NullPointerException
        at com.example.MyClass.methodA(MyClass.java:12)
        at com.example.MyClass.methodB(MyClass.java:34)
        at com.example.MyClass.main(MyClass.java:½0)

    Untuk konten log di atas, jika Simple Log Service gagal membaginya:

    • Discard: Langsung membuang segmen log ini.

    • Retain Single Line: Mempertahankan setiap baris teks log sebagai entri log terpisah, menghasilkan total empat entri log.

Processing Method

Processing Plugin Group mencakup Native Plugins dan Extension Plugins. Untuk informasi lebih lanjut, lihat Use Native and Extension Processing Plugins.

Penting

Untuk batasan penggunaan plugin pemrosesan, lihat petunjuk di halaman konsol.

  • Logtail 2.0:

    • Plugin native dapat digabungkan dengan cara apa pun.

    • Plugin native dan ekstensi dapat digunakan secara bersamaan, tetapi plugin ekstensi hanya dapat muncul setelah semua plugin native.

  • Versi Logtail sebelum 2.0:

    • Menambahkan plugin native dan ekstensi secara bersamaan tidak didukung.

    • Plugin native hanya dapat digunakan untuk mengumpulkan log teks. Saat menggunakan plugin native, persyaratan berikut harus dipenuhi:

      • Plugin pertama harus berupa penguraian ekspresi reguler, penguraian berbasis pemisah, penguraian JSON, penguraian pola NGINX, penguraian pola Apache, atau penguraian pola IIS.

      • Dari plugin kedua hingga terakhir, hanya boleh ada paling banyak satu plugin penguraian waktu, satu plugin penyaringan, dan beberapa plugin penyamaran data.

    • Untuk parameter Retain Original Field If Parsing Fails dan Retain Original Field If Parsing Succeeds, hanya kombinasi berikut yang valid. Kombinasi lain tidak valid.

      • Unggah hanya log yang berhasil diurai:

        image

      • Unggah log yang diurai saat berhasil, dan unggah log mentah saat gagal:

        image

      • Saat berhasil, unggah log yang diurai dan tambahkan field log mentah. Saat gagal, unggah log mentah.

        Misalnya, jika log mentah "content": "{"request_method":"GET", "request_time":"200"}" berhasil diurai, menambahkan field mentah menambahkan field lain ke log yang diurai. Nama field adalah New Name Of Original Field (jika dibiarkan kosong, default-nya adalah nama field asli), dan nilai field adalah log mentah {"request_method":"GET", "request_time":"200"}.

        image

Wilayah

  1. Masuk ke Konsol Simple Log Service. Di daftar Project, klik proyek tujuan.

  2. Klik ikon image di sebelah kanan nama proyek untuk membuka halaman ikhtisar proyek.

  3. Di bagian Basic Information, lihat nama wilayah proyek saat ini. Untuk pemetaan antara nama wilayah dan ID Wilayah, lihat tabel berikut.

    Wilayah adalah lokasi geografis pusat data fisik untuk layanan Alibaba Cloud. ID Wilayah adalah pengidentifikasi unik wilayah layanan Alibaba Cloud.

    Nama wilayah

    ID Wilayah

    China (Qingdao)

    cn-qingdao

    China (Beijing)

    cn-beijing

    China (Zhangjiakou)

    cn-zhangjiakou

    China (Hohhot)

    cn-huhehaote

    China (Ulanqab)

    cn-wulanchabu

    China (Hangzhou)

    cn-hangzhou

    China (Shanghai)

    cn-shanghai

    China (Nanjing - Local Region - Decommissioning)

    cn-nanjing

    China (Fuzhou - Local Region - Decommissioning)

    cn-fuzhou

    China (Shenzhen)

    cn-shenzhen

    China (Heyuan)

    cn-heyuan

    China (Guangzhou)

    cn-guangzhou

    Filipina (Manila)

    ap-southeast-6

    Korea Selatan (Seoul)

    ap-northeast-2

    Malaysia (Kuala Lumpur)

    ap-southeast-3

    Jepang (Tokyo)

    ap-northeast-1

    Thailand (Bangkok)

    ap-southeast-7

    China (Chengdu)

    cn-chengdu

    Singapura

    ap-southeast-1

    Indonesia (Jakarta)

    ap-southeast-5

    China (Hong Kong)

    cn-hongkong

    Jerman (Frankfurt)

    eu-central-1

    AS (Virginia)

    us-east-1

    AS (Silicon Valley)

    us-west-1

    Inggris (London)

    eu-west-1

    UEA (Dubai)

    me-east-1

    SAU (Riyadh - Partner Region)

    me-central-1

Jenis transmisi jaringan

Jenis jaringan

Jenis nama domain yang sesuai

Deskripsi

Skenario

Jaringan internal Alibaba Cloud

Nama domain privat

Jaringan internal Alibaba Cloud adalah jaringan bersama gigabit. Mengirim data log melalui jaringan ini lebih cepat dan stabil dibandingkan melalui Internet. Jaringan internal mencakup virtual private cloud (VPC) dan jaringan klasik.

Instance ECS dan proyek SLS berada di wilayah yang sama, atau server terhubung ke virtual private cloud (VPC) melalui Express Connect.

Catatan

Buat proyek SLS di wilayah yang sama dengan instance ECS untuk mengumpulkan log melalui jaringan internal Alibaba Cloud. Metode ini tidak mengonsumsi bandwidth publik.

Internet

Nama domain publik

Mengirim data log melalui Internet dibatasi oleh bandwidth jaringan. Kecepatan dan stabilitas pengumpulan data juga dapat dipengaruhi oleh fluktuasi jaringan, latensi, dan kehilangan paket.

Kirim data melalui Internet dalam dua skenario berikut.

  • Instance ECS dan proyek SLS berada di wilayah berbeda.

  • Server dihosting oleh penyedia cloud lain atau di pusat data yang dikelola sendiri.

Akselerasi transfer

Titik akhir akselerasi

Metode ini menggunakan edge node Content Delivery Network (CDN) Alibaba Cloud untuk mempercepat pengumpulan log. Metode ini menawarkan keunggulan signifikan dalam latensi dan stabilitas jaringan dibandingkan pengumpulan data melalui Internet. Namun, biaya tambahan berlaku untuk trafiknya.

Jika server aplikasi dan proyek SLS Anda berada di negara berbeda, mengirim data melalui Internet dapat menyebabkan latensi tinggi dan ketidakstabilan. Gunakan akselerasi transfer untuk mengatasi masalah ini. Untuk informasi lebih lanjut, lihat Akselerasi transfer.