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 personalizzato dei log con FireLens, è necessario specificare quanto segue nella definizione dell'attività:

  • Un contenitore di log router che contiene un 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 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 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 ascolta sulla porta24224. 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' EC2 istanza Amazon 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' EC2 istanza 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 gli FireLensesempi di Amazon ECS 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 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, vedere Sintassi del file di configurazione Fluentd e configurazione YAML.

Nel file di configurazione personalizzato, per le attività che utilizzano la modalità di awsvpc rete bridge o, non impostate un input di inoltro Fluentd o Fluent Bit su TCP perché 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 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 FireLens usi. 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:::amzn-s3-demo-bucket/fluent.conf | filepath" } } } ] }
Nota

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