LoongCollector mengumpulkan output standar (stdout dan stderr) serta file log teks dari kontainer Docker, lalu mengagregasikannya dari beberapa node ke satu LogStore di Simple Log Service. Pengumpulan terpusat menghilangkan kebutuhan untuk mencari log kontainer satu per satu berdasarkan node, serta memungkinkan penguraian terstruktur, penyamaran data, penyaringan, serta kueri dan analisis yang efisien.
Persyaratan
Sebelum menyebar LoongCollector, periksa persyaratan dan batasan berikut:
Persyaratan izin — Akun Alibaba Cloud atau RAM user yang Anda gunakan untuk penyebaran harus memiliki izin
AliyunLogFullAccess.Persyaratan Docker dan LoongCollector:
Jika versi Docker Engine Anda adalah v29.0 atau lebih baru, atau versi minimum API Docker yang didukung adalah 1.42 atau lebih baru, gunakan LoongCollector 3.2.4 atau lebih baru. Jika tidak, LoongCollector tidak dapat mengumpulkan output standar atau log file kontainer.
LoongCollector 3.2.4 dan lebih baru mendukung versi API Docker 1.24 hingga 1.48.
LoongCollector 3.2.3 dan lebih lama mendukung versi API Docker 1.18 hingga 1.41.
Batasan dalam mengumpulkan output standar:
Anda harus menambahkan
"log-driver": "json-file"ke file konfigurasi Docker daemon.json.Pada CentOS 7.4 atau lebih baru, kecuali CentOS 8.0, Anda harus mengatur
fs.may_detach_mounts=1.
Batasan dalam mengumpulkan log teks — Hanya driver penyimpanan overlay dan overlay2 yang didukung. Untuk driver penyimpanan lainnya, Anda harus memasang direktori log secara manual.
Tentukan hal-hal berikut sebelum menjalankan perintah penyebaran pada Langkah 1, karena setiap keputusan dikodekan dalam perintah
docker pulldandocker run:Citra dan wilayah — Citra yang Anda tarik, serta ID wilayah tempat Anda menarik citra tersebut.
Saluran unggah log — Jenis transmisi jaringan yang dikodekan oleh variabel
${sls_upload_channel}. Untuk perbandingan opsi jaringan internal, Internet, dan akselerasi transfer, lihat bagian Lampiran: Jenis Transmisi Jaringan dalam topik ini.Pengenal kelompok mesin — Pengenal kustom yang Anda masukkan melalui variabel
${user_defined_id}. Pengenal tersebut harus unik dalam wilayah tersebut, dan kelompok mesin harus menggunakan nilai yang sama.
Alur kerja konfigurasi pengumpulan
Daftar berikut memetakan alur kerja pengumpulan ke bagian-bagian dalam topik ini:
Persiapan: Buat proyek dan LogStore. Proyek adalah unit manajemen resource yang mengisolasi log dari aplikasi berbeda, sedangkan LogStore menyimpan log.
Langkah 1: Konfigurasikan kelompok mesin (instal LoongCollector): Instal LoongCollector pada server tempat Anda ingin mengumpulkan log dan tambahkan ke kelompok mesin. Gunakan kelompok mesin untuk mengelola node pengumpulan secara terpusat, serta mendistribusikan konfigurasi dan memantau status server Anda.
Langkah 2: Buat dan konfigurasikan aturan pengumpulan log
Konfigurasi global dan input: Tentukan nama konfigurasi pengumpulan, sumber log, dan cakupan pengumpulan.
Pemrosesan dan strukturisasi log: Konfigurasikan aturan pemrosesan berdasarkan format log.
Log multi-baris: Berlaku ketika satu entri log mencakup beberapa baris, seperti stack exception Java atau traceback Python. Gunakan ekspresi reguler baris pertama untuk mengidentifikasi baris awal setiap entri.
Penguraian terstruktur: Konfigurasikan plugin penguraian, seperti ekspresi reguler, delimiter, atau mode NGINX, untuk mengekstraksi pasangan kunci-nilai terstruktur dari string mentah agar lebih mudah dikueri dan dianalisis.
Penyaringan log (Data Filtering): Konfigurasikan daftar hitam pengumpulan dan aturan penyaringan konten untuk hanya menyimpan konten log yang berguna serta mengurangi transmisi dan penyimpanan data berlebih.
Kategorisasi log: Konfigurasikan topik dan pelabelan log untuk membedakan log dari aplikasi, kontainer, atau jalur sumber yang berbeda secara fleksibel.
Konfigurasi output: Simpan log yang dikumpulkan di LogStore saat ini atau distribusikan ke beberapa LogStore.
Langkah 3: Konfigurasikan kueri dan analisis (Query and Analysis Configurations): Indeks teks penuh diaktifkan secara default dan mendukung pencarian kata kunci. Kami menyarankan Anda juga mengaktifkan indeks bidang agar dapat menjalankan kueri dan analisis presisi pada bidang terstruktur serta meningkatkan efisiensi pencarian.
Langkah 4: Validasi dan troubleshooting: Setelah menyelesaikan konfigurasi, verifikasi bahwa log telah dikumpulkan. Jika mengalami masalah seperti tidak ada data yang dikumpulkan, kegagalan heartbeat, atau error penguraian, lihat FAQ.
Persiapan
Sebelum mengumpulkan log, rencanakan dan buat proyek serta LogStore yang akan mengelola dan menyimpan log Anda. Jika Anda sudah memiliki resource ini, lewati bagian ini dan lanjutkan ke Langkah 1: Konfigurasikan kelompok mesin (instal LoongCollector).
Untuk membuat proyek
Masuk ke Konsol Simple Log Service.
Klik Create Project dan konfigurasikan parameter berikut:
Region: Pilih wilayah berdasarkan lokasi sumber log Anda. Pengaturan ini tidak dapat diubah setelah dibuat.
Project Name: Nama harus unik secara global dalam Alibaba Cloud. Nama ini tidak dapat diubah setelah dibuat.
Biarkan pengaturan lainnya pada nilai default dan klik Create. Untuk informasi selengkapnya tentang parameter lainnya, lihat Create a project.
Untuk membuat LogStore
Klik nama proyek untuk membuka proyek tujuan.
Di panel navigasi kiri, pilih
Logstores dan klik +.Pada halaman Create LogStore, lengkapi pengaturan inti berikut:
Logstore Name: Masukkan nama yang unik dalam proyek. Nama ini tidak dapat diubah setelah dibuat.
Logstore Type: Pilih Standard atau Query berdasarkan perbandingan spesifikasi.
Billing Mode:
Pay-by-feature (Cannot Be Changed): Anda ditagih secara terpisah untuk setiap resource, seperti penyimpanan, pengindeksan, dan operasi baca/tulis. Mode ini cocok untuk skenario skala kecil atau skenario di mana penggunaan fitur belum pasti.
Pay-by-ingested-data: Anda hanya ditagih berdasarkan data mentah yang diingest. Mode ini menyediakan penyimpanan gratis selama 30 hari dan fitur gratis seperti transformasi data dan pengiriman data. Mode ini cocok untuk skenario bisnis dengan periode retensi mendekati 30 hari atau pipeline pemrosesan data kompleks.
Data Retention Period: Tentukan jumlah hari untuk menyimpan log. Nilai valid: 1 hingga 3.650. Nilai 3.650 menunjukkan penyimpanan permanen. Nilai default: 30.
Biarkan pengaturan lainnya pada nilai default dan klik OK. Untuk informasi selengkapnya tentang pengaturan lainnya, lihat Manage a LogStore.
Langkah 1: Konfigurasikan kelompok mesin (instal LoongCollector)
Sebarkan LoongCollector sebagai kontainer pada mesin host Docker dan tambahkan ke kelompok mesin. Gunakan kelompok mesin untuk mengelola beberapa node pengumpulan secara terpusat, mendistribusikan konfigurasi, dan memantau status.
1. Tarik citra
Pada mesin host yang telah menginstal Docker, jalankan perintah berikut untuk menarik citra LoongCollector. Ganti ${region_id} dengan ID wilayah tempat mesin host berada atau wilayah terdekat, seperti cn-hangzhou, untuk meningkatkan kecepatan unduh dan stabilitas.
# Alamat citra LoongCollector
docker pull aliyun-observability-release-registry.${region_id}.cr.aliyuncs.com/loongcollector/loongcollector:v3.0.12.0-25723a1-aliyun
# Alamat citra Logtail
docker pull registry.${region_id}.aliyuncs.com/log-service/logtail:v2.1.11.0-aliyun2. Jalankan kontainer LoongCollector
Jalankan perintah berikut untuk memulai kontainer. Pastikan Anda memasang direktori yang diperlukan 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-aliyunKebijakan restart kontainer: Saat memulai kontainer LoongCollector, kami menyarankan Anda menentukan --restart=unless-stopped atau --restart=always agar Docker secara otomatis merestart kontainer setelah keluar secara tak terduga atau setelah daemon Docker direstart. Jika tidak, jika kontainer dipaksa dihentikan oleh operasi eksternal atau keluar secara abnormal, kontainer tidak akan pulih secara otomatis. Kontainer kehilangan kemampuan self-healing-nya, dan pengumpulan log berhenti tanpa pemberitahuan.
Parameter:
${aliyun_account_id}: ID akun Alibaba Cloud Anda.${user_defined_id}: Pengenal kustom kelompok mesin, yang mengikat kontainer ke kelompok mesin, sepertiuser-defined-docker-1. Pengenal tersebut harus unik dalam wilayah tersebut.${sls_upload_channel}: Saluran unggah log. Nilainya terdiri dari wilayah tempat proyek berada dan jenis transmisi jaringan, seperti dijelaskan dalam tabel berikut.
Jenis transmisi | Format nilai | Contoh | Scenario |
Jaringan internal |
|
| Instance ECS dan proyek berada di wilayah yang sama. |
Internet |
|
| Instance ECS dan proyek berada di wilayah berbeda, atau server milik penyedia cloud lain atau pusat data mandiri. |
Akselerasi transfer |
|
| Komunikasi lintas wilayah antara daratan Tiongkok dan negara atau wilayah lain. |
Untuk karakteristik jaringan di balik setiap jenis transmisi, lihat bagian Lampiran: Jenis Transmisi Jaringan dalam topik ini.
Syarat startup yang diperlukan:
Konfigurasikan dengan benar tiga variabel lingkungan utama:
ALIYUN_LOGTAIL_CONFIG,ALIYUN_LOGTAIL_USER_ID, danALIYUN_LOGTAIL_USER_DEFINED_ID.Pasang
/var/run/docker.sockuntuk mendengarkan event siklus hidup kontainer.Pasang
/ke/logtail_hostuntuk mengakses sistem file mesin host.
3. Verifikasi status kontainer
Jalankan perintah berikut:
docker ps | grep loongcollectorOutput berikut dikembalikan:
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_shirley4. Konfigurasikan kelompok mesin
Di panel navigasi kiri, pilih . Klik
> Create Machine Group, konfigurasikan parameter berikut, lalu klik OK:
Name: Masukkan nama kustom untuk kelompok mesin, seperti
docker-host-group.Machine Group Identifier: Pilih Custom Identifier.
Custom Identifier: Masukkan
${user_defined_id}yang Anda atur saat memulai kontainer. Nilainya harus identik. Jika tidak, asosiasi gagal.
5. Verifikasi heartbeat kelompok mesin
Klik nama kelompok mesin baru untuk membuka halaman detailnya, lalu periksa Machine Group Status:
OK: LoongCollector terhubung ke Simple Log Service.
FAIL: Lihat Summary of heartbeat issues untuk melakukan troubleshooting.
Langkah 2: Buat dan konfigurasikan aturan pengumpulan log
Tentukan log mana yang dikumpulkan oleh LoongCollector, cara mengurai struktur log, cara menyaring konten, lalu ikat konfigurasi ke kelompok mesin yang terdaftar.
Pada halaman
LogStores, klik ikon
di samping nama LogStore tujuan untuk memperluasnya.Klik ikon
di samping Import Data. Di dialog Quick Data Import, pilih templat berdasarkan sumber log Anda dan klik Integrate Now:Output standar Docker: Pilih Docker Stdout and Stderr - New Version.
Pengumpulan output standar kontainer mendukung templat baru dan templat lama. Kami merekomendasikan templat baru. Untuk perbedaan antara kedua versi, lihat Lampiran: Perbandingan Versi Output Standar Kontainer Baru dan Lama. Untuk menggunakan templat lama, lihat Collect standard output from Docker containers (old version).
Kedua templat juga berbeda dalam perilaku pengumpulan default: dengan templat baru, output standar kontainer hanya dapat dikumpulkan oleh satu konfigurasi pengumpulan secara default, sedangkan templat lama mendukung pengumpulan oleh beberapa konfigurasi tanpa konfigurasi tambahan. Untuk instruksi melepaskan pembatasan ini, lihat bagian FAQ dalam topik ini.
File log Docker: Pilih Docker File - Container.3. Konfigurasikan Machine Group Configurations, lalu klik Next:
Scenario: Pilih Docker Containers.
Pindahkan kelompok mesin yang Anda buat di Langkah 1 dari daftar Source Machine Group ke daftar Applied Machine Group di sebelah kanan.4. Pada halaman Logtail Configuration, lengkapi pengaturan yang dijelaskan dalam bagian berikut, lalu klik Next.
1. Konfigurasi Global dan Input
Sebelum memulai, pastikan Anda telah memilih templat impor data dan mengikat kelompok mesin. Langkah ini menentukan nama konfigurasi pengumpulan, sumber log, serta cakupan pengumpulan.
Kumpulkan output standar Docker
Global Configurations
Configuration Name: Masukkan nama kustom untuk konfigurasi pengumpulan. Nama tersebut harus unik dalam proyek dan tidak dapat diubah setelah dibuat. Aturan penamaan:
Nama hanya boleh berisi huruf kecil, angka, tanda hubung (-), dan garis bawah (_).
Nama harus dimulai dan diakhiri dengan huruf kecil atau angka.
Konfigurasi input
Aktifkan sakelar Stdout and Stderr atau sakelar Standard Error. Keduanya diaktifkan secara default. Untuk menjaga urutan log yang dikumpulkan, jangan aktifkan pengumpulan output standar dan error standar secara bersamaan.
Kumpulkan log teks dari Kontainer Docker
Global Configurations:
Configuration Name: Masukkan nama kustom untuk konfigurasi pengumpulan. Nama tersebut harus unik dalam proyek dan tidak dapat diubah setelah dibuat. Aturan penamaan:
Nama hanya boleh berisi huruf kecil, angka, tanda hubung (-), dan garis bawah (_).
Nama harus dimulai dan diakhiri dengan huruf kecil atau angka.
Input Configurations:
File Path Type:
Path in Container: Kumpulkan file log di dalam kontainer.
Host Path: Kumpulkan log layanan lokal pada mesin host.
File Path: Jalur absolut untuk pengumpulan log.
Linux: Jalur dimulai dengan garis miring (/), misalnya
/data/mylogs/**/*.log, yang menunjukkan semua file berekstensi .log di direktori/data/mylogs.Windows: Jalur dimulai dengan huruf drive, misalnya
C:\Program Files\Intel\**\*.Log.
Maximum Directory Monitoring Depth: Kedalaman maksimum direktori yang cocok dengan wildcard
**pada File Path. Nilai default: 0, yang berarti hanya direktori saat ini. Nilai yang valid berkisar antara 0 hingga 1.000. Disarankan untuk mengatur parameter ini ke 0 dan menentukan jalur hingga ke direktori tempat file tersebut berada.
2. Pemrosesan dan penstrukturan log
Konfigurasikan aturan pemrosesan log untuk mengubah log mentah yang tidak terstruktur menjadi data terstruktur serta meningkatkan efisiensi kueri dan analisis log. Kami menyarankan Anda menambahkan sampel log terlebih dahulu:
Pada halaman Logtail Configuration, di bagian Processor Configurations, klik Add Sample Log dan masukkan konten log yang ingin Anda kumpulkan. Simple Log Service mengidentifikasi format log dari sampel tersebut dan membantu menghasilkan ekspresi reguler serta aturan penguraian, sehingga menyederhanakan konfigurasi.
Skenario 1: Memproses log multi-baris, seperti log stack Java
Log seperti stack exception Java dan JSON biasanya mencakup beberapa baris. Dalam mode pengumpulan default, log tersebut dipisah menjadi beberapa entri yang tidak lengkap sehingga konteksnya hilang. Untuk mencegah hal ini, aktifkan mode multi-baris dan konfigurasikan ekspresi reguler baris pertama untuk menggabungkan baris-baris berurutan dari log yang sama menjadi satu entri lengkap.
Contoh:
Raw log | Default collection mode: setiap baris adalah log terpisah, stack terpecah, dan konteks hilang | Multi-line mode: ekspresi reguler baris pertama mengidentifikasi log lengkap dan mempertahankan struktur semantik utuh |
```log | ||
[2025-11-13T10:52:20,557] [ERROR] java.sql.SQLException: No suitable driver found for jdbc:mysql://db.host:3306/prod_db | ||
at com.datastore.util.DataProcessor.save(DataProcessor.java:434) | ||
at io.awesomeapp.util.PaymentGateway.fetchData(PaymentGateway.java:463) | ||
at org.awesomeapp.util.UserService.processRequest(UserService.java:252) | ||
at io.datastore.service.DatabaseConnector.fetchData(DatabaseConnector.java:172) | ||
at org.datastore.service.UserService.fetchData(UserService.java:517) | ||
``` |
|
|
Prosedur: Pada halaman Logtail Configuration, di bagian Processor Configurations, aktifkan Multi-line Mode:
Type: Pilih Custom atau Multi-line JSON.
Custom: Format log mentah tidak tetap. Konfigurasikan Regex to Match First Line untuk mengidentifikasi baris awal setiap log.
Regex to Match First Line: Anda dapat menghasilkan ekspresi secara otomatis atau memasukkannya secara manual. Ekspresi reguler harus sesuai dengan satu baris lengkap. Pada contoh sebelumnya, ekspresinya adalah
\[\d+-\d+-\w+:\d+:\d+,\d+]\s\[\w+]\s.*.Generasi otomatis: Klik Automatically Generate Regular Expression, pilih konten log yang ingin diekstraksi di kotak teks Log Sample, lalu klik Generate Regular Expression.
Masukan manual: Klik Manually Enter Regular Expression. Setelah memasukkan ekspresi, klik Validate.
Multi-line JSON: Jika semua log mentah berada dalam format JSON standar, Simple Log Service secara otomatis menangani jeda baris di dalam satu log JSON.
Processing Method If Splitting Fails:
Discard: Jika segmen teks tidak sesuai dengan aturan baris pertama, segmen tersebut dibuang.
Retain Single Line: Teks yang tidak sesuai dipisah dan dipertahankan dalam mode satu baris aslinya.
Skenario 2: Menstrukturkan log
Saat log mentah berupa teks tidak terstruktur atau semi-terstruktur—seperti access log NGINX atau output log aplikasi—melakukan kueri dan analisis secara langsung menjadi tidak efisien. Simple Log Service menyediakan berbagai plugin penguraian data yang secara otomatis mengonversi log mentah dalam berbagai format menjadi data terstruktur, sehingga memberikan fondasi data yang kuat untuk analisis, pemantauan, dan peringatan selanjutnya.
Contoh:
Raw log | Log setelah penguraian terstruktur |
```plaintext | |
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 | |
``` |
Prosedur: Pada halaman Logtail Configuration, di bagian Processor Configurations:
Tambahkan plugin penguraian: Klik Add Processor dan konfigurasikan plugin seperti penguraian ekspresi reguler, penguraian pembatas (delimiter), atau penguraian JSON sesuai format aktual. Untuk parameter tiap plugin, lihat bagian Lampiran: Plugin penguraian native pada topik ini. Contoh berikut mengumpulkan log NGINX, sehingga pilih .
NGINX Log Configuration: Salin definisi lengkap
log_formatdari file konfigurasi server NGINX (nginx.conf) dan tempelkan ke kotak teks ini. Contoh:log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$request_time $request_length ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent"';persis sama dengan format yang menghasilkan log di server. Jika tidak, penguraian log akan gagal.
Parameter konfigurasi umum: Parameter berikut muncul di berbagai plugin penguraian data dan memiliki fungsi serta penggunaan yang sama.
Source field: Nama bidang sumber yang akan diurai. Nilai default:
content, yaitu seluruh konten log yang dikumpulkan.Keep source field on parse failure: Kami menyarankan Anda mengaktifkan opsi ini. Jika plugin tidak dapat mengurai log—misalnya karena ketidaksesuaian format—opsi ini mempertahankan konten log mentah lengkap di bidang sumber yang ditentukan alih-alih membuangnya.
Keep source field on parse success: Jika Anda memilih opsi ini, konten log mentah tetap dipertahankan meskipun log berhasil diurai.
3. Penyaringan log
Mengumpulkan volume besar log bernilai rendah atau tidak relevan—seperti log DEBUG atau INFO—memboroskan sumber daya penyimpanan, meningkatkan biaya, menurunkan efisiensi kueri, dan berpotensi menyebabkan kebocoran data. Gunakan kebijakan penyaringan detail halus untuk pengumpulan log yang efisien dan aman.
Penyaringan dikonfigurasi di dua lokasi dalam Konsol: penyaringan konten diatur melalui plugin pemrosesan pada bagian Processor Configurations, sedangkan daftar hitam koleksi dan penyaringan kontainer dikendalikan melalui sakelar di bagian Input Configurations.
Kurangi biaya dengan penyaringan konten
Saring berdasarkan bidang konten log, misalnya, kumpulkan hanya log dengan level WARNING atau ERROR.
Contoh:
Log mentah | Kumpulkan hanya log |
```shell | |
{"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} | |
``` |
Prosedur: Pada halaman Logtail Configuration, di bagian Processor Configurations, klik Add Processor dan pilih :
Field Name: Bidang log yang akan disaring.
Field Value: Ekspresi reguler yang digunakan untuk penyaringan. Hanya pencocokan teks lengkap yang didukung; pencocokan sebagian kata kunci tidak didukung.
Kontrol cakupan koleksi dengan daftar hitam
Gunakan daftar hitam untuk mengecualikan direktori atau file tertentu guna mencegah pengunggahan log yang tidak relevan atau sensitif.
Prosedur: Pada halaman Logtail Configuration, di bagian , aktifkan Collection Blacklist dan klik Add.
Nama direktori dan file mendukung pencocokan eksak serta pencocokan wildcard. Satu-satunya wildcard yang didukung adalah tanda bintang (*) dan tanda tanya (?).
File Path Blacklist: Jalur file yang diabaikan. Contoh:
/home/admin/private*.log: Mengabaikan semua file di direktori/home/admin/yang namanya diawali dengan private dan diakhiri dengan .log selama pengumpulan./home/admin/private*/*_inner.log: Mengabaikan file yang diakhiri dengan _inner.log di dalam direktori yang diawali dengan private di bawah direktori/home/admin/selama pengumpulan.
File Blacklist: Nama file yang 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/: Daftar hitam direktori tidak berlaku./home/admin/dir*: Mengabaikan file di semua subdirektori yang diawali dengan dir di bawah direktori/home/admin/selama pengumpulan./home/admin/*/dir: Mengabaikan semua file di subdirektori tingkat kedua bernama dir di bawah direktori/home/admin/selama pengumpulan. Misalnya, file di direktori/home/admin/a/dirdiabaikan, sedangkan file di direktori/home/admin/a/b/dirdikumpulkan.
Penyaringan kontainer
Tetapkan kondisi koleksi berdasarkan metadata kontainer—seperti variabel lingkungan, label Pod, namespace, dan nama kontainer—untuk mengontrol secara tepat log kontainer mana yang dikumpulkan.
Prosedur: Pada halaman Logtail Configuration, di bagian Input Configurations, aktifkan Container Filtering dan klik Add.
Beberapa kondisi digabungkan dengan logika AND. Semua pencocokan ekspresi reguler didasarkan pada mesin Go RE2, yang lebih terbatas dibandingkan mesin seperti PCRE. Tulis ekspresi reguler Anda sesuai dengan Apendiks: Batasan ekspresi reguler (penyaringan kontainer).
Kondisi berikut berlaku untuk kontainer Docker:
Daftar hitam/daftar putih variabel lingkungan: Menentukan kondisi variabel lingkungan dari kontainer yang log-nya akan dikumpulkan.
Daftar hitam/daftar putih label kontainer: Mengumpulkan log dari kontainer yang label-nya memenuhi kondisi. Gunakan parameter ini dalam skenario Docker. Kami tidak merekomendasikannya dalam skenario Kubernetes.
Kondisi berikut berlaku untuk kontainer yang dikelola oleh Kubernetes:
Daftar hitam/daftar putih label Pod Kubernetes: Menentukan kondisi label pada Pod yang menampung kontainer yang log-nya akan dikumpulkan.
Pencocokan nama Pod Kubernetes menggunakan ekspresi reguler: Menentukan kontainer yang log-nya akan dikumpulkan berdasarkan nama Pod.
Pencocokan namespace Kubernetes menggunakan ekspresi reguler: Menentukan kontainer yang log-nya akan dikumpulkan berdasarkan nama namespace.
Pencocokan nama kontainer Kubernetes menggunakan ekspresi reguler: Menentukan kontainer yang log-nya akan dikumpulkan berdasarkan nama kontainer tersebut.
4. Kategorisasi log
Ketika beberapa aplikasi atau instans menggunakan format log yang sama, sumber log menjadi sulit dibedakan, sehingga kueri kehilangan konteks dan efisiensi analisis menurun. Untuk mengatasi hal ini, konfigurasikan topik dan penandaan log guna mengasosiasikan konteks secara otomatis serta melakukan kategorisasi logis.
Konfigurasikan topik
Ketika beberapa aplikasi atau instans menghasilkan log dalam format yang sama tetapi berada pada jalur berbeda—misalnya /apps/app-A/run.log dan /apps/app-B/run.log—log yang dikumpulkan sulit dilacak kembali ke sumber asalnya. Dalam kasus ini, buat topik berdasarkan kelompok mesin, nama kustom, atau ekstraksi jalur file untuk membedakan log dari berbagai aplikasi atau jalur sumber secara fleksibel.
Prosedur:: Pilih metode pembuatan topik. Tiga tipe berikut didukung:
machine group topic: Ketika konfigurasi pengumpulan diterapkan pada beberapa kelompok mesin, LoongCollector secara otomatis mengunggah nama kelompok mesin tempat server tersebut berada sebagai bidang
__topic__. Tipe ini cocok untuk skenario di mana log dibagi berdasarkan kluster host.Custom: Formatnya adalah
customized://<custom_topic_name>, misalnyacustomized://app-login. Tipe ini cocok untuk skenario topik statis dengan identifikasi aplikasi tetap.File path extraction: Mengekstraksi informasi kunci dari jalur lengkap file log untuk menandai sumber log secara dinamis. Tipe ini cocok untuk skenario di mana beberapa pengguna atau aplikasi berbagi nama file log yang sama tetapi berada pada jalur berbeda.
Ketika beberapa pengguna atau layanan menulis log ke direktori tingkat atas berbeda namun jalur dan nama file tingkat bawahnya identik, hanya nama file saja tidak cukup untuk membedakan sumbernya. Contohnya:
/data/logs
├── userA
│ └── serviceA
│ └── service.log
├── userB
│ └── serviceA
│ └── service.log
└── userC
└── serviceA
└── service.logDalam kasus ini, konfigurasikan File Path Extraction dan gunakan ekspresi reguler untuk mengekstraksi informasi kunci dari jalur lengkap. Hasil pencocokan akan diunggah ke LogStore sebagai topik.
Aturan ekstraksi: capturing groups dalam ekspresi reguler
Saat Anda mengonfigurasi ekspresi reguler, Simple Log Service menentukan format bidang output berdasarkan jumlah dan penamaan capturing groups, seperti dijelaskan dalam tabel berikut. Dalam ekspresi reguler untuk jalur file, Anda harus meng-escape karakter garis miring (/).
Jenis capturing group | Scenario | Bidang yang dihasilkan | Contoh ekspresi reguler | Contoh jalur yang cocok | Contoh bidang yang dihasilkan |
Single capturing group (hanya satu | Hanya satu dimensi yang diperlukan untuk membedakan sumber, seperti nama pengguna atau lingkungan. | Menghasilkan bidang |
|
|
|
Multiple unnamed capturing groups (beberapa | Diperlukan beberapa dimensi, tetapi label semantis tidak diperlukan. | Menghasilkan bidang tag |
|
|
|
Multiple named capturing groups (menggunakan | Diperlukan beberapa dimensi, dan nama bidang harus deskriptif agar lebih mudah dikueri dan dianalisis. | Menghasilkan bidang tag |
|
|
|
Penandaan log
Aktifkan penguatan tag log untuk mengekstraksi informasi kunci dari variabel lingkungan container atau label Pod Kubernetes, lalu menyambungkannya sebagai tag guna pengelompokan log detail halus.
Prosedur: Di halaman Logtail Configuration, pada bagian Input Configurations, aktifkan Log Tag Enrichment dan klik Add.
Environment Variables: Konfigurasikan nama variabel lingkungan dan nama tag. Nilai variabel lingkungan tersebut akan disimpan di bawah nama tag tersebut.
Nama variabel lingkungan: Nama variabel lingkungan yang akan diekstraksi.
Nama tag: Nama tag variabel lingkungan.
Pod Labels: Konfigurasikan nama label Pod dan nama tag. Nilai label Pod tersebut akan disimpan di bawah nama tag tersebut.
Nama label Pod: Nama label Pod Kubernetes yang akan diekstraksi.
Nama tag: Nama tag.
5. Konfigurasi Output
Secara default, semua log dikirim ke LogStore saat ini dengan kompresi lz4. Untuk mendistribusikan log dari sumber yang sama ke LogStore berbeda, ikuti langkah-langkah berikut.
Distribusi dinamis ke beberapa target
Pengiriman ke beberapa target memerlukan LoongCollector versi 3.0.0 atau lebih baru. Logtail tidak mendukung fitur ini.
Anda dapat mengonfigurasi hingga lima target output.
Setelah mengonfigurasi beberapa target output, konfigurasi pengumpulan tersebut tidak lagi muncul dalam daftar konfigurasi pengumpulan LogStore saat ini. Untuk melihat, mengubah, atau menghapus konfigurasi distribusi multi-target, lihat Cara mengelola konfigurasi distribusi multi-target?.
Prosedur: Pada halaman Logtail Configuration, di bagian Output Configurations:
Klik
untuk memperluas konfigurasi output.Klik Add Output Targets dan lengkapi pengaturan berikut:
Logstores: Pilih LogStore tujuan.
Compression Method: Metode lz4 dan zstd didukung.
Route Settings: Merutekan dan mendistribusikan log berdasarkan bidang tag-nya. Log yang memenuhi konfigurasi routing diunggah ke LogStore tujuan. Jika konfigurasi routing kosong, semua log yang dikumpulkan diunggah 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:Terkait Agen: Terkait dengan agen pengumpulan itu sendiri dan independen dari plugin, seperti
__hostname__dan__user_defined_id__.Terkait input plugin: Disediakan oleh input plugin, yang memperkaya log dengan informasi terkait, seperti
__path__untuk pengumpulan file dan_pod_name_serta_container_name_untuk pengumpulan Kubernetes.Untuk informasi lebih lanjut tentang tag, lihat Kelola tag pengumpulan.
Tag Value: Log yang nilai bidang tagnya cocok dengan nilai ini dikirim ke LogStore tujuan.
Discard this tag?: Jika Anda mengaktifkan sakelar ini, log yang diunggah tidak akan berisi bidang tag ini.
Langkah 3: Konfigurasikan kueri dan analisis
Setelah menyelesaikan pemrosesan log dan konfigurasi plugin, klik Next untuk membuka halaman Query and Analysis Configurations:
Indeks teks penuh diaktifkan secara default dan mendukung pencarian kata kunci pada konten log mentah.
Untuk menjalankan kueri presisi berdasarkan field, tunggu hingga Preview Data dimuat di halaman lalu klik Automatic Index Generation. Simple Log Service menghasilkan indeks bidang berdasarkan entri pertama dalam data pratinjau.
Setelah menyelesaikan konfigurasi, klik Next untuk menyelesaikan seluruh pengaturan pengumpulan.
Langkah 4: Validasi dan troubleshooting
Setelah menyelesaikan konfigurasi pengumpulan dan menerapkannya ke kelompok mesin, Simple Log Service secara otomatis mendistribusikan konfigurasi dan mulai mengumpulkan log inkremental.
Lihat log yang diunggah
Konfirmasi bahwa file log memiliki konten baru: LoongCollector hanya mengumpulkan log inkremental. Jalankan
tail -f /path/to/your/log/filedan picu operasi aplikasi untuk memastikan log baru sedang ditulis.Kueri log: Buka halaman kueri dan analisis LogStore tujuan dan klik Search & Analyze. Rentang waktu default adalah 15 menit terakhir. Periksa apakah log baru tiba. Secara default, setiap log teks kontainer Docker yang dikumpulkan berisi field berikut:
Field | Deskripsi |
| Alamat IP kontainer LoongCollector (Logtail). |
| Alamat IP kontainer aplikasi. |
| Nama mesin host Docker tempat LoongCollector (Logtail) berjalan. |
| Jalur pengumpulan log. |
| Waktu log tiba di sisi server. |
| Pengenal kustom kelompok mesin. |
Untuk nama field metadata yang digunakan oleh output standar kontainer, lihat bagian Lampiran: Perbandingan Versi Output Standar Kontainer Baru dan Lama dalam topik ini.
Atasi masalah umum
Heartbeat kelompok mesin adalah FAIL
Periksa pengenal pengguna
Jika server Anda bukan instance ECS, atau jika instance ECS dan proyek dimiliki oleh akun Alibaba Cloud yang berbeda, gunakan metode berikut untuk memeriksa apakah pengenal pengguna yang benar ada di direktori yang ditentukan:
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 ID akun Alibaba Cloud yang memiliki proyek saat ini ada di jalur yang ditentukan, pengenal pengguna dikonfigurasi dengan benar.
Periksa pengenal kelompok mesin
Jika Anda menggunakan kelompok mesin berbasis pengenal kustom, periksa apakah file user_defined_id ada di direktori yang ditentukan. Jika ada, periksa apakah isinya sama dengan pengenal kustom yang dikonfigurasi untuk kelompok mesin.
Sistem | Direktori yang ditentukan | Solusi |
Linux |
| ```shell |
Konfigurasikan pengenal kustom. Jika direktori tidak ada, buat secara manual.
echo "user-defined-1" > /etc/ilogtail/user_defined_id
`` |
| Windows |C:\LogtailData\user_defined_id| Di direktoriC:\LogtailData, buat fileuser_defined_id` dan tulis pengenal kustom ke dalamnya. Jika direktori tidak ada, buat secara manual. |
Jika pengenal pengguna dan pengenal kelompok mesin dikonfigurasi dengan benar, lihat Troubleshoot LoongCollector (Logtail) machine group issues untuk troubleshooting lebih lanjut.
Tidak ada data log yang dikumpulkan
Periksa log inkremental: Setelah mengonfigurasi pengumpulan LoongCollector (Logtail), LoongCollector (Logtail) tidak mengumpulkan file log jika tidak ada log baru yang ditulis ke dalamnya.
Periksa status heartbeat kelompok mesin: Buka halaman Resource Group > Machine Groups, klik nama kelompok mesin tujuan, dan periksa status Heartbeat di bagian Machine Group Configurations > Machine Group Status.
Jika heartbeat OK, kelompok mesin terhubung ke proyek Simple Log Service.
Jika heartbeat FAIL, lihat The heartbeat of the machine group is FAIL untuk melakukan troubleshooting.
Konfirmasi bahwa konfigurasi pengumpulan LoongCollector (Logtail) diterapkan ke kelompok mesin: Meskipun konfigurasi pengumpulan LoongCollector (Logtail) dibuat, log tidak dikumpulkan sampai Anda menerapkan konfigurasi tersebut ke kelompok mesin.
Buka halaman Resource Group > Machine Groups dan klik nama kelompok mesin tujuan untuk membuka halaman Machine Group Configurations.
Di halaman tersebut, periksa Manage Configuration. Daftar All Logtail Configurations muncul di kiri dan daftar Applied Logtail Configs muncul di kanan. Jika konfigurasi pengumpulan LoongCollector (Logtail) tujuan telah dipindahkan ke area terapan di kanan, konfigurasi tersebut diterapkan ke kelompok mesin tujuan.
Jika konfigurasi pengumpulan LoongCollector (Logtail) tujuan belum dipindahkan ke area terapan di kanan, klik Modify, pilih nama konfigurasi LoongCollector (Logtail) tujuan di daftar All Logtail Configurations di kiri, klik
untuk memindahkannya ke area terapan di kanan, lalu klik OK.
Error pengumpulan log atau error format
Pendekatan troubleshooting: Situasi ini menunjukkan bahwa koneksi jaringan dan konfigurasi dasar berfungsi, dan masalahnya terletak pada ketidakcocokan antara konten log dan aturan penguraian. Periksa pesan error spesifik untuk menemukan masalahnya:
Pada halaman Logtail Configuration, klik nama konfigurasi LoongCollector (Logtail) yang melaporkan error pengumpulan. Di tab Log Collection Error, klik Select Time Range untuk mengatur rentang kueri.
Di bagian Collection Exception Monitoring > Complete Error Information, periksa jenis alert log error dan temukan solusi yang sesuai di Common error types in data collection.
Perintah umum
Lihat status berjalan LoongCollector (Logtail)
Jalankan perintah berikut:
docker exec ${logtail_container_id} /etc/init.d/ilogtaild statusLihat versi, alamat IP, waktu mulai, dan informasi lainnya LoongCollector (Logtail)
Jalankan perintah berikut:
docker exec ${logtail_container_id} cat /usr/local/ilogtail/app_info.jsonLihat log operasional LoongCollector (Logtail)
Log operasional LoongCollector (Logtail) disimpan di direktori /usr/local/ilogtail/ di dalam kontainer. Nama file-nya adalah ilogtail.LOG, dan file yang dirotasi dikompresi dan disimpan sebagai ilogtail.LOG.x.gz. Contoh:
# Lihat log operasional LoongCollector
docker exec a287de895e40 tail -n 5 /usr/local/ilogtail/loongcollector.LOG
# Lihat log operasional Logtail
docker exec a287de895e40 tail -n 5 /usr/local/ilogtail/ilogtail.LOGOutput berikut dikembalikan:
[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:succeededRestart LoongCollector (Logtail)
Jalankan perintah berikut:
# Hentikan LoongCollector
docker exec a287de895e40 /etc/init.d/ilogtaild stop
# Mulai LoongCollector
docker exec a287de895e40 /etc/init.d/ilogtaild startFAQ
Pesan error umum
Gejala | Penyebab | Solusi |
| Wilayah proyek tidak cocok dengan wilayah kontainer LoongCollector (Logtail). | Periksa konfigurasi wilayah di |
| Jalur file salah dikonfigurasi. | Konfirmasi bahwa jalur log di kontainer aplikasi sesuai dengan konfigurasi pengumpulan. |
Log error: The parameter is invalid : uuid=none
Deskripsi masalah: File log LoongCollector (Logtail) (/usr/local/ilogtail/ilogtail.LOG) berisi log error The parameter is invalid : uuid=none.
Solusi: Di mesin host, buat file product_uuid, masukkan UUID valid apa pun ke dalamnya, seperti 169E98C9-ABC0-4A92-B1D2-AA6239C0D261, dan pasang file tersebut ke direktori /sys/class/dmi/id/product_uuid di kontainer LoongCollector (Logtail).
Bagaimana cara mengumpulkan file log atau output standar kontainer yang sama dengan beberapa konfigurasi pengumpulan?
Secara default, untuk mencegah data duplikat, Simple Log Service hanya mengizinkan setiap sumber log dikumpulkan oleh satu konfigurasi pengumpulan:
File log teks hanya dapat dicocokkan oleh satu konfigurasi pengumpulan Logtail.
Output standar kontainer (stdout):
Jika Anda menggunakan templat output standar baru, output standar hanya dapat dikumpulkan oleh satu konfigurasi pengumpulan output standar secara default.
Jika Anda menggunakan templat output standar lama, pengumpulan oleh beberapa konfigurasi didukung secara default dan tidak memerlukan konfigurasi tambahan.
Untuk mengizinkan sumber log yang sama dikumpulkan oleh beberapa konfigurasi pengumpulan, lakukan langkah-langkah berikut:
Masuk ke Konsol Simple Log Service dan buka proyek tujuan.
Di panel navigasi kiri, pilih
LogStores dan temukan LogStore tujuan.Klik ikon
di samping namanya untuk memperluas LogStore.Klik Logtail Configuration, temukan konfigurasi Logtail tujuan di daftar konfigurasi, dan klik Manage Logtail Configuration di kolom Actions.
Di halaman konfigurasi Logtail, klik Edit dan gulir ke bawah ke bagian Input Configurations: - Untuk mengumpulkan log file teks: Nyalakan Allow File to Be Collected for Multiple Times. - Untuk mengumpulkan output standar kontainer: Nyalakan Allow Collection by Different Logtail Configurations.
Bagaimana cara mengelola konfigurasi distribusi multi-target?
Karena konfigurasi distribusi multi-target dikaitkan dengan beberapa LogStore, Anda harus memelihara jenis konfigurasi ini di halaman manajemen tingkat proyek:
Masuk ke Konsol Simple Log Service dan klik nama proyek tujuan.
Di halaman proyek tujuan, di panel navigasi kiri, klik
Resource Group > Configurations.Halaman ini mengelola secara terpusat semua konfigurasi pengumpulan dalam proyek, termasuk konfigurasi yang tersisa setelah LogStore dihapus secara tidak sengaja.
Lampiran: Plugin penguraian native
Pada halaman Logtail Configuration, di bagian Processor Configurations, Anda dapat menambahkan plugin pemrosesan untuk menstrukturisasi log mentah. Untuk menambahkan plugin pemrosesan ke konfigurasi pengumpulan yang sudah ada, lakukan langkah-langkah berikut:
Di panel navigasi kiri, pilih
LogStores dan temukan LogStore tujuan.Klik ikon
di samping namanya untuk memperluas LogStore.Klik Logtail Configuration, temukan konfigurasi Logtail tujuan di daftar konfigurasi, dan klik Manage Logtail Configuration di kolom Actions.
Di halaman konfigurasi Logtail, klik Edit.
Bagian ini hanya menjelaskan plugin pemrosesan umum, yang mencakup skenario pemrosesan log khas. Untuk fitur lainnya, lihat Extended processing plugins.
Aturan menggabungkan plugin (berlaku untuk LoongCollector / Logtail 2.0 dan lebih baru):
Anda dapat menggunakan plugin pemrosesan native dan plugin pemrosesan ekstensi secara independen atau menggabungkannya sesuai kebutuhan.
Kami menyarankan Anda menggunakan plugin pemrosesan native terlebih dahulu, karena plugin tersebut memberikan 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 pemrosesan tambahan.
Batasan urutan:
Semua plugin membentuk rantai pemrosesan sesuai urutan konfigurasinya dan dijalankan dalam urutan tersebut. Catatan: Semua plugin pemrosesan native harus mendahului plugin pemrosesan ekstensi apa pun. Setelah Anda menambahkan plugin pemrosesan ekstensi, Anda tidak dapat menambahkan plugin pemrosesan native lagi.
Penguraian ekspresi reguler
Mengekstraksi field log dengan ekspresi reguler dan mengurai log menjadi pasangan kunci-nilai sehingga setiap field dapat dikueri dan dianalisis secara independen.
Contoh:
Log mentah | Hasil plugin penguraian ekspresi reguler |
```plaintext | |
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; x64) 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 | |
``` |
Prosedur: Pada halaman Logtail Configuration, di bagian Processor Configurations, klik Add Processor dan pilih Native Processor > Data Parsing (Regex Mode):
Regular Expression: Ekspresi yang digunakan untuk mencocokkan log. Anda dapat menghasilkannya secara otomatis atau memasukkannya secara manual:
Generasi otomatis:
Klik Automatically Generate Regular Expression.
Di bagian Log Sample, sorot konten log yang ingin Anda ekstraksi.
Klik Generate Regular Expression.
Konfirmasi bahwa konten log dalam format yang benar ditempelkan di bagian Log Sample, seperti log akses Apache Combined, lalu klik Generate Regular Expression di bagian tersebut untuk menghasilkan ekspresi penguraian secara otomatis. - Input manual: Manually enter a regular expression berdasarkan format log.
Setelah menyelesaikan konfigurasi, klik Validate untuk menguji apakah ekspresi reguler mengurai konten log dengan benar. - Extracted Field: Tetapkan nama field (Key) untuk setiap bagian konten log yang diekstraksi (Value). - Untuk informasi tentang parameter lainnya, lihat parameter konfigurasi umum yang dijelaskan di Skenario 2: Strukturisasi log.
Penguraian delimiter
Menstrukturisasi konten log dengan delimiter dan mengurai-nya menjadi beberapa pasangan kunci-nilai. Delimiter karakter tunggal dan multi-karakter didukung.
Contoh:
Log mentah | Field yang dipisah oleh karakter |
```plaintext | |
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 | |
``` |
Prosedur: Pada halaman Logtail Configuration, di bagian Processor Configurations, klik Add Processor dan pilih Native Processor > Data Parsing (Delimiter Mode):
Delimiter: Tentukan karakter yang digunakan untuk memisahkan konten log. Contoh: Untuk file CSV, pilih Custom dan masukkan koma (,).
Quote: Jika nilai field berisi delimiter, tentukan karakter quote untuk membungkus field dan mencegah pemisahan yang salah.
Extracted Field: Tetapkan nama field (Key) untuk setiap kolom sesuai urutan pemisahannya. Aturan berikut berlaku:
Nama field hanya boleh berisi huruf, angka, dan garis bawah (_).
Nama field harus dimulai dengan huruf atau garis bawah (_).
Panjang maksimum: 128 byte.
Untuk informasi tentang parameter lainnya, lihat parameter konfigurasi umum yang dijelaskan di Skenario 2: Strukturisasi log.
Penguraian JSON standar
Menstrukturisasi log JSON bertipe Object dan mengurai-nya menjadi pasangan kunci-nilai.
Contoh:
Log mentah | Ekstraksi otomatis pasangan kunci-nilai JSON standar |
```json | |
{"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 | |
``` |
Prosedur: Pada halaman Logtail Configuration, di bagian Processor Configurations, klik Add Processor dan pilih Native Processor > Data Parsing (JSON Mode):
Original Field: Nilai default: content. Field ini menyimpan konten log mentah yang akan diurai.
Untuk informasi tentang parameter lainnya, lihat parameter konfigurasi umum yang dijelaskan di Skenario 2: Strukturisasi log.
Penguraian JSON bersarang
Mengurai log JSON bersarang menjadi pasangan kunci-nilai dengan menentukan kedalaman ekspansi.
Contoh:
Log mentah | Kedalaman ekspansi: 0, dengan kedalaman ekspansi sebagai awalan | Kedalaman ekspansi: 1, dengan kedalaman ekspansi sebagai awalan |
```json | ||
{"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"}}}} | ||
``` |
Prosedur: Pada halaman Logtail Configuration, di bagian Processor Configurations, klik Add Processor dan pilih :
Original Field: Nama field asli yang akan diekspansi, seperti
content.JSON Expansion Depth: Tingkat ekspansi objek JSON. Nilai 0 menunjukkan ekspansi penuh (nilai default), nilai 1 menunjukkan tingkat saat ini, dan seterusnya.
Character to Concatenate Expanded Keys: Karakter yang digunakan untuk menggabungkan nama field selama ekspansi JSON. Nilai default: garis bawah (_).
Name Prefix of Expanded Keys: Awalan nama field setelah ekspansi JSON.
Expand Array: Nyalakan opsi 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 mengubah prefix_s_key_k1 menjadi new_field_name, tambahkan plugin Rename Fields setelahnya untuk menyelesaikan pemetaan.
Untuk informasi tentang parameter lainnya, lihat parameter konfigurasi umum yang dijelaskan di Skenario 2: Strukturisasi log.
Penguraian array JSON
Gunakan fungsi json_extractfunction untuk mengekstraksi objek JSON dari array JSON.
Contoh:
Log mentah | Struktur array JSON yang diekstraksi |
```json | |
[{"key1":"value1"},{"key2":"value2"}] | |
| |
json1:{"key1":"value1"} | |
json2:{"key2":"value2"} | |
``` |
Prosedur: Pada halaman Logtail Configuration, di bagian Processor Configurations, ubah Processing Method ke SPL, konfigurasikan pernyataan SPL, dan gunakan fungsi json_extract untuk mengekstraksi objek JSON dari array JSON.
Contoh: Ekstraksi elemen array JSON dari field log content dan simpan hasilnya di field baru json1 dan json2.
* | extend json1 = json_extract(content, '$[0]'), json2 = json_extract(content, '$[1]')Penguraian log Apache
Menstrukturisasi konten log berdasarkan definisi dalam file konfigurasi log Apache dan mengurai-nya menjadi beberapa pasangan kunci-nilai.
Contoh:
Log mentah | Penguraian dengan Format Log Apache Common |
```plaintext | |
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] | |
``` |
Prosedur: Pada halaman Logtail Configuration, di bagian Processor Configurations, klik Add Processor dan pilih :
Log Format: combined
APACHE LogFormat Configuration: Simple Log Service secara otomatis mengisi pengaturan ini berdasarkan Log Format. Periksa konten yang diisi secara otomatis untuk memastikan bahwa kontennya identik dengan LogFormat yang didefinisikan dalam file konfigurasi Apache di server Anda, yang biasanya terletak di /etc/apache2/apache2.conf.
Untuk informasi tentang parameter lainnya, lihat parameter konfigurasi umum yang dijelaskan di Skenario 2: Strukturisasi log.
Penyamaran data
Menyamarkan data sensitif dalam log.
Contoh:
Log mentah | Hasil penyamaran |
```plaintext | |
[{'account':'1812213231432969','password':'04a23f38'}, {'account':'1812213685634','password':'123a'}] | |
| |
[{'account':'1812213231432969','password':'*'}, {'account':'1812213685634','password':'*'}] | |
``` |
Prosedur: Pada halaman Logtail Configuration, di bagian Processor Configurations, klik Add Processor dan pilih :
Original Field: Field asli yang menyimpan konten log sebelum penguraian.
Data Masking Method:
const: Mengganti konten sensitif dengan string yang ditentukan.
md5: Mengganti konten sensitif dengan nilai MD5-nya.
Replacement String: Jika Anda mengatur Data Masking Method ke const, masukkan string yang digunakan untuk mengganti konten sensitif.
Content Expression that Precedes Replaced Content: Menemukan konten sensitif. Konfigurasikan dengan sintaks RE2.
Content Expression to Match Replaced Content: Ekspresi konten sensitif. Konfigurasikan dengan sintaks RE2.
Penguraian waktu
Mengurai field waktu dalam log dan mengatur hasil penguraian sebagai field __time__ log.
Contoh:
Log mentah | Penguraian waktu |
```shell | |
{"level":"INFO","timestamp":"2025-09-23T19:11:47+0800","cluster":"yilu-cluster-0728","message":"User logged in successfully","userId":"user-123"} | |
``` | Mengurai nilai waktu field |
Prosedur: Pada halaman Logtail Configuration, di bagian Processor Configurations, klik Add Processor dan pilih Native Processor > Time Parsing:
Original Field: Field asli yang menyimpan konten log sebelum penguraian.
Time Format: Atur format waktu yang cocok berdasarkan konten waktu dalam log.
Time Zone: Pilih zona waktu field waktu dalam log. Zona waktu mesin digunakan secara default, yaitu zona waktu lingkungan tempat proses LoongCollector (Logtail) berjalan.
Lampiran: Batasan ekspresi reguler (penyaringan kontainer)
Ekspresi reguler yang digunakan untuk penyaringan kontainer didasarkan pada mesin Go RE2, yang memiliki beberapa batasan sintaks dibandingkan mesin lain seperti PCRE. Perhatikan hal-hal berikut saat menulis ekspresi reguler:
Perbedaan sintaks kelompok bernama
Go menggunakan sintaks
(?P<name>...)untuk mendefinisikan kelompok bernama dan tidak mendukung sintaks(?<name>...)dari PCRE.
Contoh benar:
(?P<year>\d{4})Contoh salah:
(?<year>\d{4})2. Fitur ekspresi reguler yang tidak didukungFitur ekspresi reguler umum tetapi kompleks berikut tidak tersedia di RE2. Jangan menggunakannya:
Lookarounds:
(?=...),(?!...),(?<=...),(?<!...)Kondisional:
(?(condition)true|false)Rekursi:
(?R),(?0)Referensi subrutin:
(?&name),(?P>name)Kelompok atomik:
(?>...)3. RekomendasiSaat men-debug ekspresi reguler dengan alat seperti Regex101, pilih mode Golang (RE2) untuk memvalidasinya dan memastikan kompatibilitas. Jika Anda menggunakan sintaks yang tidak didukung, plugin tidak dapat mengurai atau mencocokkan ekspresi Anda dengan benar.
Lampiran: Perbandingan versi output standar kontainer baru dan lama
Untuk meningkatkan efisiensi penyimpanan dan konsistensi pengumpulan, format metadata log untuk output standar kontainer telah ditingkatkan. Format baru mengkonsolidasikan metadata di bawah field __tag__, yang mengoptimalkan penyimpanan dan menstandarkan format.
Keunggulan utama output standar baru
Kinerja yang jauh lebih baik
Direkayasa ulang dalam C++, versi baru memberikan peningkatan kinerja 180% hingga 300% dibandingkan implementasi Go sebelumnya.
Mendukung pemrosesan data dengan plugin native dan pemrosesan paralel multi-threading, yang sepenuhnya memanfaatkan resource sistem.
Mendukung kombinasi fleksibel plugin native dan plugin Go untuk memenuhi kebutuhan skenario kompleks.
Keandalan yang lebih kuat
Mendukung antrian rotasi untuk log output standar dan menyatukan mekanisme pengumpulan log dengan mekanisme pengumpulan file, yang memberikan keandalan tinggi saat log output standar berotasi dengan cepat.
Konsumsi resource yang 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 output standar baru konsisten dengan plugin pengumpulan file.
Manajemen metadata terpadu: Penamaan field metadata kontainer dan lokasi penyimpanan tag disatukan dengan skenario pengumpulan file kontainer, sehingga sisi konsumen hanya memelihara satu set logika pemrosesan.
Perbandingan fitur versi baru dan lama
Fitur | Versi lama | Versi baru |
Metode penyimpanan | Metadata disematkan dalam konten log sebagai field reguler. | Metadata dikonsolidasikan di bawah tag |
Efisiensi penyimpanan | Setiap entri log membawa salinan lengkap metadata, yang mengonsumsi lebih banyak ruang penyimpanan. | Beberapa entri log dalam konteks yang sama dapat menggunakan kembali metadata, yang menghemat biaya penyimpanan. |
Konsistensi format | Format tidak konsisten dengan format pengumpulan file kontainer. | Penamaan field dan struktur penyimpanan sepenuhnya selaras dengan pengumpulan file kontainer, yang memberikan pengalaman terpadu. |
Metode akses kueri | Anda dapat mengkueri metadata langsung berdasarkan nama field, seperti | Anda harus mengakses pasangan kunci-nilai yang sesuai melalui |
Pemetaan field metadata kontainer
Nama field lama | Nama field baru |
|
|
|
|
|
|
|
|
|
|
|
|
Dalam versi baru, semua field metadata disimpan di bagian tag log dalam format __tag__:<key> alih-alih disematkan dalam konten log.
Dampak versi baru terhadap pengguna
Adaptasi sisi konsumen: Karena lokasi penyimpanan berubah dari konten ke tag, Anda harus menyesuaikan logika konsumsi log Anda. Misalnya, Anda harus mengakses field melalui
__tag__saat menjalankan kueri.Kompatibilitas SQL: SQL kueri sudah secara otomatis kompatibel dengan kedua versi, sehingga Anda tidak perlu memodifikasi pernyataan kueri Anda untuk memproses log dari versi mana pun.
Lampiran: Jenis transmisi jaringan
Parameter global
Parameter global
Parameter | Deskripsi |
Nama konfigurasi | Nama konfigurasi Logtail. Harus unik dalam Proyek-nya. Nama tidak dapat diubah setelah konfigurasi Logtail dibuat. |
Jenis topik log | Menentukan cara topik log dihasilkan. Opsi termasuk Topik Kelompok Mesin, Ekstraksi Jalur File, dan Kustom. |
Parameter lanjutan | Parameter lanjutan opsional untuk konfigurasi global. Buat konfigurasi pipeline Logtail. |
Parameter input
Parameter prosesor
Wilayah
Jenis jaringan | Jenis nama domain | Deskripsi | Scenario |
Jaringan internal Alibaba Cloud | Nama domain privat | Jaringan internal Alibaba Cloud adalah jaringan bersama gigabit. Mengirim data log melalui jaringan internal Alibaba Cloud lebih cepat dan lebih stabil daripada mengirimnya melalui Internet. Jaringan internal mencakup VPC dan jaringan klasik. | Instance ECS dan proyek Simple Log Service berada di wilayah yang sama, atau server terhubung ke VPC melalui Express Connect. Kami menyarankan Anda membuat proyek Simple Log Service di wilayah tempat instance ECS berada dan mengumpulkan log dari instance ECS melalui jaringan internal Alibaba Cloud, yang tidak mengonsumsi bandwidth Internet. |
Internet | Nama domain publik | Mengirim data log melalui Internet dibatasi oleh bandwidth jaringan. Jitter jaringan, latensi, dan kehilangan paket juga dapat memengaruhi kecepatan dan stabilitas pengumpulan data. | Anda dapat mentransfer data melalui Internet dalam dua kasus berikut: instance ECS dan proyek Simple Log Service berada di wilayah berbeda, atau server milik penyedia cloud lain atau pusat data mandiri. |
Akselerasi transfer | Nama domain akselerasi transfer | Metode ini mempercepat pengumpulan log dengan node edge CDN Alibaba Cloud. Metode ini menawarkan keunggulan signifikan dibandingkan pengumpulan berbasis Internet dalam hal latensi jaringan dan stabilitas, tetapi trafiknya ditagih secara terpisah. | Jika server aplikasi dan proyek Simple Log Service Anda masing-masing berada di wilayah daratan Tiongkok dan wilayah di luar daratan Tiongkok, mentransfer data melalui Internet dapat menyebabkan latensi jaringan tinggi dan transmisi tidak stabil. Dalam kasus ini, Anda dapat menggunakan akselerasi transfer. Untuk informasi selengkapnya, lihat Transfer acceleration. |
Langkah selanjutnya
Visualisasi data: Pantau tren metrik utama pada dasbor visualisasi.
Peringatan otomatis untuk anomali data: Konfigurasikan kebijakan peringatan untuk mendeteksi anomali sistem secara real-time.




