Configurer la journalisation des applications dans le service géré pour Apache Flink - 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.

Configurer la journalisation des applications dans le service géré pour Apache Flink

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 deAPI, 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ù ApplicationName est 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 obtenir des informations sur les journaux d’application, consultez Contrôlez les niveaux de surveillance des applications.

Configurez la CloudWatch journalisation à l'aide du CLI

Pour ajouter une option de CloudWatch journalisation à l'aide du AWS CLI, vous devez effectuer les opérations suivantes :

  • 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 duAPI. 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.

Utiliser les options de CloudWatch journalisation des applications

Utilisez les API actions 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 JSON fichier en tant que saisie pour une API action, consultezExemple de code de service géré pour l'API Apache Flink.

Ajouter une option de CloudWatch journalisation 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) of the CloudWatch Log stream to add to the new application avec 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 user input placeholder avec 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 user input placeholder avec 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 journal d'une application

L'exemple suivant montre comment utiliser l'DeleteApplicationCloudWatchLoggingOptionaction pour supprimer une option de CloudWatch journal existante. Dans l'exemple, remplacez chaque user input placeholder avec 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> }

Définissez le 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 obtenir des informations sur les journaux d’application, consultez Contrôlez les 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 pour écrire 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 au rôle AWS Identity and Access Management (IAM) assumé par Managed Service for Apache Flink.

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

Politique d’approbation

Pour accorder à Managed Service for Apache Flink l'autorisation d'assumer un IAM rôle, vous pouvez associer la politique de confiance suivante au rôle d'exécution du service.

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

Politique 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'IAMautorisation suivante. Indiquez les noms de ressources Amazon (ARNs) 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:*", ] } ] }

Contrôlez les 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.

Appliquer les meilleures 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.

Effectuer le dépannage de la journalisation

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

  • Vérifiez que le IAM rôle et les politiques 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 pour écrire 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, consultez.

Utilisez CloudWatch Logs Insights

Après avoir activé la CloudWatch connexion à votre application, vous pouvez utiliser CloudWatch Logs Insights pour analyser les journaux de votre application. Pour de plus amples informations, veuillez consulter Analysez les journaux avec CloudWatch Logs Insights.