Logo Zéphyrnet

Livrer des journaux Amazon CloudWatch décompressés à Amazon S3 et Splunk à l'aide d'Amazon Data Firehose | Services Web Amazon

Date :

Vous pouvez utiliser Amazon Data Firehose pour regrouper et transmettre les événements de journaux de vos applications et services capturés dans Journaux Amazon CloudWatch à ta Service de stockage simple Amazon (Amazon S3) et les destinations Splunk, pour des cas d'utilisation tels que l'analyse de données, l'analyse de sécurité, le dépannage d'applications, etc. Par défaut, les CloudWatch Logs sont fournis sous forme d'objets compressés au format gzip. Vous souhaiterez peut-être que les données soient décompressées ou que les journaux soient transmis à Splunk, ce qui nécessite une saisie de données décompressées, à des fins de surveillance et d'audit des applications.

AWS a publié une fonctionnalité pour prendre en charge la décompression des journaux CloudWatch dans Firehose. Avec cette nouvelle fonctionnalité, vous pouvez spécifier une option dans Firehose pour décompresser CloudWatch Logs. Vous n'avez plus besoin d'effectuer de traitement supplémentaire à l'aide de AWS Lambda ou un post-traitement pour obtenir des journaux décompressés et peut fournir des données décompressées à Splunk. De plus, vous pouvez utiliser les fonctionnalités facultatives de Firehose telles que la conversion du format d'enregistrement pour convertir les CloudWatch Logs en Parquet ou ORC, et le partitionnement dynamique pour regrouper automatiquement les enregistrements en streaming en fonction des clés des données (par exemple, par mois) et transmettre les enregistrements groupés aux destinataires correspondants. Préfixes Amazon S3.

Dans cet article, nous voyons comment activer la fonction de décompression pour les destinations Splunk et Amazon S3. Nous commençons par Splunk puis Amazon S3 pour les nouveaux flux, puis nous abordons les étapes de migration pour profiter de cette fonctionnalité et simplifier votre pipeline existant.

Décompresser les journaux CloudWatch pour Splunk

Vous pouvez utiliser le filtre d'abonnement dans les groupes de journaux CloudWatch pour ingérer des données directement vers Firehose ou via Flux de données Amazon Kinesis.

Remarque: Pour la fonctionnalité de décompression CloudWatch Logs, vous avez besoin d'un Collecteur d'événements HTTP (HEC) entrée de données créée dans Splunk, avec la reconnaissance de l'indexeur activée et le Type de Source. Ceci est nécessaire pour mapper au bon type de source pour les journaux décompressés. Lors de la création de l'entrée HEC, incluez le mappage du type de source (par exemple, aws:cloudtrail).

Pour créer un flux de diffusion Firehose pour la fonctionnalité de décompression, procédez comme suit :

  1. Fournissez vos paramètres de destination et sélectionnez Point final brut comme type de point de terminaison.

Vous pouvez utiliser un point de terminaison brut pour la fonction de décompression afin d'ingérer des données d'événement brutes et au format JSON dans Splunk. Par exemple, les données des journaux de flux VPC sont des données brutes. AWS CloudTrail les données sont au format JSON.

  1. Saisissez le jeton HEC pour Jeton d'authentification.
  2. Pour activer la fonction de décompression, désélectionnez Transformer les enregistrements source avec AWS Lambda sous Transformer des enregistrements.
  3. Sélectionnez Activer la décompression ainsi que Activer l'extraction des messages en Décompresser les enregistrements sources d'Amazon CloudWatch Logs.
  4. Sélectionnez Activer l'extraction des messages pour la destination Splunk.

Fonction d'extraction de messages

Après décompression, les CloudWatch Logs sont au format JSON, comme le montre la figure suivante. Vous pouvez voir que les données décompressées contiennent des informations de métadonnées telles que logGroup, logStreamet subscriptionFilters, et les données réelles sont incluses dans le message champ sous logEvents (l'exemple suivant montre un exemple d'événements CloudTrail dans les CloudWatch Logs).

Lorsque vous activez l'extraction des messages, Firehose extraira uniquement le contenu des champs de message et concatènera le contenu avec une nouvelle ligne entre eux, comme le montre la figure suivante. Une fois les métadonnées CloudWatch Logs filtrées avec cette fonctionnalité, Splunk analysera avec succès les données de journal réelles et les mappera au type de source configuré dans le jeton HEC.

De plus, si vous souhaitez diffuser ces événements CloudWatch vers votre destination Splunk en temps réel, vous pouvez utiliser zéro mise en mémoire tampon, une nouvelle fonctionnalité lancée récemment dans Firehose. Vous pouvez utiliser cette fonctionnalité pour définir 0 seconde comme intervalle de tampon ou tout intervalle de temps compris entre 0 et 60 secondes pour transmettre les données à la destination Splunk en temps réel en quelques secondes.

Avec ces paramètres, vous pouvez désormais ingérer de manière transparente les données des journaux CloudWatch décompressées dans Splunk à l'aide de Firehose.

