Exemplo de definições de tarefas de opções de log - Amazon ECS

Exemplo de definições de tarefas de opções de log

Veja a seguir alguns exemplos de definições de tarefa que demonstram opções comuns de roteamento de log padronizado. Para obter mais exemplos, consulte Exemplos do FireLens do Amazon ECS no GitHub.

nota

O parâmetro de definição de tarefa logConfiguration mostrado a seguir nesses exemplos é usado para enviar seus logs de AWS para Fluent Bit para o CloudWatch. A AWS recomenda essa configuração para que você tenha informações adicionais no CloudWatch para solucionar problemas de AWS para Fluent Bit.

"logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "firelens-container", "awslogs-region": "us-west-2", "awslogs-create-group": "true", "awslogs-stream-prefix": "firelens" } },

Encaminhar logs para o CloudWatch Logs

nota

Para obter mais exemplos, consulte Exemplos do FireLens do Amazon ECS no GitHub.

O exemplo de definição de tarefa a seguir demonstra como especificar uma configuração de log que encaminha logs para um grupo de logs do CloudWatch Logs. Para obter mais informações, consulte O que é o Amazon CloudWatch Logs? no Guia do usuário do Amazon CloudWatch Logs.

Nas opções de configuração de log, especifique o nome do grupo de logs e a Região da AWS em que ele existe. Para que o Fluent Bit crie o grupo de logs em seu nome, especifique "auto_create_group":"true", para definir o fluentd-buffer-limit, use log-driver-buffer-limit. Também é possível especificar o ID da tarefa como o prefixo de fluxo de log que auxilia na filtragem. Para obter mais informações, consulte Plug-in do Fluent Bit para CloudWatch Logs.

