Logtail adalah agen pengumpulan log yang disediakan oleh Simple Log Service. Logtail mengumpulkan log dari server, seperti Instance ECS Alibaba Cloud, server di pusat data lokal, atau server dari penyedia cloud lainnya. Topik ini menjelaskan proses pengumpulan, fitur, manfaat, batasan penggunaan, dan proses konfigurasi Logtail.
Cara kerja
Pantau file log
Setelah menginstal Logtail pada server dan membuat konfigurasi Logtail di Konsol Simple Log Service, Simple Log Service mengirimkan konfigurasi tersebut ke Logtail secara real-time. Logtail kemudian mulai memantau file berdasarkan konfigurasi ini. Logtail memindai direktori dan file log secara berjenjang sesuai dengan path log dan kedalaman pemantauan direktori maksimum yang ditentukan dalam konfigurasi Logtail.
Setelah menerapkan konfigurasi Logtail ke kelompok mesin, file log yang tidak dimodifikasi dianggap sebagai file historis. Logtail tidak secara otomatis mengumpulkan data dari file historis. Proses pengumpulan hanya dimulai ketika file dimodifikasi. Untuk mengumpulkan data dari file log historis, lihat Impor log historis.
Untuk memastikan pengumpulan log yang tepat waktu dan stabil, Logtail mendaftarkan pendengar event untuk direktori yang dipantau (menggunakan Inotify pada Linux) dan melakukan polling secara berkala.
Baca file log
Setelah Logtail mendeteksi file log yang diperbarui, Logtail membacanya.
-
Ketika Logtail membaca file log untuk pertama kalinya, secara default Logtail membaca hingga 1.024 KB data.
-
Jika ukuran file lebih kecil dari 1.024 KB, Logtail membaca data dari awal file.
-
Jika ukuran file lebih besar dari 1.024 KB, Logtail membaca 1.024 KB data terakhir dari file tersebut.
CatatanSimple Log Service memungkinkan Anda menyesuaikan ukuran baca awal ini.
-
Di Konsol, ubah parameter Initial Collection Size dalam konfigurasi Logtail. Untuk informasi selengkapnya, lihat Konfigurasi Lanjutan.
-
Menggunakan API: Ubah parameter tail_size_kb dalam konfigurasi Logtail. Untuk informasi selengkapnya, lihat Parameter lanjutan.
-
-
Jika Logtail sebelumnya pernah membaca file log tersebut, Logtail melanjutkan pembacaan dari checkpoint terakhir yang disimpan.
-
Logtail membaca maksimal 512 KB dalam satu kali baca. Oleh karena itu, pastikan setiap entri log berukuran lebih kecil dari 512 KB. Jika tidak, entri log tersebut tidak dapat dibaca dengan benar.
Jika Anda mengubah waktu sistem pada server, Anda harus me-restart Logtail secara manual. Jika tidak, hal ini dapat menyebabkan timestamp log salah atau kehilangan log yang tidak diinginkan.
Proses log
Setelah membaca log, Logtail membaginya menjadi baris-baris, mengurai kontennya, dan menetapkan bidang waktu.
-
Pemisahan log menjadi baris
Jika ekspresi reguler awal baris ditentukan dalam konfigurasi Logtail, Logtail menggunakannya untuk membagi data mentah menjadi beberapa entri log. Jika tidak ada ekspresi reguler yang ditentukan, Logtail memperlakukan setiap baris sebagai satu entri log.
-
Urai log
Logtail mengurai setiap entri log berdasarkan mode pengumpulan yang ditentukan dalam konfigurasi Logtail.
CatatanEkspresi reguler yang kompleks dapat menyebabkan penggunaan CPU tinggi. Gunakan ekspresi reguler yang efisien.
Jika suatu log gagal diurai, penanganannya bergantung pada apakah fitur drop failed to parse logs diaktifkan dalam konfigurasi Logtail.
-
Jika Anda mengaktifkan Drop Failed to Parse Logs, log tersebut langsung dibuang dan pesan error kegagalan penguraian dilaporkan.
-
Jika Anda menonaktifkan Drop failed to parse logs, log asli yang gagal diurai tetap diunggah, dengan kunci raw_log dan nilai berupa konten log tersebut.
-
-
Tetapkan bidang waktu log
-
Jika tidak ada bidang waktu yang dikonfigurasi, Logtail menetapkan waktu log ke waktu saat log tersebut diurai.
-
Jika bidang waktu dikonfigurasi:
-
Jika timestamp yang tercatat dalam log berada dalam rentang 12 jam dari waktu saat ini, Logtail mengekstrak waktu tersebut dari bidang log yang telah diurai.
-
Jika timestamp berbeda lebih dari 12 jam dari waktu saat ini, Logtail membuang log tersebut dan melaporkan error.
-
-
Filter log
Setelah diproses, Logtail menyaring log berdasarkan pengaturan filter dalam konfigurasi Logtail.
-
Jika filter configuration tidak diatur dalam konfigurasi Logtail, log tidak difilter dan proses dilanjutkan ke langkah berikutnya.
-
Jika konfigurasi Logtail memiliki filter configuration, Logtail menelusuri dan memvalidasi semua bidang dalam setiap log.
Logtail hanya mengumpulkan log yang sesuai dengan kondisi filter.
Agregasi log
Untuk mengurangi permintaan jaringan, Logtail menyimpan log dalam cache untuk periode singkat setelah diproses dan difilter. Logtail kemudian mengagregasinya menjadi batch sebelum mengirimkannya ke Simple Log Service. Logtail mengirimkan batch log ketika salah satu kondisi berikut terpenuhi:
-
Waktu agregasi melebihi 3 detik.
-
Jumlah log yang diagregasi melebihi 4.000.
-
Ukuran total log yang diagregasi melebihi 512 KB.
Kirim log
Logtail mengirimkan log yang telah diagregasi ke Simple Log Service. Jika pengiriman gagal, Logtail secara otomatis mencoba ulang atau membuang data berdasarkan error yang diterima.
|
Pesan error |
Deskripsi |
Respons Logtail |
|
Error 401 |
Akun saat ini tidak memiliki izin yang diperlukan untuk mengumpulkan data. Berikan izin akses data yang diperlukan kepada akun tersebut. Untuk informasi selengkapnya, lihat Konfigurasi Permission Assistant. |
Logtail membuang batch log tersebut. |
|
Error 404 |
Proyek atau logstore yang ditentukan dalam konfigurasi Logtail tidak ada. |
Logtail membuang batch log tersebut. |
|
Error 403 |
Kuota shard telah terlampaui. |
Logtail mencoba ulang setelah 3 detik. |
|
Error 500 |
Terjadi exception di sisi server. |
Logtail mencoba ulang setelah 3 detik. |
Untuk menyesuaikan laju pengiriman data dan konkurensi maksimum, Anda dapat mengatur parameter max_bytes_per_sec dan send_request_concurrency dalam file konfigurasi parameter startup. Untuk informasi selengkapnya, lihat Atur parameter startup Logtail.
Manfaat
-
Mengumpulkan log secara non-intrusif dari file log. Proses ini tidak memerlukan modifikasi kode aplikasi Anda dan tidak memengaruhi waktu proses aplikasi Anda.
-
Mendukung pengumpulan berbagai tipe data, termasuk log teks, binlog, data HTTP, dan log kontainer.
-
Mengumpulkan data dari lingkungan kontainer seperti kluster Docker dan Kubernetes.
-
Alibaba Cloud Container Service for Kubernetes (ACK): Lihat Kumpulkan log dari Kubernetes.
-
Kubernetes yang dikelola sendiri: Lihat Kumpulkan log dari Kubernetes.
-
Kluster Docker yang dikelola sendiri: Lihat Kumpulkan log dari kontainer Docker (stdout dan file).
-
-
Menangani exception pengumpulan secara elegan. Dalam kasus gangguan jaringan atau error di sisi server, Logtail menggunakan mekanisme coba ulang otomatis dan cache lokal untuk memastikan keamanan data.
-
Setelah menginstal Logtail, Anda dapat mengelola semua pengaturan—seperti kelompok mesin dan konfigurasi Logtail—secara terpusat dari Konsol Simple Log Service.
-
Logtail beroperasi di bawah batasan ketat penggunaan CPU, memori, dan jaringan untuk mencegahnya memengaruhi kinerja layanan lain di server Anda.
Proses konfigurasi
-
Simple Log Service project mendukung penggunaan IP addresses atau custom identifiers untuk membuat kelompok mesin.
-
Buat konfigurasi Logtail.
Anda dapat menggunakan wizard konfigurasi di konsol Simple Log Service untuk menyelesaikan penyiapan. Untuk informasi selengkapnya, lihat Kumpulkan log teks dan Kumpulkan log kontainer.
Setelah menyelesaikan langkah-langkah ini, Logtail mulai mengumpulkan log dari server Anda dan mengirimkannya ke logstore yang ditentukan. Anda kemudian dapat melakukan kueri terhadap log tersebut menggunakan Konsol Simple Log Service, API, SDK, atau CLI.
Konsep utama
-
Machine group: Kelompok mesin berisi satu atau beberapa server dari mana Anda ingin mengumpulkan log jenis yang sama. Saat Anda menerapkan konfigurasi Logtail ke kelompok mesin, Simple Log Service menggunakan konfigurasi tersebut untuk mengumpulkan log dari semua server dalam kelompok tersebut.
Simple Log Service menggunakan kelompok mesin untuk mengelola semua server yang menggunakan Logtail untuk pengumpulan log. Anda dapat mendefinisikan kelompok mesin menggunakan alamat IP atau pengenal kustom. Anda dapat mengelola kelompok mesin di Konsol Simple Log Service, termasuk operasi seperti membuat dan menghapus kelompok, atau menambahkan dan menghapus server. Untuk informasi selengkapnya, lihat Kelompok mesin.
-
Logtail: Agen pengumpulan log yang disediakan oleh Simple Log Service yang berjalan di server tempat log akan dikumpulkan.
-
Pada sistem operasi Linux, Logtail diinstal di direktori /usr/local/ilogtail dan memulai dua proses independen yang namanya dimulai dengan ilogtail: proses pengumpulan dan daemon. Log waktu proses disimpan dalam file /usr/local/ilogtail/ilogtail.LOG. Untuk informasi selengkapnya, lihat Instal Logtail (Linux).
-
Windows
-
Logtail (32-bit)
-
Saat diinstal pada sistem operasi Windows 32-bit, direktori instalasi adalah C:\Program Files\Alibaba\Logtail.
-
Saat diinstal pada sistem operasi Windows 64-bit, direktori instalasi adalah C:\Program Files (x86)\Alibaba\Logtail.
CatatanSistem operasi Windows 64-bit dapat menjalankan aplikasi 32-bit dan 64-bit. Untuk kompatibilitas, Windows menggunakan direktori x86 terpisah untuk menyimpan aplikasi 32-bit pada OS 64-bit.
-
-
Logtail (64-bit)
Logtail hanya didukung pada sistem operasi Windows 64-bit. Direktori instalasi adalah C:\Program Files\Alibaba\Logtail.
Anda dapat melihat layanan LogtailDaemon (untuk Logtail versi 1.0.0.0 ke atas) atau layanan LogtailWorker (untuk versi Logtail 0.x.x.x) di untuk memeriksa status berjalan Logtail. Log program disimpan dalam file
ilogtail.LOGdi direktori instalasi. Untuk informasi selengkapnya, lihat Instal Logtail pada Windows. -
-
-
Logtail configuration: Sekumpulan kebijakan yang digunakan Logtail untuk mengumpulkan log. Anda dapat membuat kebijakan pengumpulan kustom dengan mengatur parameter seperti sumber data dan mode pengumpulan. Konfigurasi Logtail menentukan cara mengumpulkan, mengurai, dan mengirim log jenis yang sama dari server ke logstore tertentu di Simple Log Service.
Fitur
|
Fitur |
Deskripsi |
|
Pengumpulan log real-time |
Logtail secara dinamis memantau file log dan membaca serta mengurai log inkremental secara real-time. Latensi dari pembuatan log hingga pengiriman ke Simple Log Service biasanya dalam waktu 3 detik. Untuk informasi selengkapnya, lihat Cara kerja. Catatan
Logtail membuang log jika selisih antara waktu pembacaan dan timestamp yang tercatat melebihi 12 jam. Untuk mengumpulkan file log historis, lihat Impor log historis. |
|
Penanganan rotasi log otomatis |
Banyak aplikasi melakukan rotasi file log berdasarkan ukuran file atau tanggal dengan mengganti nama file log asli dan membuat file kosong baru untuk penulisan. Misalnya, file app.LOG dirotasi menjadi app.LOG.1, app.LOG.2, dan seterusnya. Anda dapat menentukan file tempat log ditulis, seperti app.LOG. Logtail secara otomatis mendeteksi proses rotasi log dan memastikan tidak ada data log yang hilang selama proses tersebut. |
|
Beberapa sumber input |
Selain file teks, Logtail mendukung sumber data lain seperti syslog, HTTP, dan binlog MySQL. Untuk informasi selengkapnya, lihat Ikhtisar pengumpulan data. |
|
Kompatibilitas dengan agen open source |
Logtail dapat digunakan sebagai tujuan untuk data yang dikumpulkan oleh perangkat lunak open source seperti Logstash dan Beats. Untuk informasi selengkapnya, lihat Ikhtisar pengumpulan data. |
|
Penanganan exception otomatis |
Jika pengiriman data gagal karena error di sisi server, masalah jaringan, atau kuota yang terlampaui, Logtail secara otomatis mencoba ulang berdasarkan error spesifik tersebut. Jika percobaan ulang terus gagal, Logtail menulis data ke cache lokal dan mencoba mengirimkannya kembali setelah 3 detik. Untuk informasi selengkapnya, lihat Diagnostik mandiri Logtail. |
|
Kebijakan pengumpulan fleksibel |
Anda dapat mengonfigurasi kebijakan pengumpulan yang sangat fleksibel menggunakan konfigurasi Logtail. Anda dapat menentukan direktori dan file log dengan pencocokan eksak atau wildcard. Anda juga dapat menyesuaikan cara ekstraksi log, termasuk nama bidang, dan menggunakan ekspresi reguler untuk penguraian. Karena model data Simple Log Service mengharuskan setiap log memiliki timestamp yang tepat, Logtail memungkinkan Anda menentukan format waktu kustom untuk mengekstrak timestamp dari berbagai format data log. |
|
Sinkronisasi konfigurasi otomatis |
Saat Anda membuat atau memperbarui konfigurasi Logtail di Konsol Simple Log Service, Logtail biasanya menerima dan menerapkan perubahan tersebut dalam waktu 3 menit. Tidak ada data yang hilang selama proses pembaruan. |
|
Pemantauan mandiri |
Logtail memantau konsumsi CPU dan memori-nya sendiri secara real-time untuk menghindari dampak terhadap layanan lain. Jika penggunaan resource melebihi batas yang telah ditentukan, Logtail secara otomatis me-restart untuk melindungi server. Logtail juga mencakup mekanisme pembatasan kecepatan jaringan untuk mencegah konsumsi bandwidth berlebihan. Untuk informasi selengkapnya, lihat File konfigurasi startup (ilogtail_config.json). |
|
Transmisi data bertanda tangan |
Untuk mencegah manipulasi data selama transmisi, Logtail memperoleh token privat dari sisi server melalui saluran tepercaya dan menandatangani semua paket data sebelum mengirimkannya. Catatan
Logtail menggunakan HTTPS untuk memperoleh token privat, memastikan keamanannya. |
Keandalan pengumpulan data
Selama pengumpulan log, Logtail secara berkala menyimpan progres pengumpulannya, yang dikenal sebagai checkpoint, ke file lokal. Jika terjadi shutdown tak terduga atau crash proses, Logtail akan restart dan melanjutkan pengumpulan dari checkpoint terakhir yang disimpan untuk meminimalkan kehilangan data. Logtail beroperasi berdasarkan file konfigurasi startup-nya. Jika penggunaan resource-nya melebihi batas yang ditentukan selama lebih dari 5 menit, Logtail akan me-restart secara paksa. Hal ini dapat mengakibatkan pengumpulan beberapa data duplikat.
Meskipun Logtail mencakup mekanisme keandalan, kehilangan data masih dapat terjadi dalam situasi tertentu:
-
Logtail tidak berjalan saat terjadi beberapa rotasi log.
-
Kecepatan rotasi log sangat tinggi, misalnya sekali per detik.
-
Laju pembuatan log secara konsisten melebihi laju pengumpulan log.