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
Saat Anda membuat definisi tugas, Anda dapat menentukan jumlah baris log yang disangga dalam memori dengan menentukan nilai dalam. log-driver-buffer-limit 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 FireLens Amazon ECS dengan opsi batas buffer:
-
Opsi ini didukung pada jenis EC2 peluncuran Amazon dan jenis peluncuran Fargate dengan versi platform
1.4.0atau yang lebih baru. -
Opsi ini hanya valid ketika
logDriverdiatur keawsfirelens. -
Batas buffer default adalah baris
1048576log. -
Batas buffer harus lebih besar dari atau sama dengan
0dan kurang dari garis536870912log. -
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.
Ketika driver awsfirelens log ditentukan dalam definisi tugas, agen penampung Amazon ECS menyuntikkan variabel lingkungan berikut ke dalam wadah:
FLUENT_HOST-
Alamat IP yang ditetapkan ke FireLens wadah.
catatan
Jika Anda menggunakan tipe EC2 peluncuran dengan mode
bridgejaringan, variabelFLUENT_HOSTlingkungan dalam wadah aplikasi Anda dapat menjadi tidak akurat setelah restart wadah router FireLens log (wadah denganfirelensConfigurationobjek dalam definisi kontainer). 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 kontainer individual, lihat. Mulai ulang kontainer individual dalam tugas Amazon ECS dengan kebijakan restart kontainer FLUENT_PORT-
Port tempat protokol Fluent Forward mendengarkan.
Anda dapat menggunakan variabel FLUENT_HOST dan FLUENT_PORT lingkungan untuk log langsung ke router log dari kode alih-alih melaluistdout. Untuk informasi lebih lanjut, lihat fluent-logger-golang
Berikut ini menunjukkan sintaks untuk menentukan. log-driver-buffer-limit Ganti my_service_ dengan nama layanan Anda:
{ "containerDefinitions": [ { "name": "my_service_log_router", "image": "public.ecr.aws/aws-observability/aws-for-fluent-bit:stable", "cpu": 0, "memoryReservation": 51, "portMappings": [], "essential": true, "environment": [], "mountPoints": [], "volumesFrom": [], "user": "0", "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "/ecs/ecs-aws-firelens-sidecar-container", "mode": "non-blocking", "awslogs-create-group": "true", "max-buffer-size": "25m", "awslogs-region": "us-east-1", "awslogs-stream-prefix": "firelens" }, "secretOptions": [] }, "systemControls": [], "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": "51200" } }, "dependsOn": [ { "containerName": "log_router", "condition": "START" } ], "memoryReservation": 100 } ] }