{ "family": "firelens-example-cloudwatch", "taskRoleArn": "arn:aws:iam::123456789012:role/ecs_task_iam_role", "containerDefinitions": [ { "essential": true, "image": "906394416424.dkr.ecr.us-west-2.amazonaws.com/aws-for-fluent-bit:latest", "name": "log_router", "firelensConfiguration": { "type": "fluentbit" }, "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "firelens-container", "awslogs-region": "us-west-2", "awslogs-create-group": "true", "awslogs-stream-prefix": "firelens" } }, "memoryReservation": 50 }, { "essential": true, "image": "httpd", "name": "app", "logConfiguration": { "logDriver":"awsfirelens", "options": { "Name": "cloudwatch", "region": "us-west-2", "log_group_name": "firelens-blog", "auto_create_group": "true", "log_stream_prefix": "from-fluent-bit", "log-driver-buffer-limit": "2097152" } }, "memoryReservation": 100 } ] }

Encaminhar logs para um fluxo de entrega do Amazon Kinesis Data Firehose

nota

Para obter mais exemplos, consulte Exemplos do FireLens do Amazon ECS no GitHub.

O exemplo de definição de tarefa a seguir demonstra como especificar uma configuração de log que encaminha logs para um fluxo de entrega do Amazon Kinesis Data Firehose. O fluxo de entrega do Kinesis Data Firehose já deve existir. Para obter mais informações, consulte Como criar um fluxo de entrega do Amazon Kinesis Firehose Data no Guia do desenvolvedor do Amazon Kinesis Data Firehose.

Nas opções de configuração de log, especifique o nome do fluxo de entrega e a região em que ele existe. Para obter mais informações, consulte Plugin do Fluent Bit para Amazon Kinesis Firehose.

{ "family": "firelens-example-firehose", "taskRoleArn": "arn:aws:iam::123456789012:role/ecs_task_iam_role", "containerDefinitions": [ { "essential": true, "image": "906394416424.dkr.ecr.us-west-2.amazonaws.com/aws-for-fluent-bit:stable", "name": "log_router", "firelensConfiguration": { "type": "fluentbit" }, "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "firelens-container", "awslogs-region": "us-west-2", "awslogs-create-group": "true", "awslogs-stream-prefix": "firelens" } }, "memoryReservation": 50 }, { "essential": true, "image": "httpd", "name": "app", "logConfiguration": { "logDriver":"awsfirelens", "options": { "Name": "firehose", "region": "us-west-2", "delivery_stream": "my-stream" } }, "memoryReservation": 100 } ] }

Encaminhamento de logs para um domínio do Amazon OpenSearch Service

nota

Para obter mais exemplos, consulte Exemplos do FireLens do Amazon ECS no GitHub.

O exemplo de definição de tarefa a seguir demonstra como especificar uma configuração de log que encaminha logs para um domínio do Amazon OpenSearch Service. O domínio do Amazon OpenSearch Service já deve existir. Para obter mais informações, consulte O que é o Amazon OpenSearch Service no Guia do desenvolvedor do Amazon OpenSearch Service.

Nas opções de configuração de log, especifique as opções de log necessárias para a Integração do OpenSearch Service. Para obter mais informações, consulte Fluent Bit para o Amazon OpenSearch Service.

{ "family": "firelens-example-opensearch", "taskRoleArn": "arn:aws:iam::123456789012:role/ecs_task_iam_role", "containerDefinitions": [ { "essential": true, "image": "906394416424.dkr.ecr.us-west-2.amazonaws.com/aws-for-fluent-bit:stable", "name": "log_router", "firelensConfiguration": { "type": "fluentbit" }, "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "firelens-container", "awslogs-region": "us-west-2", "awslogs-create-group": "true", "awslogs-stream-prefix": "firelens" } }, "memoryReservation": 50 }, { "essential": true, "image": "httpd", "name": "app", "logConfiguration": { "logDriver": "awsfirelens", "options": { "Name": "es", "Host": "vpc-fake-domain-ke7thhzo07jawrhmz6mb7ite7y.us-west-2.es.amazonaws.com", "Port": "443", "Index": "my_index", "Type": "my_type", "AWS_Auth": "On", "AWS_Region": "us-west-2", "tls": "On" } }, "memoryReservation": 100 } ] }

Analisar logs de contêiner que são JSON serializados

nota

Para obter mais exemplos, consulte Exemplos do FireLens do Amazon ECS no GitHub.

Ao iniciar com AWS for Fluent Bit versão 1.3, existe um analisador JSON incluído na AWS para a imagem do Fluent Bit. O exemplo a seguir mostra como fazer referência ao analisador JSON na configuração do FireLens da definição de tarefa.

"firelensConfiguration": { "type": "fluentbit", "options": { "config-file-type": "file", "config-file-value": "/fluent-bit/configs/parse-json.conf" } },

O arquivo de configuração do Fluent Bit analisa todos os logs no JSON (por exemplo, se os logs no seu destino se parecerem com o seguinte, sem análise JSON).

{ "source": "stdout", "log": "{\"requestID\": \"b5d716fca19a4252ad90e7b8ec7cc8d2\", \"requestInfo\": {\"ipAddress\": \"204.16.5.19\", \"path\": \"/activate\", \"user\": \"TheDoctor\"}}", "container_id": "e54cccfac2b87417f71877907f67879068420042828067ae0867e60a63529d35", "container_name": "/ecs-demo-6-container2-a4eafbb3d4c7f1e16e00" "ecs_cluster": "mycluster", "ecs_task_arn": "arn:aws:ecs:us-east-2:01234567891011:task/mycluster/3de392df-6bfa-470b-97ed-aa6f482cd7a6", "ecs_task_definition": "demo:7" "ec2_instance_id": "i-06bc83dbc2ac2fdf8" }

Com a análise JSON, o log terá a seguinte aparência:

{ "source": "stdout", "container_id": "e54cccfac2b87417f71877907f67879068420042828067ae0867e60a63529d35", "container_name": "/ecs-demo-6-container2-a4eafbb3d4c7f1e16e00" "ecs_cluster": "mycluster", "ecs_task_arn": "arn:aws:ecs:us-east-2:01234567891011:task/mycluster/3de392df-6bfa-470b-97ed-aa6f482cd7a6", "ecs_task_definition": "demo:7" "ec2_instance_id": "i-06bc83dbc2ac2fdf8" "requestID": "b5d716fca19a4252ad90e7b8ec7cc8d2", "requestInfo": { "ipAddress": "204.16.5.19", "path": "/activate", "user": "TheDoctor" } }

O JSON serializado é expandido para campos de nível superior na saída JSON final. Para obter mais informações sobre análise JSON, consulte Analisador na documentação do Fluent Bit.

Encaminhar para um Fluentd ou Fluent Bit externo

nota

Para obter mais exemplos, consulte Exemplos do FireLens do Amazon ECS no GitHub.

O exemplo de definição de tarefa a seguir demonstra como especificar uma configuração de log que encaminha logs para um host do Fluentd ou Fluent Bit externo. Especifique o host e o port para seu ambiente.

{ "family": "firelens-example-forward", "taskRoleArn": "arn:aws:iam::123456789012:role/ecs_task_iam_role", "containerDefinitions": [ { "essential": true, "image": "906394416424.dkr.ecr.us-west-2.amazonaws.com/aws-for-fluent-bit:stable", "name": "log_router", "firelensConfiguration": { "type": "fluentbit" }, "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "firelens-container", "awslogs-region": "us-west-2", "awslogs-create-group": "true", "awslogs-stream-prefix": "firelens" } }, "memoryReservation": 50 }, { "essential": true, "image": "httpd", "name": "app", "logConfiguration": { "logDriver":"awsfirelens", "options": { "Name": "forward", "Host": "fluentdhost", "Port": "24224" } }, "memoryReservation": 100 } ] }