Configuration de la journalisation des applications - Service géré pour Apache Flink

Le service géré Amazon pour Apache Flink était auparavant connu sous le nom d'Amazon Kinesis Data Analytics pour Apache Flink.

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.

Configuration de la journalisation des applications

En ajoutant une option de CloudWatch journalisation Amazon à votre application Managed Service for Apache Flink, vous pouvez surveiller les événements liés à l'application ou les problèmes de configuration.

Cette rubrique décrit comment configurer votre application pour écrire les événements de l'application dans un flux CloudWatch Logs. Une option de CloudWatch journalisation est un ensemble de paramètres et d'autorisations d'application que votre application utilise pour configurer la manière dont elle écrit les événements de l'application dans les CloudWatch journaux. Vous pouvez ajouter et configurer une option de CloudWatch journalisation en utilisant le AWS Management Console ou le AWS Command Line Interface (AWS CLI).

Notez ce qui suit à propos de l'ajout d'une option de CloudWatch journalisation à votre application :

  • Lorsque vous ajoutez une option de CloudWatch journalisation à l'aide de la console, Managed Service for Apache Flink crée le groupe de CloudWatch journaux et le flux de journaux pour vous et ajoute les autorisations dont votre application a besoin pour écrire dans le flux de journaux.

  • Lorsque vous ajoutez une option de CloudWatch journalisation à l'aide de l'API, vous devez également créer le groupe de journaux et le flux de journaux de l'application, et ajouter les autorisations dont votre application a besoin pour écrire dans le flux de journaux.

Configuration de la CloudWatch journalisation à l'aide de la console

Lorsque vous activez la CloudWatch journalisation pour votre application dans la console, un groupe de CloudWatch journaux et un flux de journaux sont créés pour vous. De plus, la politique d'autorisation de votre application est mise à jour avec les autorisations d'écriture dans le flux.

Le service géré pour Apache Flink crée un groupe de journaux nommé selon la convention suivante, où ApplicationNameest le nom de votre application.

/AWS/KinesisAnalytics/ApplicationName

Le service géré pour Apache Flink crée un flux de journaux dans le nouveau groupe de journaux avec le nom suivant.

kinesis-analytics-log-stream

Vous définissez le niveau des métriques de surveillance de l'application et le niveau du journal de surveillance à l'aide de la section Niveau du journal de surveillance de la page Configurer l'application. Pour plus d'informations sur les journaux d'application, consultez Niveaux de surveillance des applications.

Configuration de la CloudWatch journalisation à l'aide de la CLI

Pour ajouter une option de CloudWatch journalisation à l'aide duAWS CLI, procédez comme suit :

  • Créez un groupe de CloudWatch journaux et un flux de journaux.

  • Ajoutez une option de journalisation lorsque vous créez une application à l'aide de l'CreateApplicationaction, ou ajoutez une option de journalisation à une application existante à l'aide de l'AddApplicationCloudWatchLoggingOptionaction.

  • Ajoutez des autorisations à la politique de votre application pour écrire dans les journaux.

Création d'un groupe de CloudWatch journaux et d'un flux de journaux

Vous créez un groupe de CloudWatch journaux et diffusez à l'aide de la console CloudWatch Logs ou de l'API. Pour plus d'informations sur la création d'un groupe de CloudWatch journaux et d'un flux de journaux, consultez la section Utilisation des groupes de journaux et des flux de journaux.

Utilisation des options de CloudWatch journalisation des applications

Utilisez les actions d'API suivantes pour ajouter une option de CloudWatch journal à une application nouvelle ou existante ou pour modifier une option de journal pour une application existante. Pour plus d'informations sur l'utilisation d'un fichier JSON comme entrée pour une action d'API, veuillez consulter Exemple de code pour d’API pour le service géré pour Apache Flink.

Ajouter une option de CloudWatch journal lors de la création d'une application

L'exemple suivant montre comment utiliser l'CreateApplicationaction pour ajouter une option de CloudWatch journal lorsque vous créez une application. Dans l'exemple, remplacez Amazon Resource Name (ARN) du flux de CloudWatch log à ajouter à la nouvelle application par vos propres informations. Pour plus d'informations sur cette action, consultez CreateApplication.

