

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.

# Envoyer CloudWatch les logs à Firehose
<a name="writing-with-cloudwatch-logs"></a>

CloudWatch Les événements des journaux peuvent être envoyés à Firehose à l'aide de filtres d' CloudWatch abonnement. Pour plus d'informations, consultez la section [Filtres d'abonnement avec Amazon Data Firehose](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/SubscriptionFilters.html#FirehoseExample).

CloudWatch Les événements des journaux sont envoyés à Firehose au format gzip compressé. Si vous souhaitez transmettre des événements de journal décompressés aux destinations de Firehose, vous pouvez utiliser la fonction de décompression de Firehose pour décompresser automatiquement les journaux. CloudWatch 

**Important**  
À l'heure actuelle, Firehose ne prend pas en charge la livraison de CloudWatch journaux vers la destination Amazon OpenSearch Service, car Amazon CloudWatch combine plusieurs événements de journal dans un seul enregistrement Firehose et Amazon OpenSearch Service ne peut pas accepter plusieurs événements de journal dans un seul enregistrement. Vous pouvez également envisager d'[utiliser un filtre d'abonnement pour Amazon OpenSearch Service in CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_OpenSearch_Stream.html).

# Décompressez les journaux CloudWatch
<a name="writing-with-cloudwatch-logs-decompression"></a>

[Si vous utilisez Firehose pour envoyer des CloudWatch journaux et que vous souhaitez transmettre des données décompressées à votre destination de flux Firehose, utilisez la [conversion du format de données](https://docs.aws.amazon.com/firehose/latest/dev/data-transformation.html) Firehose (Parquet, ORC) ou le partitionnement dynamique.](https://docs.aws.amazon.com/firehose/latest/dev/dynamic-partitioning.html) Vous devez activer la décompression pour votre flux Firehose.

Vous pouvez activer la décompression à l'aide du AWS Management Console AWS Command Line Interface ou AWS SDKs.

**Note**  
Si vous activez la fonction de décompression sur un flux, utilisez ce flux exclusivement pour les filtres d'abonnement CloudWatch Logs, et non pour Vended Logs. Si vous activez la fonction de décompression sur un flux utilisé pour ingérer à la fois les CloudWatch journaux et les journaux vendus, l'ingestion des journaux vendus dans Firehose échoue. Cette fonctionnalité de décompression ne concerne que les CloudWatch journaux.

# Extraire le message après décompression des journaux CloudWatch
<a name="Message_extraction"></a>

Lorsque vous activez la décompression, vous pouvez également activer l'extraction des messages. Lors de l'extraction de messages, Firehose filtre toutes les métadonnées, telles que le propriétaire, le groupe de journaux, le flux de journaux, etc., des enregistrements décompressés des CloudWatch journaux et ne diffuse que le contenu contenu dans les champs de message. Si vous transmettez des données vers une destination Splunk, vous devez activer l'extraction des messages pour que Splunk puisse analyser les données. Vous trouverez ci-dessous des exemples de sorties après décompression avec et sans extraction de message.

Figure 1 : Exemple de sortie après décompression sans extraction de message :

```
{
 "owner": "111111111111",
 "logGroup": "CloudTrail/logs",
 "logStream": "111111111111_CloudTrail/logs_us-east-1",
 "subscriptionFilters": [
 "Destination"
 ],
 "messageType": "DATA_MESSAGE",
 "logEvents": [
 {
 "id": "31953106606966983378809025079804211143289615424298221568",
 "timestamp": 1432826855000,
 "message": "{\"eventVersion\":\"1.03\",\"userIdentity\":{\"type\":\"Root1\"}"
 },
 {
 "id": "31953106606966983378809025079804211143289615424298221569",
 "timestamp": 1432826855000,
 "message": "{\"eventVersion\":\"1.03\",\"userIdentity\":{\"type\":\"Root2\"}"
 },
 {
 "id": "31953106606966983378809025079804211143289615424298221570",
 "timestamp": 1432826855000,
 "message": "{\"eventVersion\":\"1.03\",\"userIdentity\":{\"type\":\"Root3\"}"
 }
 ]
}
```

Figure 2 : Exemple de sortie après décompression avec extraction du message :

```
{"eventVersion":"1.03","userIdentity":{"type":"Root1"}
{"eventVersion":"1.03","userIdentity":{"type":"Root2"}
{"eventVersion":"1.03","userIdentity":{"type":"Root3"}
```

# Activer la décompression sur un nouveau stream Firehose depuis la console
<a name="writing-with-cloudwatch-logs-decompression-enabling-console"></a>

**Pour activer la décompression sur un nouveau stream Firehose à l'aide du AWS Management Console**

1. [Connectez-vous à la console Kinesis AWS Management Console et ouvrez-la à https://console.aws.amazon.com l'adresse /kinesis.](https://console.aws.amazon.com/kinesis)

1. Choisissez **Amazon Data Firehose** dans le volet de navigation.

1. Choisissez **Créer un flux Firehose**.

1. Sous **Choisir la source et la destination**  
****Source****  
La source de votre stream Firehose. Choisissez l'une des sources suivantes :  
   + **Direct PUT** — Choisissez cette option pour créer un flux Firehose dans lequel les applications du producteur écrivent directement. Pour obtenir la liste des AWS services, agents et services open source intégrés à Direct PUT dans Firehose, consultez [cette](create-name.md) section.
   + Flux **Kinesis : choisissez cette option pour configurer un flux** Firehose qui utilise un flux de données Kinesis comme source de données. Vous pouvez ensuite utiliser Firehose pour lire facilement les données d'un flux de données Kinesis existant et les charger dans des destinations. Pour plus d'informations, consultez [Écrire dans Firehose à l'aide de Kinesis](https://docs.aws.amazon.com/firehose/latest/dev/writing-with-kinesis-streams.html) Data Streams  
****Destination****  
La destination de votre stream Firehose. Sélectionnez l’une des méthodes suivantes :  
   + Amazon S3
   + Splunk

1. Sous **Nom du flux Firehose**, entrez le nom de votre flux.

1. (Facultatif) Sous **Transformer les enregistrements** :
   + Dans la section **Décompresser les enregistrements source depuis Amazon CloudWatch Logs**, sélectionnez **Activer la décompression**.
   + Si vous souhaitez utiliser l'extraction des messages après la décompression, choisissez **Activer l'extraction des messages**.

# Activer la décompression sur un flux Firehose existant
<a name="enabling-decompression-existing-stream-console"></a>

Cette section fournit des instructions pour activer la décompression sur les streams Firehose existants. Il couvre deux scénarios : les flux dont le traitement Lambda est désactivé et les flux dont le traitement Lambda est déjà activé. Les sections suivantes décrivent les step-by-step procédures propres à chaque cas, notamment la création ou la modification de fonctions Lambda, la mise à jour des paramètres Firehose et les CloudWatch mesures de surveillance pour garantir la mise en œuvre réussie de la fonction de décompression Firehose intégrée.

## Activation de la décompression lorsque le traitement Lambda est désactivé
<a name="enabling-decomp-exist-stream-lam-disable"></a>

Pour activer la décompression sur un flux Firehose existant avec le traitement Lambda désactivé, vous devez d'abord activer le traitement Lambda. Cette condition n'est valable que pour les flux existants. Les étapes suivantes montrent comment activer la décompression sur des flux existants pour lesquels le traitement Lambda n'est pas activé.

1. créer une fonction Lambda ; Vous pouvez soit créer un transfert d'enregistrement fictif, soit utiliser ce [plan](https://github.com/aws-samples/aws-kinesis-firehose-resources/tree/main/blueprints/kinesis-firehose-cloudwatch-logs-processor) pour créer une nouvelle fonction Lambda. 

1. Mettez à jour votre flux Firehose actuel pour activer le traitement Lambda et utilisez la fonction Lambda que vous avez créée pour le traitement.

1. Une fois que vous avez mis à jour le flux avec la nouvelle fonction Lambda, revenez à la console Firehose et activez la décompression.

1. Désactivez le traitement Lambda que vous avez activé à l'étape 1. Vous pouvez désormais supprimer la fonction que vous avez créée à l'étape 1.

## Activation de la décompression lorsque le traitement Lambda est activé
<a name="enabling-decomp-exist-stream-lam-enable"></a>

Si vous possédez déjà un flux Firehose doté d'une fonction Lambda, vous pouvez le remplacer par la fonction de décompression Firehose pour effectuer la décompression. Avant de continuer, vérifiez le code de votre fonction Lambda pour vérifier qu'il effectue uniquement la décompression ou l'extraction des messages. La sortie de votre fonction Lambda doit ressembler aux exemples illustrés sur la [figure 1 ou la figure 2](Message_extraction.md). Si le résultat est similaire, vous pouvez remplacer la fonction Lambda en procédant comme suit.

1. [Remplacez votre fonction Lambda actuelle par ce plan.](https://github.com/aws-samples/aws-kinesis-firehose-resources/tree/main/blueprints/kinesis-firehose-cloudwatch-logs-processor) La nouvelle fonction Blueprint Lambda détecte automatiquement si les données entrantes sont compressées ou décompressées. Il n'effectue la décompression que si ses données d'entrée sont compressées.

1. Activez la décompression à l'aide de l'option Firehose intégrée pour la décompression.

1. Activez CloudWatch les métriques pour votre stream Firehose si ce n'est pas déjà fait. Surveillez la métrique `CloudWatchProcessorLambda_IncomingCompressedData` et attendez qu'elle passe à zéro. Cela confirme que toutes les données d'entrée envoyées à votre fonction Lambda sont décompressées et que la fonction Lambda n'est plus requise.

1. Supprimez la transformation de données Lambda car vous n'en avez plus besoin pour décompresser votre flux.

# Désactiver la décompression sur le stream Firehose
<a name="writing-with-cloudwatch-logs-decompression-disabling-console"></a>

****

Pour désactiver la décompression d'un flux de données à l'aide du AWS Management Console

1. [Connectez-vous à la console Kinesis AWS Management Console et ouvrez-la à https://console.aws.amazon.com l'adresse /kinesis.](https://console.aws.amazon.com/kinesis)

1. Choisissez **Amazon Data Firehose** dans le volet de navigation.

1. Choisissez le stream Firehose que vous souhaitez modifier.

1. Sur la page des **détails du stream Firehose**, choisissez l'onglet **Configuration**.

1. Dans la section **Transformer et convertir des enregistrements**, choisissez **Modifier**.

1. Sous **Décompresser les enregistrements source depuis Amazon CloudWatch Logs**, décochez **Activer la décompression**, puis sélectionnez **Enregistrer** les modifications.

# Résoudre les problèmes de décompression dans Firehose
<a name="decomp-faq"></a>

Le tableau suivant montre comment Firehose gère les erreurs lors de la décompression et du traitement des données, notamment en fournissant des enregistrements à un compartiment S3 d'erreur, en enregistrant les erreurs et en émettant des métriques. Il explique également le message d'erreur renvoyé pour les opérations de saisie de données non autorisées.


| Problème | Solution | 
| --- | --- | 
| Qu'advient-il des données sources en cas d'erreur lors de la décompression ? |  Si Amazon Data Firehose ne parvient pas à décompresser l'enregistrement, celui-ci est livré tel quel (au format compressé) au compartiment S3 d'erreur que vous avez spécifié lors de la création du stream Firehose. Outre l'enregistrement, l'objet livré inclut également un code d'erreur et un message d'erreur et ces objets seront livrés à un préfixe de compartiment S3 appelé`decompression-failed`. Firehose continuera à traiter les autres enregistrements après l'échec de la décompression d'un enregistrement.  | 
| Qu'advient-il des données sources en cas d'erreur dans le pipeline de traitement après une décompression réussie ? |  Si Amazon Data Firehose échoue dans les étapes de traitement après la décompression, telles que le partitionnement dynamique et la conversion du format de données, l'enregistrement est envoyé au format compressé dans le compartiment S3 d'erreur que vous avez spécifié lors de la création du stream Firehose. Outre l'enregistrement, l'objet livré inclut également un code d'erreur et un message d'erreur.  | 
| Comment êtes-vous informé en cas d'erreur ou d'exception ? |  En cas d'erreur ou d'exception lors de la décompression, si vous configurez les CloudWatch journaux, Firehose enregistrera les messages CloudWatch d'erreur dans les journaux. En outre, Firehose envoie des métriques à des CloudWatch métriques que vous pouvez surveiller. Vous pouvez également éventuellement créer des alarmes en fonction des métriques émises par Firehose.  | 
| Que se passe-t-il lorsque put les opérations ne proviennent pas CloudWatch des journaux ? | Lorsque le client puts ne provient pas de CloudWatch Logs, le message d'erreur suivant est renvoyé : <pre>Put to Firehose failed for AccountId: <accountID>, FirehoseName:  <firehosename> because the request is not originating from allowed source types.</pre> | 
| Quelles mesures Firehose émet-elle pour la fonction de décompression ? | Firehose émet des métriques pour la décompression de chaque enregistrement. Vous devez sélectionner la période (1 min), la statistique (somme), la plage de dates pour obtenir le nombre d'DecompressedRecordséchecs ou de réussites ou DecompressedBytes d'échecs. Pour de plus amples informations, veuillez consulter [CloudWatch Métriques de décompression des journaux](monitoring-with-cloudwatch-metrics.md#decompression-metrics-cw). | 