Topik ini menjelaskan batasan Logtail, termasuk batasan pada lingkungan yang didukung, file log, kontainer, checkpoint, konfigurasi Logtail, kelompok mesin, metrik kinerja, dan penanganan kesalahan.
Lingkungan yang Didukung
Item | Deskripsi |
Arsitektur |
|
Sumber daya komputasi |
Penggunaan aktual tergantung pada laju pengumpulan, jumlah direktori dan file yang dipantau, serta tingkat kemacetan pengiriman. Pastikan bahwa tingkat penggunaan aktual kurang dari 80% dari batas. |
Sistem operasi | Untuk sistem operasi yang didukung, lihat Jenis Host. |
Kubernetes |
|
Docker | Pengumpulan stdout dan stderr dari kontainer memiliki batasan berikut:
|
Media penyimpanan | Menggunakan media penyimpanan jaringan bersama seperti Penyimpanan File NAS (NAS) atau Object Storage Service (OSS) tidak direkomendasikan, karena dapat menyebabkan pemotongan data, ketidakkonsistenan isi, atau penghentian pengumpulan. Kami merekomendasikan Anda menggunakan Elastic Block Storage (EBS). |
Batasan pada file log
Item | Deskripsi |
Ukuran Satu Log | Secara default, ukuran maksimum sebuah log adalah 512 KB. Anda dapat mengubah nilai parameter startup max_read_buffer_size untuk menyesuaikan ukuran tersebut. Ukuran maksimum sebuah log tidak boleh melebihi 8 MB. Untuk informasi lebih lanjut, lihat Konfigurasikan Parameter Startup Logtail. Jika log multi-baris dibagi berdasarkan ekspresi reguler yang digunakan untuk mencocokkan awal baris pertama log, ukuran maksimum setiap log setelah pembagian tetap 512 KB. Jika ukuran log melebihi 512 KB, log tersebut secara paksa dibagi menjadi beberapa log untuk dikumpulkan. Sebagai contoh, jika ukuran log adalah 1.025 KB, log tersebut dibagi menjadi log dengan ukuran berikut: 512 KB, 512 KB, dan 1 KB. Kemudian, log-log tersebut dikumpulkan secara berurutan dan dianggap sebagai log yang tidak lengkap. |
Pengkodean File Log | Logtail mendukung file log yang dikodekan dalam UTF-8 dan GBK. Kami merekomendasikan penggunaan file log yang dikodekan dalam UTF-8 untuk meningkatkan kinerja pemrosesan. Peringatan Jika file log dikodekan dalam format lain, masalah seperti karakter acak dan kehilangan data mungkin terjadi. |
Ukuran File Log | Tanpa Batas. |
Rotasi File Log | Secara default, jumlah maksimum file log dalam antrian rotasi adalah 20. Anda dapat mengubah nilai parameter startup logreader_max_rotate_queue_size untuk menyesuaikan jumlah tersebut. Untuk informasi lebih lanjut, lihat Konfigurasikan Parameter Startup Logtail. Anda dapat menentukan jalur log dalam format Penting Pastikan kedua format tersebut tidak ada pada waktu yang sama dalam satu instans Logtail. Jika kedua format ada pada waktu yang sama, log dalam file log mungkin dikumpulkan menggunakan beberapa konfigurasi Logtail, dan data duplikat mungkin dikumpulkan. Jika lebih dari 20 file log belum diproses, log baru akan hilang. Dalam kasus ini, Anda harus memeriksa apakah kuota penulisan shard melebihi batas dan menyesuaikan parameter terkait konkurensi. Untuk informasi lebih lanjut, lihat Nilai Parameter yang Direkomendasikan. |
Perilaku Pengumpulan Log Saat Penguraian Log Diblokir | Saat penguraian log diblokir, Logtail tetap membuka deskriptor file log untuk mencegah file log dihapus selama periode pemblokiran dan kehilangan log. Jika file log dirotasi beberapa kali selama periode pemblokiran, Logtail memasukkan file log ke dalam antrian rotasi. |
Ekspresi Reguler | Logtail menggunakan ekspresi reguler yang kompatibel dengan Perl. |
JSON | Format JSON standar yang didefinisikan dalam RFC 7159 dan ECMA-404 didukung. Format JSON non-standar, seperti |
Beberapa Konfigurasi Logtail untuk Satu File Log | Secara default, Anda hanya dapat menggunakan satu konfigurasi Logtail untuk mengumpulkan log dari file log. Untuk informasi lebih lanjut tentang cara menggunakan beberapa konfigurasi Logtail untuk mengumpulkan log dari file log, lihat Bagaimana Cara Saya Mengumpulkan Beberapa Salinan Log dalam File? Penting Saat Anda menggunakan beberapa konfigurasi Logtail untuk mengumpulkan log dari file log, I/O baca, sumber daya komputasi, dan I/O jaringan bertambah sesuai. |
Perilaku Membuka File | Logtail menjaga file log tempat Anda ingin mengumpulkan log dan file log dalam antrian rotasi tetap terbuka untuk memastikan integritas data yang dikumpulkan. File log ditutup dalam skenario berikut:
Untuk melepaskan pegangan file dalam periode waktu tertentu setelah file log dihapus, terlepas dari apakah pengumpulan log dari file log selesai atau apakah log baru masih ditulis ke file log, konfigurasikan parameter force_release_deleted_file_fd_timeout untuk menentukan periode timeout. Untuk informasi lebih lanjut, lihat Konfigurasikan Parameter Startup Logtail. |
Perilaku Pengumpulan Log Pertama | Logtail hanya mengumpulkan data dari file log inkremental. Jika ukuran file log melebihi batas 1 MB pertama kali modifikasi file log terdeteksi, Logtail mengumpulkan data dari 1 MB terakhir. Jika ukuran file log tidak melebihi 1 MB, Logtail mengumpulkan data dari awal file log. Batas untuk stdout dan stderr kontainer adalah 512 KB. Anda dapat mengubah nilai parameter tail_size_kb dalam konfigurasi Logtail untuk menyesuaikan batas tersebut. Untuk informasi lebih lanjut, lihat Konfigurasi Logtail. Jika file log tidak dimodifikasi setelah konfigurasi Logtail dikirim, Logtail tidak mengumpulkan data dari file log. Untuk informasi lebih lanjut tentang cara mengumpulkan log dari file log historis, lihat Impor Log Historis dari File Log. |
Perilaku Penimpaan File | Logtail menggunakan inode dan nilai hash dari 1.024 byte pertama file log untuk mengidentifikasi file log. Jika file log ditimpa dan inode atau nilai hash dari 1.024 byte pertama file log berubah, file log dianggap sebagai file log yang belum dikumpulkan lognya, dan log dikumpulkan dari awal file log. Jika inode atau nilai hash tidak berubah, log dalam file log tidak dikumpulkan. |
Perilaku Transfer File | Jika file log ditransfer dan konfigurasi Logtail yang cocok tidak digunakan untuk mengumpulkan log dari file log sebelum file log ditransfer, file log dianggap sebagai file log yang belum dikumpulkan lognya, dan log dikumpulkan dari awal file log. Dalam skenario ini, jika konfigurasi Logtail yang cocok digunakan untuk mengumpulkan log dari file log, log dalam file log tidak dikumpulkan. |
Sejarah Pengumpulan File | Logtail menyimpan kemajuan pengumpulan historis file log historis dalam memori untuk memastikan hanya data inkremental yang dikumpulkan setelah file log diubah. Jika kemajuan pengumpulan historis file log historis disimpan lebih lama dari periode tertentu dan data baru ditulis ke file log, data duplikat dikumpulkan.
|
Log Teks Non-Standar | Untuk baris log yang berisi |
Batasan pada kontainer
Baik batasan pada file log maupun batasan pada kontainer berlaku saat Anda menggunakan Logtail untuk mengumpulkan log kontainer.
Item | Deskripsi |
Perilaku Pengumpulan Log Pertama | Saat Anda mengumpulkan stdout dan stderr kontainer dan jika ukuran file log melebihi batas 512 KB pertama kali modifikasi file log terdeteksi, Logtail mengumpulkan data dari 512 KB terakhir. Jika ukuran file log tidak melebihi 512 KB, Logtail mengumpulkan data dari awal file log. Anda dapat mengubah nilai parameter StartLogMaxOffset dalam konfigurasi Logtail untuk menyesuaikan batas tersebut. Untuk informasi lebih lanjut, lihat Gunakan Konsol Simple Log Service untuk Mengumpulkan stdout dan stderr Kontainer dalam Mode DaemonSet. |
Tautan Simbolik | Saat Anda mengumpulkan log dari file kontainer, file dan direktori file tidak boleh berupa tautan simbolik. |
Siklus Hidup Kontainer | Secara default, Logtail hanya dapat mengumpulkan log dari kontainer jika siklus hidup kontainer berlangsung 10 detik atau lebih lama. Saat Anda mengumpulkan log dari file kontainer, Logtail membatasi jumlah pembaruan log dalam file kontainer hingga 10 kali dalam periode 3 menit untuk memastikan kinerja pengumpulan. Anda dapat mengubah nilai parameter startup docker_config_update_interval dan max_docker_config_update_times untuk menyesuaikan pengaturan tersebut. Untuk informasi lebih lanjut, lihat Konfigurasikan Parameter Startup Logtail. |
Rotasi File untuk stdout dan stderr | File stdout dan stderr kontainer dirotasi oleh Docker atau kubelet. Secara default, ukuran file stdout dan stderr yang dirotasi oleh kubelet adalah 10 MB, dan ukuran file stdout dan stderr yang dirotasi oleh Docker adalah 100 MB. Jika laju output stdout dan stderr kontainer lebih besar dari 10 MB/s, file stdout dan stderr dirotasi dengan kecepatan lebih tinggi. Dalam kasus ini, kami merekomendasikan Anda mengumpulkan log dari file kontainer atau mengubah nilai parameter containerLogMaxSize untuk mencegah kehilangan log. |
Driver Logging untuk stdout dan stderr | Jika Anda menggunakan Docker sebagai runtime kontainer, Anda harus menambahkan |
Batasan pada checkpoint
Item | Deskripsi |
Periode timeout checkpoint | Dalam skenario default, jika file log tidak dimodifikasi dalam 30 hari, checkpoint file log secara otomatis dihapus. Jika |
Kebijakan penyimpanan checkpoint | Checkpoint disimpan secara otomatis pada interval 15 menit dan pada saat Logtail keluar. Anda dapat mengubah nilai parameter startup check_point_dump_interval untuk mengubah kebijakan penyimpanan checkpoint. Untuk informasi lebih lanjut, lihat Konfigurasikan parameter startup Logtail. |
Jalur penyimpanan checkpoint | Secara default, checkpoint disimpan dalam direktori |
Penanganan selama downtime | Checkpoint disimpan secara berkala. Jika downtime terjadi, pengumpulan data dilanjutkan dari checkpoint yang disimpan sepenuhnya terakhir. Hal ini dapat menyebabkan pengumpulan data duplikat. Anda dapat mengubah kebijakan penyimpanan checkpoint untuk mencegah pengumpulan data duplikat. |
Batasan pada konfigurasi Logtail
Item | Deskripsi |
Laten Pengaturan Pembaruan Konfigurasi | Pembaruan konfigurasi Logtail yang dilakukan menggunakan Konsol Simple Log Service atau dengan memanggil Operasi API memerlukan waktu sekitar 30 detik untuk berlaku. |
Pemuatan Dinamis Konfigurasi Logtail | Konfigurasi Logtail dapat dimuat secara dinamis. Pembaruan pada konfigurasi Logtail tidak memengaruhi konfigurasi Logtail lainnya. |
Jumlah Konfigurasi Logtail yang Dapat Dimuat Secara Dinamis untuk Satu Instans Logtail | Tanpa Batas. Namun, kami merekomendasikan agar Anda memuat tidak lebih dari 100 konfigurasi Logtail untuk satu server. |
Pembuatan Log Menggunakan Flusher Pihak Ketiga | Jika konfigurasi Logtail dibuat di Konsol Simple Log Service atau dengan memanggil Operasi API, konfigurasi Logtail tersebut dikaitkan dengan logstore. Oleh karena itu, saat Anda mengonfigkan flusher pihak ketiga dalam konfigurasi plugin Anda, Logtail secara otomatis mengirimkan salinan data ke logstore. |
Akun Multi dan Lintas Akun | Pengumpulan log multi-akun dan lintas akun didukung. Untuk informasi lebih lanjut, lihat Konfigurasikan Pengenal Pengguna dan Gunakan Logtail untuk Mengumpulkan Log Kontainer Lintas Akun Alibaba Cloud. |
Multi-Region | Secara default, pengumpulan log multi-region tidak didukung. Untuk mengumpulkan log dari beberapa region, ajukan Tiket. |
Percepatan Global | Percepatan global didukung. Setelah Anda mengaktifkan percepatan global di sisi Simple Log Service, Anda harus mengonfigurasikan percepatan global di sisi Logtail. Untuk informasi lebih lanjut, lihat Percepatan Pengumpulan Log. |
Batasan pada kelompok mesin
Item | Deskripsi |
Jumlah mesin | Tanpa Batas. Namun, kami merekomendasikan agar Anda mengonfigurasikan tidak lebih dari 100.000 mesin. Jika tidak, heartbeat tidak dapat diperoleh. |
Jumlah konfigurasi Logtail yang dapat diterapkan | Tanpa Batas. Namun, kami merekomendasikan agar Anda menerapkan tidak lebih dari 1.000 konfigurasi Logtail. |
Batasan pada metrik kinerja
Item | Deskripsi |
Throughput untuk Pemrosesan Log | Kecepatan transmisi default log mentah dibatasi hingga 20 MB/s. Data log diunggah setelah dienkripsi dan dikompresi. Rasio kompresi berkisar antara 5:1 hingga 10:1. Jika kecepatan transmisi lebih cepat dari nilai default, log mungkin hilang. Anda dapat mengubah nilai parameter startup max_bytes_per_sec untuk menyesuaikan kecepatan transmisi. Untuk informasi lebih lanjut, lihat Konfigurasikan Parameter Startup Logtail. |
Kecepatan Pemrosesan Maksimum untuk Log | Kecepatan pemrosesan dengan satu core:
Anda dapat mengonfigurasikan parameter startup process_thread_count untuk mengonfigurasikan beberapa thread. Ini membantu meningkatkan kinerja sebesar 150% hingga 300%. |
Jumlah Maksimum Direktori dan File yang Dipantau | Jumlah maksimum direktori dan file yang dipantau terkait dengan parameter mem_usage_limit. Nilai default parameter mem_usage_limit adalah 384 MB dalam lingkungan host dan 2.048 MB dalam lingkungan kontainer. Kategori berikut digunakan:
Jika jumlah untuk salah satu kategori di atas mencapai batas atas, Logtail tidak lagi memantau sisa direktori dan file yang sesuai dengan kategori tersebut. Anda dapat mempersempit cakupan direktori yang dipantau dalam konfigurasi Logtail atau mengubah nilai parameter startup mem_usage_limit untuk meningkatkan jumlah direktori yang dipantau. Untuk informasi lebih lanjut tentang parameter mem_usage_limit, lihat Konfigurasikan Parameter Startup Logtail. Logtail yang diinstal pada server Linux memungkinkan Anda menggunakan mekanisme inotify untuk memantau direktori. Ini membantu mempersingkat latensi pengumpulan log. Jumlah maksimum direktori, termasuk subdirektori, yang dapat dipantau menggunakan mekanisme inotify adalah 3.000. |
Kebijakan Penanganan Konsumsi Sumber Daya Berlebih | Jika jumlah sumber daya yang digunakan oleh Logtail tetap lebih tinggi dari batas atas selama 5 menit, Logtail secara paksa di-restart. Restart ini dapat menyebabkan kehilangan atau duplikasi data. |
Isolasi Multi-Penyewa | Konfigurasi Logtail diisolasi. Jika terjadi kesalahan dalam konfigurasi Logtail, konfigurasi Logtail lainnya tidak terpengaruh. |
Latensi Pengumpulan Log | Dalam kondisi normal, Logtail dapat mengumpulkan log kurang dari 1 detik setelah log ditulis ke disk. |
Kebijakan Unggah Log | Sebelum Logtail mengunggah log, Logtail menggabungkan log dalam file yang sama. Logtail mulai mengunggah log ketika jumlah log melebihi 4.000, total ukuran log melebihi 512 KB, atau durasi pengumpulan log melebihi 3 detik. |
Batasan pada penanganan kesalahan
Item | Deskripsi |
Penanganan Kesalahan Jaringan | Jika terjadi kesalahan jaringan, Logtail secara otomatis mencoba kembali tugas pengumpulan data dan menyesuaikan interval percobaan ulang. Dalam kasus ekstrem, log mungkin dikumpulkan berulang kali atau dibuang karena masalah berikut:
|
Pemrosesan Peristiwa Ambang Batas Terlampaui | Jika kecepatan transmisi data melebihi batas atas logstore, Logtail memblokir pengumpulan log dan secara otomatis mencoba kembali tugas pengumpulan data. Kami merekomendasikan Anda meningkatkan jumlah shard untuk logstore. |
Kesalahan Waktu Logtail | Jika percobaan ulang gagal lima kali karena selisih waktu antara waktu permintaan dan waktu respons lebih besar dari 15 menit, Logtail membuang data terkait. Maksimal lima percobaan ulang diizinkan. Kami merekomendasikan Anda memperbaiki waktu mesin tempat Logtail berada. |
Tidak Adanya Proyek atau Logstore Tertentu | Jika percobaan ulang gagal lima kali, Logtail membuang data terkait. Maksimal lima percobaan ulang diizinkan. Kegagalan ini mungkin terjadi jika Anda menghapus logstore Anda dengan memanggil Operasi API. Kami merekomendasikan Anda menghapus konfigurasi Logtail dan memutuskan hubungan konfigurasi Logtail dari kelompok mesin Anda dengan memanggil Operasi API. |
Otentikasi Gagal | Jika percobaan ulang gagal lima kali, Logtail membuang data terkait. Maksimal lima percobaan ulang diizinkan. Kegagalan ini mungkin terjadi dalam skenario berikut:
|
Kesalahan Tidak Dikenal Lainnya | Jika percobaan ulang gagal lima kali, Logtail membuang data terkait. Maksimal lima percobaan ulang diizinkan. |
Periode Percobaan Ulang Maksimum Sebelum Timeout | Jika data gagal ditransmisikan dan masalah tersebut berlangsung lebih dari 6 jam, Logtail membuang data tersebut. |
Pemeriksaan Status Diri | Jika terjadi pengecualian, Logtail di-restart. Sebagai contoh, jika aplikasi keluar secara tak terduga atau penggunaan sumber daya melebihi batas atas yang ditentukan, Logtail di-restart. |
Melebihi Jumlah Maksimum Folder dan File yang Dipantau | Logtail tidak dapat menemukan jalur pengumpulan tepat waktu dan akurat, yang dapat mengakibatkan kehilangan data. |
Pengumpulan Tertunda Signifikan | Pengumpulan log tertinggal dari pembuatan log. Jika log yang belum diproses melebihi 20, kehilangan data mungkin terjadi. |