{ "ApplicationName": "test", "ApplicationDescription": "test-application-description", "RuntimeEnvironment": "FLINK-1_15", "ServiceExecutionRole": "arn:aws:iam::123456789123:role/myrole", "ApplicationConfiguration": { "ApplicationCodeConfiguration": { "CodeContent": { "S3ContentLocation":{ "BucketARN": "arn:aws:s3:::mybucket", "FileKey": "myflink.jar" } }, "CodeContentType": "ZIPFILE" } }, "CloudWatchLoggingOptions": [{ "LogStreamARN": "<Amazon Resource Name (ARN) of the CloudWatch log stream to add to the new application>" }] }

Ajouter une option de CloudWatch journalisation à une application existante

L'exemple suivant montre comment utiliser l'AddApplicationCloudWatchLoggingOptionaction pour ajouter une option de CloudWatch journalisation à une application existante. Dans l’exemple, remplacez chaque espace réservé pour l'entrée utilisateur par vos propres informations. Pour plus d'informations sur cette action, consultez AddApplicationCloudWatchLoggingOption.

{ "ApplicationName": "<Name of the application to add the log option to>", "CloudWatchLoggingOption": { "LogStreamARN": "<ARN of the log stream to add to the application>" }, "CurrentApplicationVersionId": <Version of the application to add the log to> }

Mettre à jour une option de CloudWatch journal existante

L'exemple suivant montre comment utiliser l'UpdateApplicationaction pour modifier une option de CloudWatch journal existante. Dans l’exemple, remplacez chaque espace réservé pour l'entrée utilisateur par vos propres informations. Pour plus d'informations sur cette action, consultez UpdateApplication.

{ "ApplicationName": "<Name of the application to update the log option for>", "CloudWatchLoggingOptionUpdates": [ { "CloudWatchLoggingOptionId": "<ID of the logging option to modify>", "LogStreamARNUpdate": "<ARN of the new log stream to use>" } ], "CurrentApplicationVersionId": <ID of the application version to modify> }

Supprimer une option de CloudWatch journalisation d'une application

L'exemple suivant montre comment utiliser l'DeleteApplicationCloudWatchLoggingOptionaction pour supprimer une option de CloudWatch journal existante. Dans l’exemple, remplacez chaque espace réservé pour l'entrée utilisateur par vos propres informations. Pour plus d'informations sur cette action, consultez DeleteApplicationCloudWatchLoggingOption.

{ "ApplicationName": "<Name of application to delete log option from>", "CloudWatchLoggingOptionId": "<ID of the application log option to delete>", "CurrentApplicationVersionId": <Version of the application to delete the log option from> }

Configuration du niveau de journalisation de l’application

Pour définir le niveau de journalisation de l’application, utilisez le paramètre MonitoringConfiguration de l’action CreateApplication ou le paramètre MonitoringConfigurationUpdate de l’action UpdateApplication.

Pour plus d'informations sur les journaux d'application, consultez Niveaux de surveillance des applications.

Définissez le niveau de journalisation de l'application lors de la création d'une application

L'exemple de demande d'action CreateApplication suivant définit le niveau du journalisation de l'application sur INFO.

{ "ApplicationName": "MyApplication", "ApplicationDescription": "My Application Description", "ApplicationConfiguration": { "ApplicationCodeConfiguration":{ "CodeContent":{ "S3ContentLocation":{ "BucketARN":"arn:aws:s3:::mybucket", "FileKey":"myflink.jar", "ObjectVersion":"AbCdEfGhIjKlMnOpQrStUvWxYz12345" } }, "CodeContentType":"ZIPFILE" }, "FlinkApplicationConfiguration": "MonitoringConfiguration": { "ConfigurationType": "CUSTOM", "LogLevel": "INFO" } }, "RuntimeEnvironment": "FLINK-1_15", "ServiceExecutionRole": "arn:aws:iam::123456789123:role/myrole" }
Mettre à jour le niveau de journalisation de l’application

L'exemple de demande d'action UpdateApplication suivant définit le niveau du journalisation de l'application sur INFO.

{ "ApplicationConfigurationUpdate": { "FlinkApplicationConfigurationUpdate": { "MonitoringConfigurationUpdate": { "ConfigurationTypeUpdate": "CUSTOM", "LogLevelUpdate": "INFO" } } } }

Ajouter des autorisations d'écriture dans le flux de CloudWatch log

