

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
<a name="cloudwatch-logs"></a>

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
<a name="cloudwatch-logs-console"></a>

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](#cloudwatch_levels).

## Configuration de la CloudWatch journalisation à l'aide de la CLI
<a name="cloudwatch-logs-api"></a>

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'[CreateApplication](https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_CreateApplication.html)action, ou ajoutez une option de journalisation à une application existante à l'aide de l'[AddApplicationCloudWatchLoggingOption](https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_AddApplicationCloudWatchLoggingOption.html)action.
+ 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
<a name="cloudwatch-logs-api-create"></a>

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](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html).

### Utiliser les options de CloudWatch journalisation des applications
<a name="adding_cloudwatch"></a>

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](api-examples.md).

#### Ajouter une option de CloudWatch journalisation lors de la création d'une application
<a name="add_cloudwatch_create"></a>

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 [https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_CreateApplication.html](https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_CreateApplication.html).

```
{
    "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
<a name="add_to_existing_app"></a>

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 [https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_AddApplicationCloudWatchLoggingOption.html](https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_AddApplicationCloudWatchLoggingOption.html).

```
{
   "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
<a name="update_existing"></a>

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 [https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_UpdateApplication.html](https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_UpdateApplication.html).

```
{
   "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
<a name="delete-log"></a>

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 [https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_DeleteApplicationCloudWatchLoggingOption.html](https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_DeleteApplicationCloudWatchLoggingOption.html).

```
{
   "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
<a name="cloudwatch-level"></a>

Pour définir le niveau de journalisation de l’application, utilisez le paramètre [https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_MonitoringConfiguration.html](https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_MonitoringConfiguration.html) de l’action [https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_CreateApplication.html](https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_CreateApplication.html) ou le paramètre [https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_MonitoringConfigurationUpdate.html](https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_MonitoringConfigurationUpdate.html) de l’action [https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_UpdateApplication.html](https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_UpdateApplication.html). 

Pour obtenir des informations sur les journaux d’application, consultez [Contrôlez les niveaux de surveillance des applications](#cloudwatch_levels).

##### Définissez le niveau de journalisation de l'application lors de la création d'une application
<a name="cloudwatch-level-create"></a>

L’exemple de demande d’action [https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_CreateApplication.html](https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_CreateApplication.html) 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
<a name="cloudwatch-level-update"></a>

L’exemple de demande d’action [https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_UpdateApplication.html](https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_UpdateApplication.html) 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
<a name="enable_putlogevents"></a>

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 Gestion des identités et des accès AWS (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](security-iam.md).

#### Politique d’approbation
<a name="enable_putlogevents_trust_policy"></a>

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.

------
#### [ JSON ]

****  

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

------

#### Politique d’autorisations
<a name="enable_putlogevents_permissions_policy"></a>

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.

------
#### [ JSON ]

****  

```
{
    "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
<a name="cloudwatch_levels"></a>

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](how-scaling.md).
+ **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](how-operators.md).
+ **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 [ MonitoringConfigurationUpdate](https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_MonitoringConfigurationUpdate.html)paramètre de l'[ UpdateApplication](https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_UpdateApplication.html)API. 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](how-scaling.md).

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
<a name="cloudwatch_bestpractices"></a>

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
<a name="cloudwatch_troubleshooting"></a>

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](#enable_putlogevents).
+ 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 [ListApplications](https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_ListApplications.html)actions [DescribeApplication](https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_DescribeApplication.html)ou.
+ 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[Métriques et dimensions dans le service géré pour Apache Flink](metrics-dimensions.md).

## Utilisez CloudWatch Logs Insights
<a name="cloudwatch_next"></a>

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](cloudwatch-logs-reading.md).