Décompresser les journaux CloudWatch pour Amazon S3

La fonctionnalité de décompression CloudWatch Logs pour une destination Amazon S3 fonctionne de manière similaire à Splunk, où vous pouvez désactiver la transformation des données à l'aide de Lambda et activer les options de décompression et d'extraction de messages. Vous pouvez utiliser la fonction de décompression pour écrire les données du journal sous forme de fichier texte vers la destination Amazon S3 ou les utiliser avec d'autres fonctionnalités de destination Amazon S3 telles que la conversion du format d'enregistrement à l'aide de Parquet ou ORC, ou le partitionnement dynamique pour partitionner les données.

Partitionnement dynamique avec décompression

Pour la destination Amazon S3, Firehose prend en charge le partitionnement dynamique, qui vous permet de partitionner en continu les données en streaming à l'aide de clés dans les données, puis de transmettre les données regroupées par ces clés dans les préfixes Amazon S3 correspondants. Cela vous permet d'exécuter des analyses hautes performances et rentables sur les données en streaming dans Amazon S3 à l'aide de services tels que Amazone Athéna, Amazon DME, Spectre Amazon Redshiftet Amazon QuickSight. Le partitionnement de vos données minimise la quantité de données analysées, optimise les performances et réduit les coûts de vos requêtes d'analyse sur Amazon S3.

Avec la nouvelle fonctionnalité de décompression, vous pouvez effectuer un partitionnement dynamique sans aucune fonction Lambda pour mapper les clés de partitionnement sur CloudWatch Logs. Vous pouvez activer le Analyse en ligne pour JSON option, analysez les données du journal décompressées et sélectionnez les clés de partitionnement. La capture d'écran suivante montre un exemple dans lequel l'analyse en ligne est activée pour les données du journal CloudTrail avec un schéma de partitionnement sélectionné pour l'ID de compte et la région AWS dans l'enregistrement CloudTrail.

Conversion de format d'enregistrement avec décompression

Pour les données CloudWatch Logs, vous pouvez utiliser la fonctionnalité de conversion de format d'enregistrement sur les données décompressées pour la destination Amazon S3. Firehose peut convertir le format des données d'entrée de JSON en Parquet Apache or Apache ORC avant de stocker les données dans Amazon S3. Parquet et ORC sont des formats de données en colonnes qui économisent de l'espace et permettent des requêtes plus rapides par rapport aux formats orientés lignes comme JSON. Vous pouvez utiliser les fonctionnalités de conversion de format d'enregistrement sous Transformer et convertir des enregistrements paramètres pour convertir les données du journal CloudWatch au format Parquet ou ORC. La capture d'écran suivante montre un exemple de paramètres de conversion de format d'enregistrement pour le format Parquet à l'aide d'un Colle AWS schéma et table pour les données du journal CloudTrail. Lorsque les paramètres de partitionnement dynamique sont configurés, la conversion du format d'enregistrement fonctionne avec le partitionnement dynamique pour créer les fichiers au format de sortie avec une structure de dossiers de partition dans le compartiment S3 cible.

Migrer les flux de diffusion existants pour la décompression

Si vous souhaitez migrer un flux Firehose existant qui utilise Lambda pour la décompression vers cette nouvelle fonctionnalité de décompression de Firehose, reportez-vous aux étapes décrites dans Activation et désactivation de la décompression.

Prix

La fonction de décompression Firehose décompresse les données et facture par Go de données décompressées. Pour comprendre les tarifs de décompression, reportez-vous à Tarification d'Amazon Data Firehose.

Nettoyer

Pour éviter des frais futurs, supprimez les ressources que vous avez créées dans l'ordre suivant :

  1. Supprimez le filtre d'abonnement CloudWatch Logs.
  2. Supprimez le flux de diffusion Firehose.
  3. Supprimez les compartiments S3.

Conclusion

La fonctionnalité de décompression et d'extraction de messages de Firehose simplifie la livraison des CloudWatch Logs vers les destinations Amazon S3 et Splunk sans nécessiter de développement de code ou de traitement supplémentaire. Pour une destination Amazon S3, vous pouvez utiliser les fonctionnalités de conversion Parquet ou ORC et de partitionnement dynamique sur les données décompressées.

Pour plus d'informations, reportez-vous aux ressources suivantes :


À propos des auteurs

Ranjit Kalidasan est un architecte de solutions senior chez Amazon Web Services basé à Boston, Massachusetts. Il est architecte de solutions partenaires et aide les partenaires ISV de sécurité à co-construire et à commercialiser des solutions avec AWS. Il apporte plus de 25 ans d'expérience dans les technologies de l'information, aidant des clients internationaux à mettre en œuvre des solutions complexes de sécurité et d'analyse. Vous pouvez vous connecter avec Ranjit sur LinkedIn.

Phaneendra Vuliyaragoli est responsable de la gestion des produits pour Amazon Data Firehose chez AWS. Dans ce rôle, Phaneendra dirige la stratégie produit et de commercialisation pour Amazon Data Firehose.

spot_img

Dernières informations

spot_img