Le service géré pour Apache Flink a besoin d'autorisations pour y écrire des erreurs de configuration. CloudWatch Vous pouvez ajouter ces autorisations AWS Identity and Access Management au (rôle IAM) assumé par le service géré pour Apache Flink.

Pour plus d'informations sur l'utilisation de rôle IAM avec le service géré pour Apache Flink, consultez Gestion de l'identité et des accès dans le service géré Amazon pour Apache Flink.

Stratégie d'approbation

Pour autoriser le service géré pour Apache Flink à assumer un rôle IAM, vous pouvez attacher la stratégie d’approbation au rôle d’exécution du service.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "kinesisanlaytics.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Stratégie d'autorisations

Pour autoriser une application à écrire les événements du journal CloudWatch depuis une ressource Managed Service for Apache Flink, vous pouvez utiliser la politique d'autorisation IAM suivante. Fournissez les Amazon Resource Names (ARN) corrects pour votre groupe de journaux et votre flux.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt0123456789000", "Effect": "Allow", "Action": [ "logs:PutLogEvents", "logs:DescribeLogGroups", "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:us-east-1:123456789012:log-group:my-log-group:log-stream:my-log-stream*", "arn:aws:logs:us-east-1:123456789012:log-group:my-log-group:*", "arn:aws:logs:us-east-1:123456789012:log-group:*", ] } ] }

Niveaux de surveillance des applications

Vous contrôlez la génération des messages du journal de l'application à l'aide du niveau de surveillance des métriques et du niveau de surveillance des journaux de l'application.

Le niveau de surveillance des métriques de l'application contrôle la granularité des messages du journal. Les niveaux de surveillance des métriques sont définis comme suit :

Le niveau de surveillance des journaux de l'application contrôle la verbosité du journal de l'application. Les niveaux de surveillance des journaux sont définis comme suit :

  • Erreur : événements catastrophiques potentiels de l'application.

  • Avertissement : situations potentiellement dangereuses de l'application.

  • Information : événements de défaillance informatifs et temporaires de l'application. Nous vous recommandons d'utiliser ce niveau de journalisation.

  • Débogage : événements informatifs précis qui sont particulièrement utiles pour déboguer une application. Remarque : utilisez ce niveau uniquement à des fins de débogage temporaire.

Bonnes pratiques de journalisation

Nous recommandons que votre application utilise le niveau de journalisation Information. Nous recommandons ce niveau pour garantir que vous voyez les erreurs Apache Flink, qui sont journalisées au niveau Information plutôt qu'au niveau Erreur.

Nous vous recommandons de n'utiliser le niveau Débogage que temporairement lorsque vous étudiez les problèmes liés à l'application. Revenez au niveau Information lorsque le problème est résolu. L'utilisation du niveau de journalisation Débogage affectera de manière significative les performances de votre application.

Une journalisation excessive peut également avoir un impact significatif sur les performances de l’application. Nous vous recommandons de ne pas écrire d'entrée de journal pour chaque enregistrement traité, par exemple. Une journalisation excessive peut entraîner de graves blocages dans le traitement des données et entraîner une contre-pression lors de la lecture des données provenant des sources.

Journalisation de dépannage

Si les journaux de l’application ne sont pas écrits dans le flux de journaux, vérifiez les points suivants :

  • Vérifiez que le rôle et les politiques IAM de votre application sont corrects. La politique de votre application nécessite les autorisations suivantes pour accéder à votre flux de journaux :

    • logs:PutLogEvents

    • logs:DescribeLogGroups

    • logs:DescribeLogStreams

    Pour plus d’informations, consultez Ajouter des autorisations d'écriture dans le flux de CloudWatch log.

  • Vérifiez que votre application est en cours d'exécution Pour vérifier le statut de votre application, consultez la page de votre application dans la console ou utilisez les ListApplicationsactions DescribeApplicationou.

  • Surveillez CloudWatch les métriques, par exemple downtime pour diagnostiquer d'autres problèmes liés aux applications. Pour plus d'informations sur CloudWatch les mesures de lecture, consultezMétriques et dimensions dans le service géré pour Apache Flink.

Étape suivante

Après avoir activé la CloudWatch connexion à votre application, vous pouvez utiliser CloudWatch Logs Insights pour analyser les journaux de votre application. Pour plus d’informations, consultez Analyse des journaux avec CloudWatch Logs Insights.