Utilisation du pilote du journal awslogs - AWS Batch

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation du pilote du journal awslogs

Par défaut, AWS Batch permet au pilote de awslogs journal d'envoyer des informations de journal à CloudWatch Logs. Vous pouvez utiliser cette fonctionnalité pour afficher les différents journaux de vos conteneurs en un seul endroit pratique et éviter que les journaux de vos conteneurs n'occupent de l'espace disque sur vos instances de conteneurs. Cette rubrique vous aide à configurer le pilote de awslogs journal dans vos définitions de tâches.

Note

Dans la AWS Batch console, vous pouvez configurer le pilote de awslogs journal dans la section Configuration de la journalisation lorsque vous créez une définition de tâche.

Note

Le type d'informations enregistrées par les conteneurs dans le cadre de votre tâche dépend principalement de leur ENTRYPOINT commande. Par défaut, les journaux capturés affichent la sortie de commande que vous voyez normalement dans un terminal interactif si vous avez exécuté le conteneur localement, à savoir les flux STDOUT et d'STDERRE/S. Le pilote de awslogs journal transmet simplement ces journaux de Docker à CloudWatch Logs. Pour plus d'informations sur la façon dont les journaux Docker sont traités, et notamment sur les autres façons de capturer différentes données de fichiers ou différents flux, consultez View logs for a container or service dans la documentation Docker.

Pour envoyer des journaux système depuis vos instances de conteneur vers CloudWatch Logs, consultezUtilisation CloudWatch des journaux avec AWS Batch. Pour plus d'informations sur CloudWatch les journaux, consultez la section Surveillance des fichiers journaux et CloudWatch des quotas de journaux dans le guide de l'utilisateur Amazon CloudWatch Logs.

Options du pilote du journal awslogs disponibles

Le pilote de awslogs journal prend en charge les options suivantes dans les définitions de AWS Batch tâches. Pour plus d'informations, consultez la section Pilote de journalisation des CloudWatch journaux dans la documentation Docker.

awslogs-region

Obligatoire : non

Spécifiez la région dans laquelle le pilote de awslogs journal doit envoyer vos journaux Docker. Par défaut, la région utilisée est la même que celle de la tâche. Vous pouvez choisir d'envoyer tous vos journaux provenant de tâches situées dans différentes régions vers une seule région dans CloudWatch Logs. Cela leur permet d'être tous visibles à partir d'un seul endroit. Vous pouvez également les séparer par région pour une approche plus précise. Toutefois, lorsque vous choisissez cette option, assurez-vous que les groupes de journaux spécifiés existent dans la région que vous avez spécifiée.

awslogs-group

Obligatoire : Facultatif

Avec awslogs-group cette option, vous pouvez spécifier le groupe de journaux auquel le pilote de awslogs journal envoie ses flux de journaux. Si cela n'est pas spécifié, aws/batch/job est utilisé.

awslogs-stream-prefix

Obligatoire : Facultatif

Avec awslogs-stream-prefix cette option, vous pouvez associer un flux de journal au préfixe spécifié et à l'ID de tâche Amazon ECS de la AWS Batch tâche à laquelle appartient le conteneur. Si vous spécifiez un préfixe avec cette option, le format du flux de journaux est le suivant :

prefix-name/default/ecs-task-id
awslogs-datetime-format

Obligatoire : non

Cette option définit un modèle de démarrage à plusieurs lignes au format strftime Python. Un message de journal se compose d'une ligne qui correspond au modèle et de toutes les lignes suivantes qui ne correspondent pas au modèle. Ainsi, la ligne mise en correspondance est le délimiteur entre les messages de journalisation.

Ce format peut, par exemple, servir à analyser une sortie comme une pile de vidage, laquelle pourrait, dans le cas contraire, être consignée en plusieurs entrées. Le modèle adéquat permet de la capturer dans une seule entrée.

Pour plus d'informations, consultez awslogs-datetime-format.

Cette option est toujours prioritaire si awslogs-datetime-format et awslogs-multiline-pattern sont configurés.

Note

La journalisation multiligne effectue l'analyse et la mise en correspondance des expressions régulières de tous les messages de journalisation. Cela peut avoir un impact négatif sur les performances de journalisation.

awslogs-multiline-pattern

Obligatoire : non

Cette option définit un modèle de démarrage à plusieurs lignes à l'aide d'une expression régulière. Un message de journal se compose d'une ligne qui correspond au modèle et de toutes les lignes suivantes qui ne correspondent pas au modèle. Ainsi, la ligne correspondante est le délimiteur entre les messages du journal.

Pour plus d'informations, consultez awslogs-multiline-patternla documentation Docker.

Cette option est ignorée si awslogs-datetime-format est également configuré.

Note

La journalisation multiligne effectue l'analyse et la mise en correspondance des expressions régulières de tous les messages de journalisation. Cela peut avoir un impact négatif sur les performances de journalisation.

awslogs-create-group

Obligatoire : non

Spécifiez si vous voulez que le groupe de journaux soit automatiquement créé. Si cette option n'est pas spécifiée, l'emplacement par défaut est false.

Avertissement

Cette option n'est pas recommandée. Nous vous recommandons de créer le groupe de CloudWatch journaux à l'avance à l'aide de l'action Logs CreateLogGroupAPI car chaque tâche tente de créer le groupe de journaux, ce qui augmente le risque d'échec de la tâche.

Note

La politique IAM de votre rôle d'exécution doit inclure l'logs:CreateLogGroupautorisation avant toute tentative d'utilisationawslogs-create-group.

Spécification d'une configuration de journal dans la définition de votre tâche

Par défaut, AWS Batch active le pilote de awslogs journal. Cette section décrit comment personnaliser la configuration du awslogs journal pour une tâche. Pour plus d'informations, consultez Création d'une définition de tâche à nœud unique .

Les extraits de code JSON de configuration de journal suivants contiennent un logConfiguration objet spécifié pour chaque tâche. L'un concerne une WordPress tâche qui envoie des journaux à un groupe de journaux appeléawslogs-wordpress, et l'autre concerne un conteneur MySQL qui envoie des journaux à un groupe de journaux appeléawslogs-mysql. Les deux conteneurs utilisent le préfixe de flux de journal awslogs-example.

"logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "awslogs-wordpress", "awslogs-stream-prefix": "awslogs-example" } }
"logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "awslogs-mysql", "awslogs-stream-prefix": "awslogs-example" } }

Dans la AWS Batch console, la configuration du journal pour la définition de wordpress tâche est spécifiée comme indiqué dans l'image suivante.

Configuration des journaux de la console

Après avoir enregistré une définition de tâche avec le pilote de awslogs journal dans une configuration de journal de définition de tâche, vous pouvez soumettre une tâche avec cette définition de tâche pour commencer à envoyer des CloudWatch journaux à Logs. Pour plus d'informations, consultez Soumettre une offre d'emploi.