Vous pouvez activer le logging à partir de votre distribution Amazon CloudFront pour envoyer le log d'accès Web à New Relic.
Options d'envoi du log
Il existe deux options pour envoyer le log depuis CloudFront : le logging standard ou le log temps réel.
Standard logs sont envoyés depuis CloudFront vers un bucket S3 où ils sont stockés. Vous utiliserez ensuite notre déclencheur AWS Lambda pour envoyer le log de S3 à New Relic. Consultez la documentation Amazon CloudFront pour configurer et utiliser le log standard (log d’accès). Vous trouverez ici des informations détaillées sur la création de votre bucket S3 et la définition des autorisations appropriées. Le log standard inclut tous les champs de données et est envoyé à S3 puis à New Relic toutes les 5 minutes. Pour obtenir des instructions détaillées sur la façon de configurer le log standard dans la console Amazon et de les envoyer à New Relic via notre déclencheur S3 Lambda , consultez la section Activer le logging standard.
Real-time logs sont envoyés quelques secondes après la réception requests à l'aide d'un consommateur Kinesis Data Stream et d'un Kinesis Data Firehose pour livraison à New Relic. Consultez la documentation Amazon CloudFront pour configurer le log temps réel. Les logs temps réels sont configurables et vous permettent de configurer un taux d'échantillonnage (quel pourcentage de log à envoyer), de sélectionner des champs spécifiques à recevoir dans les enregistrements log et de définir des comportements de cache spécifiques (modèles de chemin) pour lesquels vous souhaitez recevoir le log. le log temps réel nécessite également un bucket de sauvegarde S3 pour envoyer soit toutes les données, soit uniquement les données ayant échoué. Ainsi, pour activer le log des temps réels, vous devez également suivre nos instructions pour créer un bucket S3. Pour des instructions détaillées sur la façon de configurer le log standard dans la console Amazon et de les envoyer à New Relic via notre déclencheur S3 Lambda , consultez la section Activer le log temps réel.
Pour les deux options, vous pouvez utiliser nos règles d'analyse log des intégrées pour analyser automatiquement votre log d'accès CloudFront et notre quickstart dashboard pour obtenir immédiatement des informations détaillées sur vos données. Pour que les règles d'analyse intégrées fonctionnent et remplissent les données dans le widget du quickstart dashboard fourni, vous devez configurer logtype
l'attribut comme défini dans les instructions. Pour plus de détails sur l'analyse du temps réel log si vous ne sélectionnez que certains des champs de logging, consultez la section Analyse
Créer un bucket S3 pour stocker le log CloudFront
Pour activer le log standard ou le log temps réel pour votre distribution CloudFront, vous devez d'abord créer un bucket S3 à utiliser pour stocker le log d'accès CloudFront :
- Dans la console de gestion AWS, choisissez Services > All services > S3.
- Sélectionnez Create bucket.
- Saisissez un Bucket name et sélectionnez le AWS region de votre choix. (Notez que votre bucket S3 doit se trouver dans la même région que votre fonction Lambda que vous créez dans la section suivante si vous utilisez le logging standard.)
- Dans la section Object ownership , sélectionnez ACLs enabled.
- Sélectionnez Create bucket.
Vous pouvez désormais activer le logging standard ou en temps réel. Pour obtenir des instructions sur ces options, continuez à lire.
Activer le logging standard
Mettez à jour votre distribution CloudFront pour activer le log standard :
- Dans la console de gestion AWS, choisissez Services > All Services > CloudFront.
- Cliquez sur votre distribution ID. Dans l’onglet Général, sélectionnez Edit dans la section Paramètres.
- Dans la section Standard logging , sélectionnez On pour activer le logging et afficher les paramètres de configuration du logging.
- Pour S3 bucket, recherchez et choisissez le nom du bucket S3 que vous avez créé ci-dessus.
- Facultatif : vous pouvez ajouter un préfixe log comme
cloudfront_logs
. - Choisissez Save changes.
Dans les cinq minutes, vous devriez commencer à voir le fichier de log apparaître dans votre compartiment S3 avec le format de nom de fichier suivant :
<optional prefix>/<distribution ID>.YYYY-MM-DD-HH.unique-ID.gz
Ensuite, vous devez installer et configurer notre fonction AWS Lambda NewRelic-log-ingestion-s3
pour envoyer le log d'accès dans S3 à New Relic. Vous aurez besoin d'une seule fonction Lambda pour le log Amazon CloudFront afin de pouvoir définir la LOG_TYPE
variable d'environnement appropriée : cela vous permet d'utiliser nos règles d'analyse intégrées à CloudFront et le quickstart dashboard. Si vous avez déjà cette fonction Lambda installée dans une région et que vous l'utilisez pour envoyer d'autres logs S3 à New Relic (par exemple un log ALB/NLB), vous devrez réinstaller la fonction Lambda dans une autre région. De plus, comme indiqué précédemment, votre bucket S3 pour stocker le log d'accès et votre fonction Lambda pour envoyer le log S3 à New Relic doivent se trouver dans la même région.
Pour effectuer ces étapes :
- Suivez les instructions ici pour configurer AWS Lambda pour l'envoi du log depuis S3.
- Une fois la fonction Lambda installée, sélectionnez Functions > NewRelic-s3-log-ingestion.
- Sélectionnez le bouton + Add trigger sous S3.
- Pour Trigger Configuration, sélectionnez S3.
- Pour Bucket, recherchez et choisissez le bucket S3 que vous avez créé ci-dessus.
- Dans la section Recursive invocation , cochez la case d’accusé de réception puis choisissez Add.
- Dans l’onglet Configuration de la fonction, choisissez l’option Environment variables sur la gauche.
- Sélectionnez Edit et pour
LOG_TYPE
entrezcloudfront-web
. - Sélectionnez Save.
Dans cinq minutes, vous devriez commencer à voir votre log dans l’interface utilisateur du log. Pour confirmer que vous recevez le log, vous pouvez rechercher logtype:cloudfront-web
dans la barre de recherche de l'interface utilisateur du log ou exécuter une requête NRQL avec quelque chose comme FROM Log SELECT * WHERE logtype='cloudfront-web'
Activer le log des temps réels
Pour activer le logging en temps réel pour votre distribution CloudFront, vous devez d'abord créer un flux de données Kinesis pour recevoir le log CloudFront :
- Dans la console de gestion AWS, choisissez Services > Kinesis.
- Sélectionnez Data streams, puis Create data stream.
- Entrez un Data stream name. Par exemple,
CloudFront-DataStream
. - Sélectionnez un mode de capacité de flux de données de votre choix.
- Sélectionnez Create data stream.
- Dans la section Consumers , sélectionnez Process with delivery stream.
- Pour le Destination, sélectionnez New Relic.
- Entrez un Delivery stream name. Par exemple,
CloudFront-DeliveryStream
. - Dans la section des paramètres Destination , pour l’URL du point de terminaison HTTP, sélectionnez New Relic logs - US ou New Relic logs - EU.
- Pour API key, saisissez le de votre compte New Relic.
- Sélectionnez Add parameter.
- Si vous sélectionnez tous les champs pour la connexion à l'étape 21 ci-dessous, pour Key, entrez
logtype
et pour Value , entrezcloudfront-rtl
. Si vous prévoyez de sélectionner un sous-ensemble de champs pour la connexion à l’étape 21 ci-dessous, saisissezcloudfront-rtl-custom
. Si vous choisissez de ne pas sélectionner tous les champs, consultez la section Analyse des logs en temps réel ci-dessous pour obtenir des informations sur la façon de créer une règle d'analyse personnalisée pour votre log. - Dans la section Backup settings , vous pouvez choisir soit Failed data uniquement, soit All data pour l'option Source record backup in Amazon S3 , selon votre préférence.
- Pour le bucket de sauvegarde S3, sélectionnez Browse pour rechercher et sélectionner le nom du bucket S3 que vous avez créé ci-dessus pour stocker le log CloudFront.
- Choisissez Create delivery stream.
Ensuite, créez une configuration de logging en temps réel et attachez-la à votre distribution CloudFront :
- Dans la console de gestion AWS, choisissez Services > CloudFront.
- Dans le Telemetry section à gauche, sélectionnez Logs.
- Cliquez sur l’onglet Real-time configurations , puis choisissez Create configuration.
- Entrez un nom de configuration. Par exemple :
CloudFront-RealTimeLogs
. - Saisissez un taux d’échantillonnage compris entre
1
et100
. - Pour Fields, sélectionnez All fields ou choisissez les champs que vous souhaitez inclure dans votre log.
- Pour Endpoint, sélectionnez le nom du flux de données que vous avez créé à l’étape 3. Par exemple :
CloudFront-DataStream
. - Dans la section Distrubutions , sélectionnez votre ID de distribution CloudFront.
- Pour Cache behaviors, cochez Default (*).
- Choisissez Create configuration.
Dans quelques minutes, vous devriez commencer à voir votre log dans notre interface utilisateur de log. Pour confirmer que vous recevez le log des temps réels, vous pouvez rechercher logtype:cloudfront-rtl*
dans la barre de recherche de l'interface utilisateur du log ou via une requête NRQL comme FROM Log SELECT * WHERE logtype LIKE 'cloudfront-rtl%'
temps réel analyse des logs
Notre règle d'analyse intégrée pour le temps réel log suppose que tous les champs seront logarithmiques. Si vous choisissez d' log uniquement un sous-ensemble de champs, vous devez définir une règle d'analyse personnalisée qui correspond à votre format log . Ceci est nécessaire pour que le log soit analysé correctement et pour utiliser notre quickstart dashboard.
Pour créer une règle d’analyse personnalisée, sélectionnez Parsing dans la section Manage data de l’interface utilisateur du log.
- Pour le Rule name, entrez
CloudFront custom parsing rule
. - Pour Filter logs based on NRQL, entrez
logtype='cloundfront-rtl-custom'
. - Mettez à jour la logique d'analyse Grok ci-dessous afin qu'elle inclue only les champs que vous avez sélectionnés dans la configuration du log temps réel. Par exemple, si vous choisissez de ne pas inclure le champ
cs_headers
, supprimez%{SPACE}%{NOTSPACE:cs_headers}%
de Grok, et ainsi de suite.^%{NOTSPACE:timestamp}.\d{3}%{SPACE}%{NOTSPACE:c_ip}%{SPACE}%{NUMBER:time_to_first_byte:INT}%{SPACE}%{NUMBER:sc_status:INT}%{SPACE}%{NUMBER:sc_bytes:INT}%{SPACE}%{WORD:cs_method}%{SPACE}%{NOTSPACE:cs_protocol}%{SPACE}%{NOTSPACE:cs_host}%{SPACE}%{NOTSPACE:cs_uri_stem}%{SPACE}%{NUMBER:cs_bytes:INT}%{SPACE}%{NOTSPACE:x_edge_location}%{SPACE}%{NOTSPACE:x_edge_request_id}%{SPACE}%{NOTSPACE:x_host_header}%{SPACE}%{NUMBER:time_taken:INT}%{SPACE}%{NOTSPACE:cs_protocol_version}%{SPACE}%{NOTSPACE:cs_ip_version}%{SPACE}%{NOTSPACE:cs_user_agent}%{SPACE}%{NOTSPACE:cs_referer}%{SPACE}%{NOTSPACE:cs_cookie}%{SPACE}%{NOTSPACE:cs_uri_query}%{SPACE}%{NOTSPACE:x_edge_response_result_type}%{SPACE}%{NOTSPACE:x_forwarded_for}%{SPACE}%{NOTSPACE:ssl_protocol}%{SPACE}%{NOTSPACE:ssl_cipher}%{SPACE}%{NOTSPACE:x_edge_result_type}%{SPACE}%{NOTSPACE:fle_encrypted_fields}%{SPACE}%{NOTSPACE:fle_status}%{SPACE}%{NOTSPACE:sc_content_type}%{SPACE}%{NOTSPACE:sc_content_len}%{SPACE}%{NOTSPACE:sc_range_start}%{SPACE}%{NOTSPACE:sc_range_end}%{SPACE}%{NUMBER:c_port:INT}%{SPACE}%{NOTSPACE:x_edge_detailed_result_type}%{SPACE}%{NOTSPACE:c_country}%{SPACE}%{NOTSPACE:cs_accept_encoding}%{SPACE}%{NOTSPACE:cs_accept}%{SPACE}%{NOTSPACE:cache_behavior_path_pattern}%{SPACE}%{NOTSPACE:cs_headers}%{SPACE}%{NOTSPACE:cs_header_names}%{SPACE}%{NOTSPACE:cs_headers_count}$ - Collez le Grok mis à jour dans la section logique d'analyse, puis sélectionnez Test grok pour valider que votre analyseur fonctionne.
- Activez la règle puis choisissez Save parsing rule.

