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 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ù ApplicationName
est le nom de votre application.
/aws/kinesis-analytics/
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.
Configuration de la CloudWatch journalisation à l'aide de la 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 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.
Utiliser les 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 obtenir des informations sur l’utilisation d’un fichier JSON comme entrée pour une action d’API, consultez Exemple 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'CreateApplication
action 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:::amzn-s3-demo-bucket", "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'AddApplicationCloudWatchLoggingOption
action pour ajouter une option de CloudWatch journalisation à une application existante. Dans l'exemple, remplacez chacune user input placeholder
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'UpdateApplication
action pour modifier une option de CloudWatch journal existante. Dans l'exemple, remplacez chacune user input placeholder
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'DeleteApplicationCloudWatchLoggingOption
action pour supprimer une option de CloudWatch journal existante. Dans l'exemple, remplacez chacune user input
placeholder
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>
}
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:::amzn-s3-demo-bucket", "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 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 politique 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" } ] }
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'autorisation IAM 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 :
-
Application : les métriques s’appliquent à l’ensemble de l’application.
-
Tâche : les mesures sont adaptées à chaque tâche. Pour obtenir des informations sur les tâches, consultez Implémenter le dimensionnement des applications dans le service géré pour Apache Flink.
-
Opérateur : les métriques sont limitées à chaque opérateur. Pour obtenir des informations sur les opérateurs, consultez Transformez les données à l'aide d'opérateurs dans Managed Service pour Apache Flink avec l'API DataStream .
-
Parallélisme : les métriques sont limitées au parallélisme des applications. Vous ne pouvez définir ce niveau de métrique qu'à l'aide du MonitoringConfigurationUpdateparamètre de l' UpdateApplicationAPI. Vous ne pouvez pas définir ce niveau de métriques à l’aide de la console. Pour obtenir des informations sur le parallélisme, consultez Implémenter le dimensionnement des applications dans le service géré pour Apache Flink.
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 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 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.