Esempio di definizione di attività Amazon ECS: 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 attività Amazon ECS: indirizza i log verso FireLens

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

  • Un container router di log contenente una configurazione FireLens. 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 nome della risorsa Amazon (ARN) del ruolo IAM dell'attività contenente le autorizzazioni richieste dall'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 attività Amazon ECS utilizzando la console.

Amazon ECS converte la configurazione del 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 è in ascolto sulla porta 24224. Pertanto, per garantire che il FireLens log router non sia raggiungibile al di fuori dell'operazione, 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 attività che utilizzano la modalità di rete host, questo è il gruppo di sicurezza associato all'istanza Amazon EC2 che ospita l'attività. Per attività che utilizzano la modalità di rete bridge, non creare mappature di porte che utilizzano la porta 24224.

Di default, Amazon ECS aggiunge ulteriori campi nelle voci di log che consentono di identificare l'origine dei log.

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

  • ecs_task_arn: il nome della risorsa Amazon (ARN) completo dell'attività a cui appartiene il container.

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

  • ec2_instance_id: l'ID dell'istanza Amazon EC2 su cui il container è ospitato. Questo campo è valido solo per processi che utilizzano il tipo di avvio EC2.

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

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 gli FireLensesempi di Amazon ECS su GitHub.

{ "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", "options": { "enable-ecs-log-metadata": "true" } }, "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", "log-driver-buffer-limit": "2097152" } }, "memoryReservation": 100 } ] }

Le coppie chiave/valore specificate come opzioni nell'oggetto logConfiguration vengono utilizzate per generare la configurazione di output Fluentd o Fluent Bit. Di seguito è riportato un esempio di codice da una definizione di output Fluent Bit.

[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 rete bridge o awsvpc, non è necessario impostare un input di inoltro Fluentd o Fluent Bit su TCP perché FireLens lo aggiunge alla configurazione di input.

La configurazione di FireLens 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 configurazione s3, il valore del file di configurazione è l'ARN completo del file e del bucket 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 utilizzato da FireLens. Amazon ECS riserva il percorso file /fluent-bit/etc/fluent-bit.conf for Fluent Bit e /fluentd/etc/fluent.conf for 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 ruolo IAM di esecuzione dell'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:::DOC-EXAMPLE-BUCKET/fluent.conf | filepath" } } } ] }
Nota

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