Esempio di definizione di ECS attività Amazon: indirizza i log verso FireLens - Amazon Elastic Container Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Esempio di definizione di ECS attività Amazon: indirizza i log verso FireLens

Per utilizzare il routing personalizzato dei log con FireLens, è necessario specificare quanto segue nella definizione dell'attività:

  • Un contenitore di log router che contiene FireLens configurazione. Si consiglia di contrassegnare il container come essential.

  • Uno o più container dell'applicazione contenenti una configurazione del log che specifica il driver di log awsfirelens.

  • Un IAM ruolo dell'attività Amazon Resource Name (ARN) che contiene le autorizzazioni necessarie all'attività per instradare i log.

Quando si crea una nuova definizione di attività utilizzando il AWS Management Console, è disponibile una sezione di FireLens integrazione che semplifica l'aggiunta di un contenitore di log router. Per ulteriori informazioni, consulta Creazione di una definizione di ECS attività Amazon utilizzando la console.

Amazon ECS converte la configurazione dei log e genera la configurazione di output Fluentd o Fluent Bit. La configurazione di output è montata nel container di routing dei log in corrispondenza di /fluent-bit/etc/fluent-bit.conf for Fluent Bit e /fluentd/etc/fluent.conf for Fluentd.

Importante

FireLens ascolta sulla porta. 24224 Pertanto, per garantire che il FireLens log router non sia raggiungibile al di fuori dell'attività, non è necessario consentire il traffico 24224 in ingresso sulla porta del gruppo di sicurezza utilizzato dall'attività. Per attività che utilizzano la modalità di rete awsvpc, questo è il gruppo di sicurezza associato all'attività. Per le attività che utilizzano la modalità di host rete, questo è il gruppo di sicurezza associato all'EC2istanza Amazon che ospita l'attività. Per attività che utilizzano la modalità di rete bridge, non creare mappature di porte che utilizzano la porta 24224.

Per impostazione predefinita, Amazon ECS aggiunge campi aggiuntivi nelle voci di registro che aiutano a identificare l'origine dei log.

  • ecs_cluster: il nome del cluster di cui fa parte il processo.

  • ecs_task_arn— L'Amazon Resource Name completo (ARN) dell'attività di cui fa parte il contenitore.

  • ecs_task_definition: il nome della definizione di attività e la revisione che il processo sta utilizzando.

  • ec2_instance_id— L'ID dell'EC2istanza Amazon su cui è ospitato il contenitore. Questo campo è valido solo per le attività che utilizzano il tipo di EC2 avvio.

Puoi enable-ecs-log-metadata impostarlo su false se non desideri i metadati.

Il seguente esempio di definizione di attività definisce un contenitore di log router che utilizza Fluent Bit per indirizzare i log verso Logs. CloudWatch Definisce inoltre un contenitore di applicazioni che utilizza una configurazione di log per indirizzare i log verso Amazon Data Firehose e imposta la memoria utilizzata per bufferizzare gli eventi su 2 MiB.

Nota

Per ulteriori esempi di definizioni di attività, consulta ECS FireLensgli esempi di Amazon su GitHub.

{ "family": "firelens-example-firehose", "taskRoleArn": "arn:aws:iam::123456789012:role/ecs_task_iam_role", "containerDefinitions": [ { "name": "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": "httpd", "name": "app", "logConfiguration": { "logDriver": "awsfirelens", "options": { "Name": "firehose", "region": "us-west-2", "delivery_stream": "my-stream", "log-driver-buffer-limit": "2097152" } }, "memoryReservation": 100 } ] }

Le coppie chiave-valore specificate come opzioni nell'logConfigurationoggetto vengono utilizzate per generare il Fluentd oppure Fluent Bit configurazione di uscita. Di seguito è riportato un esempio di codice tratto da un Fluent Bit definizione dell'output.

[OUTPUT] Name firehose Match app-firelens* region us-west-2 delivery_stream my-stream
Nota

FireLens gestisce la match configurazione. Non si specifica la match configurazione nella definizione dell'attività.

Utilizza un file di configurazione personalizzato

È possibile specificare un file di configurazione personalizzato. Il formato del file di configurazione è il formato nativo per il router di log in uso. Per ulteriori informazioni, consulta Fluentd Config File Syntax e Fluent Bit Configuration File.

Nel file di configurazione personalizzato, per le attività che utilizzano la modalità di awsvpc rete bridge o, non impostate un input Fluentd o Fluent Bit forward perché TCP FireLens lo aggiunge alla configurazione di input.

Il tuo FireLens la configurazione deve contenere le seguenti opzioni per specificare un file di configurazione personalizzato:

config-file-type

Il percorso di origine del file di configurazione personalizzato. Le opzioni disponibili sono s3 o file.

Nota

Le attività ospitate su supportano AWS Fargate solo il tipo file di file di configurazione.

config-file-value

L'origine del file di configurazione personalizzato. Se viene utilizzato il tipo di file di s3 configurazione, il valore del file ARN di configurazione è l'intero bucket e il file Amazon S3. Se viene utilizzato il tipo di file di configurazione file, il valore del file di configurazione è il percorso completo del file di configurazione presente nell'immagine del container o in un volume montato nel container.

Importante

Quando si utilizza un file di configurazione personalizzato, è necessario specificare un percorso diverso da quello FireLens usi. Amazon ECS riserva il /fluent-bit/etc/fluent-bit.conf percorso del file per Fluent Bit e /fluentd/etc/fluent.conf per Fluentd.

L'esempio seguente mostra la sintassi richiesta quando si specifica una configurazione personalizzata.

Importante

Per specificare un file di configurazione personalizzato ospitato in Amazon S3, assicurati di aver creato un IAM ruolo di esecuzione delle attività con le autorizzazioni appropriate.

Di seguito viene illustrata la sintassi richiesta quando si specifica una configurazione personalizzata.

{ "containerDefinitions": [ { "essential": true, "image": "906394416424.dkr.ecr.us-west-2.amazonaws.com/aws-for-fluent-bit:stable", "name": "log_router", "firelensConfiguration": { "type": "fluentbit", "options": { "config-file-type": "s3 | file", "config-file-value": "arn:aws:s3:::amzn-s3-demo-bucket/fluent.conf | filepath" } } } ] }
Nota

Le attività ospitate su supportano AWS Fargate solo il tipo di file file di configurazione.