Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengkonfigurasi log Amazon ECS untuk throughput tinggi
Untuk skenario throughput log tinggi, sebaiknya gunakan driver awsfirelens log dengan FireLens danFluent Bit. Fluent Bitadalah prosesor log ringan yang efisien dengan sumber daya dan dapat menangani jutaan catatan log. Namun, mencapai kinerja optimal dalam skala membutuhkan penyetelan konfigurasinya.
Bagian ini mencakup teknik peng Fluent Bit optimalan lanjutan untuk menangani throughput log tinggi sambil menjaga stabilitas sistem dan memastikan tidak ada kehilangan data.
Untuk informasi tentang cara menggunakan file konfigurasi khusus dengan FireLens, lihatGunakan file konfigurasi khusus. Untuk contoh tambahan, lihat FireLens contoh Amazon ECS
catatan
Beberapa opsi konfigurasi di bagian ini, seperti workers danthreaded, memerlukan AWS Fluent Bit versi 3 atau yang lebih baru. Untuk informasi tentang versi yang tersedia, lihat AWS rilis Fluent Bit
Memahami potongan
Fluent Bitmemproses data dalam unit yang disebut potongan. Ketika plugin INPUT menerima data, mesin membuat potongan yang disimpan dalam memori atau pada sistem file sebelum dikirim ke tujuan OUTPUT.
Perilaku buffering tergantung pada storage.type pengaturan di bagian INPUT Anda. Secara default, Fluent Bit menggunakan buffer memori. Untuk skenario throughput tinggi atau produksi, buffering sistem file memberikan ketahanan yang lebih baik.
Untuk informasi selengkapnya, lihat Potongan
Penyangga memori (default)
Secara default, Fluent Bit menggunakan memori buffering (storage.type memory). Anda dapat membatasi penggunaan memori per plugin INPUT menggunakan Mem_Buf_Limit parameter.
Contoh berikut menunjukkan konfigurasi input buffer memori:
[INPUT] Name tcp Tag ApplicationLogs Port 5170 storage.type memory Mem_Buf_Limit 5MB
penting
Ketika Mem_Buf_Limit terlampaui untuk pluginFluent
Bit, jeda input dan catatan baru hilang. Hal ini dapat menyebabkan tekanan balik dan memperlambat aplikasi Anda. Peringatan berikut muncul di Fluent Bit log:
[input] tcp.1 paused (mem buf overlimit)
Memori buffering cocok untuk kasus penggunaan sederhana dengan throughput log rendah hingga sedang. Untuk skenario throughput tinggi atau produksi di mana kehilangan data menjadi masalah, gunakan buffering sistem file sebagai gantinya.
Untuk informasi selengkapnya, lihat Buffering dan Mem
Buffering sistem file
Untuk skenario throughput tinggi, sebaiknya gunakan buffering sistem file. Untuk informasi selengkapnya tentang cara Fluent Bit mengelola buffering dan penyimpanan, lihat Buffering dan Penyimpanan
Filesystem buffering memberikan keuntungan sebagai berikut:
-
Kapasitas buffer yang lebih besar — Ruang disk biasanya lebih melimpah daripada memori.
-
Persist ensi — Data buffer bertahan setelah restartFluent Bit.
-
Degradasi yang anggun — Selama kegagalan output, data terakumulasi pada disk alih-alih menyebabkan kehabisan memori.
Untuk mengaktifkan buffering sistem file, berikan file Fluent Bit konfigurasi khusus. Contoh berikut menunjukkan konfigurasi yang disarankan:
[SERVICE] # Flush logs every 1 second Flush 1 # Wait 120 seconds during shutdown to flush remaining logs Grace 120 # Directory for filesystem buffering storage.path /var/log/flb-storage/ # Limit chunks stored 'up' in memory (reduce for memory-constrained environments) storage.max_chunks_up 32 # Flush backlog chunks to destinations during shutdown (prevents log loss) storage.backlog.flush_on_shutdown On [INPUT] Name forward unix_path /var/run/fluent.sock # Run input in separate thread to prevent blocking threaded true # Enable filesystem buffering for persistence storage.type filesystem [OUTPUT] Name cloudwatch_logs Match * regionus-west-2log_group_name/aws/ecs/my-applog_stream_name $(ecs_task_id) # Use multiple workers for parallel processing workers 2 # Retry failed flushes up to 15 times retry_limit 15 # Maximum disk space for buffered data for this output storage.total_limit_size 10G
Parameter konfigurasi utama:
storage.path-
Direktori tempat Fluent Bit menyimpan potongan buffered pada disk.
storage.backlog.flush_on_shutdown-
Saat diaktifkan, Fluent Bit mencoba untuk menghapus semua potongan sistem file backlog ke tujuannya selama shutdown. Ini membantu memastikan pengiriman data sebelum Fluent Bit berhenti, tetapi dapat meningkatkan waktu shutdown.
storage.max_chunks_up-
Jumlah potongan yang tersisa dalam memori. Standarnya adalah 128 potongan, yang dapat menghabiskan 500 MB+ memori karena setiap potongan dapat menggunakan hingga 4-5 MB. Dalam lingkungan terbatas memori, turunkan nilai ini. Misalnya, jika Anda memiliki 50 MB yang tersedia untuk buffering, setel ini ke 8-10 potongan.
storage.type filesystem-
Mengaktifkan penyimpanan sistem file untuk plugin input. Terlepas dari namanya, digunakan Fluent Bit
mmapuntuk memetakan potongan ke memori dan disk, memberikan ketekunan tanpa mengorbankan kinerja. storage.total_limit_size-
Ruang disk maksimum untuk data buffer untuk plugin OUTPUT tertentu. Ketika batas ini tercapai, catatan tertua untuk keluaran itu dijatuhkan. Untuk informasi lebih lanjut tentang ukuran, lihatMemahami storage.total_limit_size.
threaded true-
Menjalankan input di utasnya sendiri, terpisah dari Fluent Bit loop acara utama. Ini mencegah input lambat memblokir seluruh pipa.
Untuk informasi selengkapnya, lihat Filesystem Buffering
Memahami storage.total_limit_size
storage.total_limit_sizeParameter pada setiap plugin OUTPUT mengontrol ruang disk maksimum untuk data buffer untuk output tersebut. Ketika batas ini tercapai, catatan tertua untuk output tersebut dijatuhkan untuk memberi ruang bagi data baru. Ketika ruang disk benar-benar habis, Fluent Bit gagal mengantri catatan dan mereka hilang.
Gunakan rumus berikut untuk menghitung yang sesuai storage.total_limit_size berdasarkan tingkat log dan jendela pemulihan yang diinginkan:
If log rate is in KB/s, convert to MB/s first: log_rate (MB/s) = log_rate (KB/s) / 1000 storage.total_limit_size (GB) = log_rate (MB/s) × duration (hours) × 3600 (seconds/hour) / 1000 (MB to GB)
Tabel berikut menunjukkan contoh perhitungan untuk tingkat log umum dan jendela pemulihan:
| Tingkat Log | 1 jam | 6 jam | 12 jam | 24 jam |
|---|---|---|---|---|
| 0.25 MB/s | 0,9GB | 5,4 GB | 10.8GB | 21,6 GB |
| 0.5 MB/s | 1,8 GB | 10.8GB | 21,6 GB | 43,2 GB |
| 1 MB/s | 3,6GB | 21,6 GB | 43,2 GB | 86,4 GB |
| 5 MB/s | 18GB | 108GB | 216 GB | 432GB |
| 10 MB/s | 36GB | 216 GB | 432GB | 864GB |
Untuk mengamati throughput puncak dan memilih ukuran buffer yang sesuai, gunakan sampel pengukuran throughput FireLens .
Gunakan rumus, contoh perhitungan, dan pembandingan untuk memilih landasan pacu storage.total_limit_size yang sesuai untuk pemulihan upaya terbaik selama pemadaman.
Persyaratan penyimpanan tugas Amazon ECS
Jumlahkan semua storage.total_limit_size nilai di seluruh bagian OUTPUT dan tambahkan buffer untuk overhead. Total ini menentukan ruang penyimpanan yang dibutuhkan dalam definisi tugas Amazon ECS Anda. Misalnya, 3 output × 10 GB masing-masing = 30 GB+ buffer (5—10 GB) = 35—40 GB total yang diperlukan. Jika total melebihi penyimpanan yang tersedia, Fluent Bit mungkin gagal mengantri catatan dan mereka akan hilang.
Opsi penyimpanan berikut tersedia:
- Bind mount (penyimpanan sementara)
-
-
Untuk AWS Fargate, defaultnya adalah 20 GB penyimpanan sementara (maks 200 GB). Konfigurasikan menggunakan
ephemeralStoragedalam definisi tugas. Untuk informasi selengkapnya, lihat EphemeralStorage di AWS CloudFormation Panduan Pengguna. -
Untuk EC2, defaultnya adalah 30 GB saat menggunakan Amazon ECS-optimized AMI (dibagi antara OS dan Docker). Tingkatkan dengan mengubah ukuran volume root.
-
- Volume Amazon EBS
-
-
Menyediakan penyimpanan blok yang sangat tersedia, tahan lama, dan berkinerja tinggi.
-
Membutuhkan konfigurasi volume dan
mountPointdalam definisi tugas menunjuk kestorage.path(default:/var/log/flb-storage/). -
Untuk informasi selengkapnya, lihat Menunda konfigurasi volume untuk waktu peluncuran dalam definisi tugas Amazon ECS.
-
- Volume Amazon EFS
-
-
Menyediakan penyimpanan file yang sederhana dan dapat diskalakan.
-
Membutuhkan konfigurasi volume dan
mountPointdalam definisi tugas menunjuk kestorage.path(default:/var/log/flb-storage/). -
Untuk informasi selengkapnya, lihat Tentukan sistem file Amazon EFS dalam definisi tugas Amazon ECS.
-
Untuk informasi selengkapnya tentang volume data, lihatOpsi penyimpanan untuk tugas Amazon ECS.
Optimalkan konfigurasi keluaran
Masalah jaringan, pemadaman layanan, dan pelambatan tujuan dapat mencegah pengiriman log. Konfigurasi output yang tepat memastikan ketahanan tanpa kehilangan data.
Ketika keluaran flush gagal, Fluent Bit dapat mencoba lagi operasi. Parameter berikut mengontrol perilaku coba lagi:
retry_limit-
Jumlah maksimum percobaan ulang setelah upaya awal sebelum menjatuhkan catatan. Default-nya adalah 1. Misalnya,
retry_limit 3berarti 4 total upaya (1 awal + 3 percobaan ulang). Untuk lingkungan produksi, kami merekomendasikan 15 atau lebih tinggi, yang mencakup beberapa menit pemadaman dengan mundur eksponensial.Setel ke
no_limitsatauFalseuntuk percobaan ulang tak terbatas:-
Dengan buffering memori, percobaan ulang tak terbatas menyebabkan plugin input berhenti ketika batas memori tercapai.
-
Dengan buffering sistem file, catatan tertua dihapus ketika ter
storage.total_limit_sizecapai.
penting
Setelah menghabiskan semua upaya coba lagi (1 awal + percobaan
retry_limitulang), catatan dijatuhkan. AWS plugin denganauto_retry_requests true(default) menyediakan lapisan coba ulang tambahan sebelum mekanisme Fluent Bit coba ulang. Untuk informasi selengkapnya, lihat Meng onfigurasi percobaan ulangdalam Fluent Bit dokumentasi. Misalnya,
retry_limit 3dengan pengaturan default (scheduler.base 5,scheduler.cap 2000,net.connect_timeout 10s) menyediakan sekitar 70 detik waktu tunggu penjadwal (10s + 20s + 40s), 40 detik batas waktu koneksi jaringan (4 upaya × 10 detik), ditambah percobaan ulang AWS plugin — total sekitar 2—10 menit tergantung pada kondisi jaringan dan batas waktu TCP OS. -
scheduler.base-
Detik dasar antara percobaan ulang (default: 5). Kami merekomendasikan 10 detik.
scheduler.cap-
Detik maksimum antara percobaan ulang (default: 2000). Kami merekomendasikan 60 detik.
Waktu tunggu antara percobaan ulang menggunakan backoff eksponensial dengan jitter:
wait_time = random(base, min(base × 2^retry_number, cap))
Misalnya, dengan scheduler.base 10 danscheduler.cap 60:
-
Coba lagi pertama: tunggu acak antara 10-20 detik
-
Coba lagi kedua: tunggu acak antara 10—40 detik
-
Coba lagi ketiga dan yang lebih baru: tunggu acak antara 10—60 detik (dibatasi)
Untuk informasi selengkapnya, lihat Mengonfigurasi waktu tunggu untuk coba
workers-
Jumlah utas untuk pemrosesan output paralel. Beberapa pekerja memungkinkan pembilasan secara bersamaan, meningkatkan throughput saat memproses banyak potongan.
auto_retry_requests-
Peng AWS aturan khusus plugin yang menyediakan lapisan coba ulang tambahan sebelum mekanisme coba ulang baw Fluent Bit aan. Nilai default-nya
true. Ketika diaktifkan, plugin AWS keluaran mencoba kembali permintaan yang gagal secara internal sebelum permintaan dianggap sebagai flush yang gagal dan tunduk padaretry_limitkonfigurasi.
GraceParameter di [SERVICE] bagian ini mengatur waktu Fluent Bit menunggu selama shutdown untuk membersihkan data buffer. GracePeriode harus dikoordinasikan dengan wadahstopTimeout. Pastikan bahwa stopTimeout melebihi Grace periode Fluent Bit untuk memungkinkan pembilasan selesai sebelum menerimaSIGKILL. Misalnya, jika Grace 120 detik, atur stopTimeout ke 150 detik.
Contoh berikut menunjukkan Fluent Bit konfigurasi lengkap dengan semua pengaturan yang disarankan untuk skenario throughput tinggi:
[SERVICE] # Flush logs every 1 second Flush 1 # Wait 120 seconds during shutdown to flush remaining logs Grace 120 # Directory for filesystem buffering storage.path /var/log/flb-storage/ # Limit chunks stored 'up' in memory (reduce for memory-constrained environments) storage.max_chunks_up 32 # Flush backlog chunks to destinations during shutdown (prevents log loss) storage.backlog.flush_on_shutdown On # Minimum seconds between retries scheduler.base 10 # Maximum seconds between retries (exponential backoff cap) scheduler.cap 60 [INPUT] Name forward unix_path /var/run/fluent.sock # Run input in separate thread to prevent blocking threaded true # Enable filesystem buffering for persistence storage.type filesystem [OUTPUT] Name cloudwatch_logs Match * regionus-west-2log_group_name/aws/ecs/my-applog_stream_name $(ecs_task_id) # Use multiple workers for parallel processing workers 2 # Retry failed flushes up to 15 times retry_limit 15 # Maximum disk space for buffered data for this output storage.total_limit_size 10G
Memahami skenario kehilangan data
Catatan dapat hilang selama pemadaman yang diperpanjang atau masalah dengan tujuan keluaran. Rekomendasi konfigurasi dalam panduan ini adalah pendekatan upaya terbaik untuk meminimalkan kehilangan data, tetapi tidak dapat menjamin kerugian nol selama kegagalan yang berkepanjangan. Memahami skenario ini membantu Anda mengonfigurasi Fluent Bit untuk memaksimalkan ketahanan.
Catatan dapat hilang dengan dua cara: catatan tertua dihapus ketika penyimpanan terisi, atau catatan terbaru ditolak ketika sistem tidak dapat menerima lebih banyak data.
Catatan tertua dijatuhkan
Catatan buffer tertua dihapus saat upaya coba ulang habis atau saat ter storage.total_limit_size isi dan perlu memberi ruang untuk data baru.
- Batas coba lagi terlampaui
-
Terjadi setelah AWS percobaan ulang plugin (jika
auto_retry_requests true) ditambah 1 Fluent Bit upaya awal ditambah percobaanretry_limitulang. Untuk mengurangi, aturretry_limit no_limitsper plugin OUTPUT untuk percobaan ulang tak terbatas:[OUTPUT] Name cloudwatch_logs Match ApplicationLogs retry_limit no_limits auto_retry_requests truepenting
Percobaan ulang tak terbatas mencegah penjatuhan catatan karena kelelahan coba lagi, tetapi dapat
storage.total_limit_sizemenyebabkan terisi. - Batas penyimpanan tercapai (buffering sistem file)
-
Terjadi ketika tujuan keluaran tidak tersedia lebih lama dari buffer
storage.total_limit_sizecan yang Anda konfigurasi. Misalnya, buffer 10 GB pada kecepatan MB/s log 1 menyediakan sekitar 2,7 jam buffering. Untuk mengurangi, tingkatkanstorage.total_limit_sizeper plugin OUTPUT dan sediakan penyimpanan tugas Amazon ECS yang memadai:[OUTPUT] Name cloudwatch_logs Match ApplicationLogs storage.total_limit_size 10G
Catatan terbaru ditolak
Catatan terbaru dijatuhkan ketika ruang disk habis atau ketika input dijeda Mem_Buf_Limit karena.
- Ruang disk habis (buffering sistem file)
-
Terjadi ketika ruang disk benar-benar habis. Fluent Bitgagal mengantri catatan baru dan mereka hilang. Untuk mengurangi, jumlahkan semua
storage.total_limit_sizenilai dan sediakan penyimpanan tugas Amazon ECS yang memadai. Untuk informasi selengkapnya, lihat Persyaratan penyimpanan tugas Amazon ECS. - Batas memori tercapai (buffer memori)
-
Terjadi ketika tujuan keluaran tidak tersedia dan buffer memori terisi. Plugin input yang dijeda berhenti menerima catatan baru. Untuk mengurangi, gunakan
storage.type filesystemuntuk ketahanan yang lebih baik, atau meningkatkanMem_Buf_Limit.
Praktik terbaik untuk meminimalkan kehilangan data
Pertimbangkan praktik terbaik berikut untuk meminimalkan kehilangan data:
-
Gunakan buffering sistem file - Tetapkan untuk ketahanan yang lebih baik
storage.type filesystemselama pemadaman. -
Ukuran penyimpanan dengan tepat - Hit
storage.total_limit_sizeung berdasarkan tingkat log dan jendela pemulihan yang diinginkan. -
Menyediakan disk yang memadai — Pastikan tugas Amazon ECS memiliki penyimpanan sementara yang cukup, Amazon EBS, atau Amazon EFS.
-
Konfigurasikan perilaku coba ulang — Keseimbangan antara
retry_limit(menjatuhkan catatan setelah percobaan ulang yang melelahkan) danno_limits(percobaan ulang tanpa batas waktu tetapi dapat mengisi penyimpanan).
Gunakan pencatatan multi-tujuan untuk keandalan
Mengirim log ke beberapa tujuan menghilangkan satu titik kegagalan. Misalnya, jika CloudWatch Log mengalami pemadaman, log masih mencapai Amazon S3.
Multi-destination logging memberikan manfaat berikut. Plugin keluaran Amazon S3 juga mendukung opsi kompresi seperti format gzip dan parket, yang dapat mengurangi biaya penyimpanan. Untuk informasi selengkapnya, lihat kompres i
Multi-destination logging dapat memberikan manfaat berikut:
-
Redundansi — Jika satu tujuan gagal, log masih mencapai yang lain.
-
Pemulihan — Merekonstruksi celah dalam satu sistem dari yang lain.
-
Daya T ahan — Arsipkan log di Amazon S3 untuk retensi jangka panjang.
-
Optimalisasi biaya — Simpan log terbaru dalam layanan kueri cepat seperti CloudWatch Log dengan retensi yang lebih pendek, sambil mengarsipkan semua log ke penyimpanan Amazon S3 berbiaya lebih rendah untuk retensi jangka panjang.
Fluent BitKonfigurasi berikut mengirimkan log ke CloudWatch Log dan Amazon S3:
[OUTPUT] Name cloudwatch_logs Match * regionus-west-2log_group_name/aws/ecs/my-applog_stream_name $(ecs_task_id) workers 2 retry_limit 15 [OUTPUT] Name s3 Match * bucketmy-logs-bucketregionus-west-2total_file_size 100M s3_key_format /fluent-bit-logs/$(ecs_task_id)/%Y%m%d/%H/%M/$UUID upload_timeout 10m # Maximum disk space for buffered data for this output storage.total_limit_size 5G
Kedua output menggunakan Match * pola yang sama, sehingga semua catatan dikirim ke kedua tujuan secara independen. Selama pemadaman satu tujuan, log terus mengalir ke tujuan lainnya sementara flush gagal terakumulasi di buffer sistem file untuk dicoba lagi nanti.
Gunakan logging berbasis file dengan plugin input tail
Untuk skenario throughput tinggi di mana kehilangan log merupakan masalah penting, Anda dapat menggunakan pendekatan alternatif: minta aplikasi Anda menulis log ke file di disk, dan konfigurasikan Fluent Bit untuk membacanya menggunakan plugin tail input. Pendekatan ini melewati lapisan driver logging Docker sepenuhnya.
File-based logging dengan plugin tail memberikan manfaat berikut:
-
Pelacakan offset - Plugin ekor dapat menyimpan offset file dalam file database (menggunakan
DBopsi), memberikan daya tahan selama Fluent Bit restart. Ini membantu mencegah hilangnya log selama restart kontainer. -
Input-level buffering - Anda dapat mengonfigurasi batas buffer memori langsung pada plugin input menggunakan
Mem_Buf_Limit, memberikan kontrol yang lebih granular atas penggunaan memori. -
Menghindari overhead Docker - Log beralih langsung dari file ke Fluent Bit tanpa melewati buffer log Docker.
Untuk menggunakan pendekatan ini, aplikasi Anda harus menulis log ke file alih-alihstdout. Baik wadah aplikasi maupun Fluent
Bit wadah memasang volume bersama tempat file log disimpan.
Contoh berikut menunjukkan konfigurasi input ekor dengan praktik terbaik:
[INPUT] Name tail # File path or glob pattern to tail Path/var/log/app.log# Database file for storing file offsets (enables resuming after restart) DB /var/log/flb_tail.db # when true, controls that only fluent-bit will access the database (improves performance) DB.locking true # Skip long lines instead of skipping the entire file Skip_Long_Lines On # How often (in seconds) to check for new files matching the glob pattern Refresh_Interval 10 # Extra seconds to monitor a file after rotation to account for pending flush Rotate_Wait 30 # Maximum size of the buffer for a single line Buffer_Max_Size 10MB # Initial allocation size for reading file data Buffer_Chunk_Size 1MB # Maximum memory buffer size (tail pauses when full) Mem_Buf_Limit 75MB
Saat menggunakan plugin input ekor, pertimbangkan hal berikut:
-
Terapkan rotasi log untuk log aplikasi Anda untuk mencegah kehabisan disk. Pantau metrik volume yang mendasarinya untuk mengukur kinerja.
-
Pertimbangkan pengaturan seperti
Ignore_Older,Read_from_Head, dan parser multiline berdasarkan format log Anda.
Untuk informasi selengkapnya, lihat T ail
Masuk langsung ke FireLens
Ketika driver awsfirelens log ditentukan dalam definisi tugas, agen kontainer Amazon ECS menyuntikkan variabel lingkungan berikut ke dalam wadah:
FLUENT_HOST-
Alamat IP yang ditetapkan ke FireLens wadah.
catatan
Jika Anda menggunakan EC2 dengan mode
bridgejaringan, variabelFLUENT_HOSTlingkungan dalam wadah aplikasi Anda dapat menjadi tidak akurat setelah restart wadah router FireLens log (wadah denganfirelensConfigurationobjek dalam definisi wadahnya). Ini karenaFLUENT_HOSTmerupakan alamat IP dinamis dan dapat berubah setelah restart. Logging langsung dari wadah aplikasi ke alamatFLUENT_HOSTIP dapat mulai gagal setelah alamat berubah. Untuk informasi selengkapnya tentang memulai ulang wadah individual, lihatMulai ulang wadah individu dalam tugas Amazon ECS dengan kebijakan restart kontainer. FLUENT_PORT-
Port tempat protokol Fluent Forward mendengarkan.
Anda dapat menggunakan variabel lingkungan ini untuk masuk langsung ke router Fluent
Bit log dari kode aplikasi Anda menggunakan protokol Fluent Forward, alih-alih menulis kestdout. Pendekatan ini melewati lapisan driver logging Docker, yang memberikan manfaat berikut:
-
Latensi yang lebih rendah — Log langsung masuk Fluent Bit tanpa melewati infrastruktur logging Docker.
-
Logging terstruktur — Kirim data log terstruktur secara native tanpa overhead pengkodean JSON.
-
Kontrol yang lebih baik — Aplikasi Anda dapat menerapkan logika buffering dan penanganan kesalahan sendiri.
Pustaka Fluent logger berikut mendukung protokol Fluent Forward dan dapat digunakan untuk mengirim log langsung keFluent Bit:
-
Pergi — fluent-logger-golang
-
Python — logger-python yang lancar
-
Java — fluent-logger-java
-
Node.js— fluent-logger-node
-
Ruby — fluent-logger-ruby
Konfigurasikan batas buffer Docker
Saat Anda membuat definisi tugas, Anda dapat menentukan jumlah baris log yang disangga dalam memori dengan menentukan nilai dilog-driver-buffer-limit. Ini mengontrol buffer antara Docker danFluent Bit. Untuk informasi selengkapnya, lihat Driver logging Fluentd
Gunakan opsi ini ketika ada throughput tinggi, karena Docker mungkin kehabisan memori buffer dan membuang pesan buffer sehingga dapat menambahkan pesan baru.
Pertimbangkan hal berikut saat menggunakan opsi ini:
-
Opsi ini didukung pada tipe EC2 dan Fargate dengan versi platform
1.4.0atau yang lebih baru. -
Opsi ini hanya valid bila dis
logDriveretel keawsfirelens. -
Batas buffer default adalah
1048576baris log. -
Batas buffer harus lebih besar dari atau sama dengan
0dan kurang dari536870912baris log. -
Jumlah maksimum memori yang digunakan untuk buffer ini adalah produk dari ukuran setiap baris log dan ukuran buffer. Misalnya, jika baris log aplikasi rata-rata
2KiB, batas buffer 4096 akan menggunakan paling banyak8MiB. Jumlah total memori yang dialokasikan pada tingkat tugas harus lebih besar dari jumlah memori yang dialokasikan untuk semua wadah selain buffer memori driver log.
Definisi tugas berikut menunjukkan cara mengkonfigurasilog-driver-buffer-limit:
{ "containerDefinitions": [ { "name": "my_service_log_router", "image": "public.ecr.aws/aws-observability/aws-for-fluent-bit:3", "cpu": 0, "memoryReservation": 51, "essential": true, "firelensConfiguration": { "type": "fluentbit" } }, { "essential": true, "image": "public.ecr.aws/docker/library/httpd:latest", "name": "app", "logConfiguration": { "logDriver": "awsfirelens", "options": { "Name": "firehose", "region": "us-west-2", "delivery_stream": "my-stream", "log-driver-buffer-limit": "52428800" } }, "dependsOn": [ { "containerName": "my_service_log_router", "condition": "START" } ], "memoryReservation": 100 } ] }