Fluentbit + Firelens 无法解析并将日志 JSON 字段作为标签发送(AWS ECS Fargate)

Fluentbit + Firelens 无法解析并将日志 JSON 字段作为标签发送(AWS ECS Fargate)

我的堆栈在 AWS Fargate 上。应用程序、grafana、loki 位于同一个 ECS 集群上。我的应用程序生成日志,

以下是日志流示例:

{"host":"ip-00-3001-1a08-test.us-west-1.compute.internal","short_message":"Sent message: {\"test\":{\"test\":\"31901300\",\"}}","full_message":"Sent message: {\"test\":{\"test\":\"31901300\"}}","timestamp":1.707740449767E9,"level":6,"facility":"logstash-abctest","simpleLogger":"test-abc","logSequence":9696969696,"activity":"00000000222255544","logLevel":"INFO","logger":"test","senderType":"test","terminalID":"test300"}

在 ECS Task_definitation 中找到我的 logConfiguration:

"logConfiguration": {
                "logDriver": "awsfirelens",
                "options": {
                    "LabelKeys": "container_name,ecs_task_definition,source,ecs_cluster",
                    "Labels": "{job=\"firelens\"}",
                    "LineFormat": "json",
                    "Name": "grafana-loki",
                    "RemoveKeys": "container_id,ecs_task_arn",
                    "Url": "http://loki.endpoint:3100/loki/api/v1/push"
                }

我的日志流中有一些字段,例如主机、短消息、全消息、时间戳、级别、设施、日志序列、活动、日志级别、记录器、发送类型、终端 ID 等。

我的目标是将这些字段解析为 Loki 数据源中的标签。建议在 AWS ECS 任务定义中进行必要的配置以实现此目标。

仅供参考,目前,我只能看到集群的元数据(container_name、ecs_cluster、ecs_task_definition、job、source)作为 Lebels。

提前致谢。

我尝试在任务定义的 logConfiguration 中添加日志流字段,如下所示:

"LabelKeys": "senderType,activity,full_message,short_message,container_name,ecs_task_definition,source,ecs_cluster",
"Labels": "{job=\"firelens\",senderType=\"${senderType}\",activity=\"${activity}\"}",

但那没有用。

相关内容