Fluentbit позволяет нам использовать переменные среды в разделе вывода. При этом решение проблемы заключается в передаче переменной среды в контейнер Firelens.
В AWS ECS это должно быть передано из раздела определения задачи внутри определения контейнера sidecar firelens,
{
"name": "firelens_log_router",
"image": "<account_id>.dkr.ecr.us-east-1.amazonaws.com/accel-aws-for-fluent-bit:latest",
"logConfiguration": {
"logDriver": "awslogs",
"options": {
"awslogs-group": "firelens-container",
"awslogs-region": "us-east-1",
"awslogs-create-group": "true",
"awslogs-stream-prefix": "firelens"
}
},
"memory": 100,
"memoryReservation": 50,
"firelensConfiguration": {
"type": "fluentbit",
"options": {
"config-file-type": "file",
"config-file-value": "/fluent-bit/etc/fluent-bit-accel.conf"
}
},
"environment": [
{
"name": "MICROSERVICE_NAME",
"value": "${microservice_name}"
}
]
}
Затем в разделе OUTPUT файла конфигурации Fluentbit
[OUTPUT]
Name cloudwatch
Match **
region us-east-1
log_group_name /ecs/${MICROSERVICE_NAME}
log_stream_prefix fluentbit.
auto_create_group true