Une capture d'écran de la configuration d'analyse personnalisée de CloudFront.
Quelle est la prochaine étape ?

Notre quickstart pour le log d'accès Amazon CloudFront inclut un dashboard prédéfini.
Voici quelques idées pour les prochaines étapes :
- Démarrez en quelques minutes avec un dashboard prédéfini pour voir les mesures clés de vos logs d'accès Amazon CloudFront. Accédez au quickstart de Amazon CloudFront access logs et cliquez sur Install now.
- Explorez les données de logging sur votre plateforme avec notre interface utilisateur de logs.
- Obtenez une visibilité plus approfondie sur les données de performances de votre application et de votre plateforme en transmettant votre log avec nos capacités de logs en contexte .
- Configurer des alertes.
- Interrogez vos données et créez des dashboards.
Désactiver le transfert de log
Pour désactiver les fonctionnalités de transfert de log , il existe deux options. Si vous souhaitez simplement arrêter d'envoyer le log S3 à New Relic, vous pouvez supprimer le déclencheur S3 dans la fonction Lambda NewRelic-log-ingestion-s3
. Si vous souhaitez désactiver complètement le log d'accès Amazon CloudFront, vous devrez supprimer le déclencheur et désactiver le logging dans les paramètres généraux de la distribution CloudFront.