amazon cloudwatch logs...vous pouvez utiliser amazon cloudwatch logs pour surveiller, stocker et...

161
Amazon CloudWatch Logs Guide de l'utilisateur

Upload: others

Post on 25-May-2020

22 views

Category:

Documents


0 download

TRANSCRIPT

Amazon CloudWatch LogsGuide de l'utilisateur

Amazon CloudWatch Logs Guide de l'utilisateur

Amazon CloudWatch Logs: Guide de l'utilisateurCopyright © 2020 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's,in any manner that is likely to cause confusion among customers, or in any manner that disparages or discreditsAmazon. All other trademarks not owned by Amazon are the property of their respective owners, who may or may notbe affiliated with, connected to, or sponsored by Amazon.

Amazon CloudWatch Logs Guide de l'utilisateur

Table of ContentsPrésentation de Amazon CloudWatch Logs ............................................................................................ 1

Fonctions ................................................................................................................................... 1Services AWS connexes .............................................................................................................. 2Tarification ................................................................................................................................. 2Concepts ................................................................................................................................... 3

Configuration ...................................................................................................................................... 4S'inscrire à Amazon Web Services (AWS) ...................................................................................... 4Connectez-vous à la console Amazon CloudWatch .......................................................................... 4Configuration de l'interface de ligne de commande .......................................................................... 4

Démarrer ........................................................................................................................................... 5Utilisation de l'agent CloudWatch unifié pour démarrer avec CloudWatch Logs ..................................... 5Utilisation de l'ancien agent CloudWatch Logs pour démarrer avec CloudWatch Logs ............................ 6

Conditions préalables pour l'agent CloudWatch Logs ............................................................... 6Démarrage rapide : Installation de l'agent sur une instance EC2 Linux en cours d'exécution ............ 6Démarrage rapide : Installation de l'agent sur une instance EC2 Linux au lancement .................... 11Lancement rapide : utilisez CloudWatch Logs avec des instances Windows Server 2016 .............. 13Lancement rapide : Utilisation de CloudWatch Logs avec des instances Windows Server 2012 etWindows Server 2008 ........................................................................................................ 21Démarrage rapide : Installation de l'agent avec AWS OpsWorks ............................................... 28Rapporter l'état de l'agent CloudWatch Logs ......................................................................... 32Démarrage de l'agent CloudWatch Logs ............................................................................... 33Arrêter l'agent CloudWatch Logs : ....................................................................................... 33

Lancement rapide : Utilisation de AWS CloudFormation pour démarrer avec CloudWatch Logs .............. 34Analyse des données de journal avec CloudWatch Logs Insights ............................................................. 35

Champs de journaux et détectés pris en charge ............................................................................ 35Champs des journaux JSON .............................................................................................. 37

Didacticiel : Exécution et modification d'un exemple de requête ........................................................ 38Exécuter un exemple de requête ......................................................................................... 38Modifier l'exemple de requête ............................................................................................. 38Ajouter une commande de filtre à l'exemple de requête .......................................................... 39

Didacticiel : Exécuter une requête avec une fonction d'agrégation ..................................................... 40Didacticiel : Exécuter une requête qui génère une visualisation groupée par champs de journal .............. 40Didacticiel : Exécuter une requête qui produit une visualisation chronologique ..................................... 41Syntaxe de requête ................................................................................................................... 41

Commandes de requête prises en charge ............................................................................ 41Expressions régulières dans la commande de filtre ................................................................ 45Utilisation d'alias dans les requêtes ..................................................................................... 46Utilisation de commentaires dans des requêtes ..................................................................... 46Opérations et fonctions prises en charge .............................................................................. 46

Visualisation des données du journal dans des graphiques .............................................................. 52Visualisation des données en séries chronologiques ............................................................... 52Visualisation des données de journal regroupées par champs .................................................. 53

Exemples de requêtes ............................................................................................................... 54Ajouter une requête au tableau de bord ou exporter les résultats de la requête ................................... 56Afficher les requêtes en cours d'exécution ou l'historique des requêtes ............................................. 57

Gestion des groupes de journaux et des flux de journaux ....................................................................... 58Créer un groupe de journaux ...................................................................................................... 58Affichage des données de journal ............................................................................................... 58Modification de la rétention des données de journaux ..................................................................... 59Balisage des groupes de journaux ............................................................................................... 59

Principes de base des balises ............................................................................................ 60Suivi des coûts à l'aide du balisage ..................................................................................... 60Restrictions liées aux balises .............................................................................................. 60Balisage des groupes de journaux à l'aide de l'AWS CLI ......................................................... 61

iii

Amazon CloudWatch Logs Guide de l'utilisateur

Balisage des groupes de journaux à l'aide de l'API CloudWatch Logs ........................................ 61Chiffrement des données de journal ............................................................................................ 62

Restrictions ...................................................................................................................... 62Étape 1 : Création d'une CMK AWS KMS ............................................................................. 62Étape 2 : Définition des autorisations sur la clé CMK .............................................................. 63Étape 3 : Association d'un groupe de journaux à une clé CMK ................................................. 64Étape 4 : Dissociation d'un groupe de journaux d'une clé CMK ................................................. 64Clés KMS et contexte de chiffrement ................................................................................... 64

Recherche et filtrage des données de journaux ..................................................................................... 67Concepts ................................................................................................................................. 67Syntaxe de filtre et de modèle .................................................................................................... 68

Etablissement de correspondances de termes dans les événements de journaux ........................ 68Configuration de la façon dont la valeur de métrique change lorsque des correspondances sonttrouvées .......................................................................................................................... 75Publication de valeurs numériques trouvées dans des entrées de journal ................................... 75

Création de filtres de métriques .................................................................................................. 76Exemple : Comptage des événements de journaux ................................................................ 76Exemple : Comptage des occurrences d'un terme .................................................................. 77Exemple : Comptage du nombre de codes HTTP 404 ............................................................. 78Exemple : Comptage du nombre de codes HTTP 4xx ............................................................. 80Exemple : Extraction des champs d'un journal Apache ............................................................ 81

Liste des filtres de métriques ...................................................................................................... 82Suppression d'un filtre métrique .................................................................................................. 83Recherche dans des données de journaux au moyen de modèles de filtres ........................................ 83

Recherche dans des entrées de journal à l'aide de la console .................................................. 83Recherche dans des entrées de journal à l'aide de l'AWS CLI .................................................. 84Transition des métriques aux journaux ................................................................................. 84Dépannage ...................................................................................................................... 85

Traitement en temps réel des données de journaux avec les abonnements ................................................ 86Concepts ................................................................................................................................. 86Utilisation de filtres d'abonnements .............................................................................................. 87

Exemple 1 : Filtres d'abonnements avec Kinesis .................................................................... 87Exemple 2 : Filtres d'abonnements avec AWS Lambda ........................................................... 91Exemple 3 : Filtres d'abonnements avec Amazon Kinesis Data Firehose .................................... 93

Partage de données de journaux entre comptes avec les abonnements ............................................. 98Création d'une destination .................................................................................................. 99Création d'un filtre d'abonnement ....................................................................................... 102Validation du flux des événements de journaux .................................................................... 103Modification de l'adhésion à la destination au moment de l'exécution ....................................... 104

Envoi de journaux directement à Amazon S3 ...................................................................................... 106Exportation de données de journal vers Amazon S3 ............................................................................. 107

Concepts ............................................................................................................................... 107Exportation de données de journal vers Amazon S3 à l'aide de la console ........................................ 108

Étape 1 : Créer un compartiment Amazon S3 ...................................................................... 108Étape 2 : Créer un utilisateur IAM avec l'accès complet à Amazon S3 et CloudWatch Logs .......... 108Étape 3 : Définir les autorisations sur un compartiment Amazon S3 ......................................... 109Étape 4 : Créer une tâche d'exportation .............................................................................. 110

Exportation des données de journal vers Amazon S3 à l'aide de l'AWS CLI ...................................... 111Étape 1 : Créer un compartiment Amazon S3 ...................................................................... 111Étape 2 : Créer un utilisateur IAM avec l'accès complet à Amazon S3 et CloudWatch Logs .......... 111Étape 3 : Définir les autorisations sur un compartiment Amazon S3 ......................................... 112Étape 4 : Créer une tâche d'exportation .............................................................................. 114Étape 5 : Décrire les tâches d'exportation ........................................................................... 114Étape 6 : Annuler une tâche d'exportation ........................................................................... 115

Diffusion de données vers Amazon ES ............................................................................................... 116Prérequis ............................................................................................................................... 116Souscription d'un groupe de journaux à Amazon ES ..................................................................... 116

iv

Amazon CloudWatch Logs Guide de l'utilisateur

Services AWS qui publient des journaux ............................................................................................. 118Sécurité ......................................................................................................................................... 120

Protection des données ............................................................................................................ 120Chiffrement au repos ....................................................................................................... 121Chiffrement en transit ...................................................................................................... 121

Gestion des identités et des accès ............................................................................................ 121Authentification ............................................................................................................... 122Contrôle d'accès ............................................................................................................. 123Présentation de la gestion des accès ................................................................................. 123Utilisation des stratégies basées sur une identité (stratégies IAM) ........................................... 127Référence des autorisations CloudWatch Logs .................................................................... 132

Validation de la conformité ....................................................................................................... 135Résilience .............................................................................................................................. 135Sécurité de l'infrastructure ........................................................................................................ 135Points de terminaison de VPC d'interface ................................................................................... 136

Disponibilité .................................................................................................................... 136Création d'un point de terminaison de VPC pour CloudWatch Logs ......................................... 137Test de la connexion entre votre VPC et CloudWatch Logs .................................................... 137Contrôle de l'accès à votre point de terminaison de VPC CloudWatch Logs .............................. 138Prise en charge des clés de contexte de VPC ..................................................................... 138

Journalisation des appels d'API ......................................................................................................... 139Informations CloudWatch Logs dans CloudTrail ........................................................................... 139Présentation des entrées des fichiers journaux ............................................................................ 140

Référence de l'agent ........................................................................................................................ 142Fichier de configuration de l'agent ............................................................................................. 142Utilisation de l'agent CloudWatch Logs avec les proxys HTTP ........................................................ 146Cloisonnement des fichiers de configuration de l'agent CloudWatch Logs ......................................... 147FAQ sur l'agent CloudWatch Logs ............................................................................................. 147

Surveillance de l'utilisation avec des métriques CloudWatch .................................................................. 150Indicateurs CloudWatch Logs .................................................................................................... 150Dimensions pour les métriques CloudWatch Logs ........................................................................ 151

Quotas de service ........................................................................................................................... 152Historique du document ................................................................................................................... 154Glossaire AWS ............................................................................................................................... 156

v

Amazon CloudWatch Logs Guide de l'utilisateurFonctions

Présentation de Amazon CloudWatchLogs

Vous pouvez utiliser Amazon CloudWatch Logs pour surveiller, stocker et consulter vos fichiers journauxà partir d'instances Amazon Elastic Compute Cloud (Amazon EC2), AWS CloudTrail, Route 53 et d’autressources.

CloudWatch Logs vous permet de centraliser les journaux de tous vos systèmes ainsi que les applicationset les services AWSque vous utilisez au sein d’un seul service hautement évolutif. Vous pouvez ensuitefacilement les consulter, y effectuer des recherches pour identifier des codes d’erreur spécifiques ou desmodèles, les filtrer en fonction de champs spécifiques ou les archiver en toute sécurité à des fins d’analyseultérieure. Quelle que soit leur source, CloudWatch Logs vous permet de consulter l’ensemble de vosjournaux dans le cadre d’un flux d’événements unique et cohérent, ordonnée par durée, et vous pouvezles interroger et les trier en fonctions d’autres critères, les regrouper par champs spécifiques, créer descalculs personnalisés avec un langage de requête puissant et visualiser les données de journaux dans destableaux de bord.

Fonctions• Interroger vos données de journaux – Vous pouvez utiliser CloudWatch Logs Insights pour rechercher

et analyser de façon interactive vos données de journaux. Vous pouvez exécuter des requêtes pourrépondre plus rapidement et plus efficacement aux problèmes opérationnels. CloudWatch Logs Insightsinclut un langage de requête spécialement conçu avec quelques commandes simples mais puissantes.Nous fournissons des exemples de requête, des descriptions de commande, la saisie automatique derequête et la découverte des champs de journal pour vous aider à démarrer. Des exemples de requêtesont inclus pour plusieurs types de journaux de service AWS. Consultez Analyse des données de journalavec CloudWatch Logs Insights (p. 35) pour démarrer.

• Surveiller les journaux à partir des instances Amazon EC2 – Vous pouvez utiliser CloudWatch Logs poursurveiller les applications et les systèmes à l'aide des données de journaux. Par exemple, CloudWatchLogs peut suivre le nombre d'erreurs survenues dans vos journaux d'application et vous envoyer unenotification lorsque le taux d'erreurs dépasse le seuil que vous avez spécifié. CloudWatch Logs utilisevos données de journaux pour la surveillance et, par conséquent, aucune modification du code n'estrequise. Vous pouvez par exemple surveiller les journaux d'applications pour rechercher les conditionslittérales spécifiques (comme « NullReferenceException ») ou compter le nombre d'occurrencesd'une condition littérale à une position particulière dans les données de journaux (comme les codesd'état « 404 » dans un journal d'accès Apache). Lorsque le terme que vous recherchez est trouvé,CloudWatch Logs signale les données à une métrique CloudWatch que vous spécifiez. Les données desjournaux sont chiffrées, pendant le transit et pendant le repos. Consultez Démarrer avec CloudWatchLogs (p. 5) pour démarrer.

• Surveiller les événements consignés AWS CloudTrail – Vous pouvez créer des alarmes dansCloudWatch et recevoir des notifications d'activité d'API particulière saisies par CloudTrail, puis utiliserces notifications à des fins de dépannage. Pour commencer, consultez Envoi d'événements CloudTrail àCloudWatch Logs dans le AWS CloudTrail User Guide.

• Conservation des journaux – Par défaut, les journaux sont conservés indéfiniment et n'expirent jamais.Vous pouvez ajuster la stratégie de conservation pour chaque groupe de journaux. Elle peut êtreindéfinie ou comprise entre 10 ans et un jour.

1

Amazon CloudWatch Logs Guide de l'utilisateurServices AWS connexes

• Archiver les données des journaux – Vous pouvez utiliser CloudWatch Logs pour stocker les donnéesde vos journaux dans un stockage hautement durable. L'agent CloudWatch Logs permet de déplacerrapidement et facilement des fichiers journaux inversés et non inversés hors d'un hôte et dans le servicede journalisation. Vous pouvez ensuite accéder aux données brutes des journaux lorsque vous en avezbesoin.

• Journaliser les requêtes DNS Route 53 – Vous pouvez utiliser CloudWatch Logs pour enregistrerles informations sur les requêtes DNS reçues par Route 53. Pour plus d'informations, consultezJournalisation des requêtes DNS dans le Amazon Route 53 Manuel du développeur.

Services AWS connexesLes services suivants sont utilisés en association avec CloudWatch Logs :

• AWS CloudTrail est un service web qui vous permet de surveiller les appels de l'API CloudWatch Logspour votre compte, y compris ceux effectués par AWS Management Console, l'AWS Command LineInterface (AWS CLI) et d'autres services. Lorsque la journalisation CloudTrail est activée, CloudTrailenregistre les appels d'API dans votre compte et remet les fichiers journaux dans le compartimentAmazon S3 que vous spécifiez. Chaque fichier journal peut contenir un ou plusieurs enregistrements,selon le nombre d'actions à effectuer afin de satisfaire une demande. Pour plus d'informations sur AWSCloudTrail, consultez Présentation de AWS CloudTrail dans le AWS CloudTrail User Guide. Pour obtenirun exemple du type de données écrites par CloudWatch dans les fichiers journaux CloudTrail, reportez-vous à Journalisation des appels d'API Amazon CloudWatch Logs dans AWS CloudTrail (p. 139).

• AWS Identity and Access Management (IAM) est un service web qui vous permet de contrôler unaccès sécurisé aux ressources AWS de vos utilisateurs. Utilisez IAM pour contrôler qui peut utiliservos ressources AWS (authentification) et quelles ressources pourront être utilisées de quelle manière(autorisation). Pour plus d'informations, consultez Qu'est-ce qu'IAM ? dans le IAM Guide de l'utilisateur.

• Amazon Kinesis Data Streams est un service Web que vous pouvez utiliser pour une extraction etun regroupement de données rapides et en continu. Le type de données utilisées inclut des donnéesde journaux d'infrastructure informatique, des journaux d'applications, des réseaux sociaux, des fluxde données du marché et des données de flux de clics Web. Comme le temps de réponse pour larécupération et le traitement des données est en temps réel, le traitement est généralement léger. Pourplus d'informations, consultez Qu'est-ce que Amazon Kinesis Data Streams ? dans le Amazon KinesisData Streams Guide du développeur.

• AWS Lambda est un service Web que vous pouvez utiliser pour créer des applications qui apporterontune réponse rapide à de nouvelles informations. Chargez votre code d'application sous la forme defonctions Lambda pour qu'Lambda l'exécute sur une infrastructure de calcul à haute disponibilité eteffectue toute l'administration des ressources de calcul, y compris la maintenance du serveur et dusystème d'exploitation, la fourniture des capacités et leur mise à l'échelle automatique, le déploiement ducode et des correctifs de sécurité, ainsi que la surveillance et la journalisation du code. Il vous suffit defournir votre code dans l'un des langages pris en charge par Lambda. Pour plus d'informations, consultezla section Qu'est-ce que AWS Lambda ? du AWS Lambda Developer Guide.

TarificationLorsque vous vous inscrivez à AWS, vous pouvez démarrer gratuitement avec CloudWatch Logs grâce àl'offre gratuite AWS.

Les tarifs standard s'appliquent pour les journaux stockés par les autres services qui utilisent CloudWatchLogs (par exemple, les journaux de flux Amazon VPC et les journaux Lambda).

Pour plus d'informations, consultez Tarification Amazon CloudWatch.

2

Amazon CloudWatch Logs Guide de l'utilisateurConcepts

Concepts Amazon CloudWatch LogsLa terminologie et les concepts indispensables à la compréhension et à l'utilisation de CloudWatch Logssont décrits ci-dessous.

Événements de journaux

Un événement de journal est l'enregistrement d'une activité effectué par l'application ou la ressourcesous surveillance. L'enregistrement d'événement de journal destiné à CloudWatch Logs contient deuxéléments : l'horodatage du moment où l'événement s'est produit et le message brut de l'événement.Les messages d'événements doivent être codé en UTF-8.

Flux de journaux

Un flux de journal est une séquence d'événements de journaux qui partagent la même source. Plusprécisément, un flux de journal est généralement destiné à représenter la séquence des événementsprovenant de l'instance d'application ou de la ressource sous surveillance. Par exemple, un flux dejournal peut être associé à un journal des accès Apache sur un hôte spécifique. Lorsque vous n'avezplus besoin d'un flux de journaux, vous pouvez le supprimer à l'aide de la commande aws logs delete-log-stream. De plus, AWS peut supprimer les flux de journaux vides qui ont plus de 2 mois.

Groupes de journaux

Les groupes de journaux définissent des groupes de flux de journaux qui partagent les mêmesparamètres de conservation, de surveillance et de contrôle d'accès. Chaque flux de journal doitappartenir à un groupe de journaux. Par exemple, si vous disposez d'un flux de journal distinct pour lesjournaux d'accès Apache de chaque hôte, vous pouvez regrouper ces flux de journaux dans un seulgroupe de journaux appelé MyWebsite.com/Apache/access_log.

Le nombre de flux de journaux pouvant appartenir à un groupe de journaux est illimité.Filtres de métriques

Vous pouvez utiliser les filtres de métriques pour extraire les observations de métriques à partir desévénements obtenus et les transformer en points de données d'une métrique CloudWatch. Les filtresde métriques sont associés aux groupes de journaux, et tous les filtres affectés à un groupe sontappliqués à ses flux de journaux.

Paramètres de conservation

Les paramètres de rétention permettent de spécifier combien de temps les événements de journauxsont conservés dans CloudWatch Logs. Les événements de journaux arrivés à expiration sontsupprimés automatiquement. Comme les filtres de métriques, les paramètres de conservation sontégalement affectés aux groupes de journaux et la conservation associée à un groupe est appliquée àses flux de journaux.

3

Amazon CloudWatch Logs Guide de l'utilisateurS'inscrire à Amazon Web Services (AWS)

ConfigurationPour utiliser Amazon CloudWatch Logs, vous avez besoin d'un compte AWS. Votre compte AWS vouspermet d'utiliser des services (par exemple, Amazon EC2) pour générer des journaux susceptibles d'êtreaffichés dans la console CloudWatch, une interface web. En outre, vous pouvez installer et configurerl'AWS Command Line Interface (AWS CLI).

S'inscrire à Amazon Web Services (AWS)Lorsque vous créez un compte AWS, nous l'inscrivons automatiquement à tous les services AWS. Vouspayez des frais uniquement en fonction des services que vous utilisez réellement.

Si vous possédez déjà un compte AWS, vous pouvez ignorer la prochaine étape. Si tel n'est pas le cas,observez la procédure suivante pour en créer un.

Pour s'inscrire à un compte AWS

1. Ouvrez https://portal.aws.amazon.com/billing/signup.2. Suivez les instructions en ligne.

Dans le cadre de la procédure d'inscription, vous recevrez un appel téléphonique et vous saisirez uncode de vérification en utilisant le clavier numérique du téléphone.

Connectez-vous à la console Amazon CloudWatchPour se connecter à la console Amazon CloudWatch

1. Connectez-vous à la AWS Management Console et ouvrez la console CloudWatch à l'adresse https://console.aws.amazon.com/cloudwatch/.

2. Si nécessaire, changez la région. Dans la barre de navigation, choisissez la région où résident vosdonnées AWS.

3. Dans le volet de navigation, sélectionnez Logs.

Configuration de l'interface de ligne de commandeVous pouvez utiliser l'AWS CLI pour effectuer des opérations CloudWatch Logs.

Pour plus d'informations sur l'installation et la configuration de l'AWS CLI, consultez Installation del'interface de ligne de commande AWS dans le AWS Command Line Interface Guide de l'utilisateur.

4

Amazon CloudWatch Logs Guide de l'utilisateurUtilisation de l'agent CloudWatch unifiépour démarrer avec CloudWatch Logs

Démarrer avec CloudWatch LogsAWS offre deux options pour collecter les journaux de vos instances Amazon EC2 et de vos serveurs sursite dans CloudWatch Logs :

• Recommandé – L'agent CloudWatch unifié. Il vous permet de collecter à la fois les journaux et lesmétriques avancées avec un agent. Il propose une assistance sur les systèmes d'exploitation, y comprisles serveurs exécutant Windows Server. Cet agent propose également de meilleures performances.

Si vous utilisez l'agent unifié pour collecter des métriques CloudWatch, celui-ci permet la collecte demétriques système supplémentaires pour une visibilité dans l'invité. Il prend également en charge lacollecte des métriques personnalisées à l'aide de StatsD ou collectd.

Pour de plus amples informations, veuillez consulter Installation de l'agent CloudWatch dans le Guide del'utilisateur Amazon CloudWatch.

• Pris en charge, mais devient progressivement obsolète – L'ancien agent CloudWatch Logs, qui prenden charge la collecte des journaux uniquement à partir de serveurs exécutant Linux. Si vous utilisezdéjà cet agent, vous pouvez continuer à le faire. Toutefois, l'ancien agent nécessite Python 2.7, 3.0 et3.3. Étant donné que ces versions de Python sont obsolètes et ne sont plus mises à jour, nous vousrecommandons fortement de migrer vers l'agent CloudWatch unifié.

Lorsque vous effectuez la migration de l'agent CloudWatch Logs vers l'agent CloudWatch unifié,l'assistant de configuration de l'agent unifié peut lire votre fichier de configuration d'agent CloudWatchLogs actuel et configurer le nouvel agent afin de collecter les mêmes journaux. Pour plus d'informationssur l'assistant, consultez Création du fichier de configuration d'agent CloudWatch à l'aide de l'assistantdans le Guide de l'utilisateur Amazon CloudWatch.

Sommaire• Utilisation de l'agent CloudWatch unifié pour démarrer avec CloudWatch Logs (p. 5)• Utilisation de l'ancien agent CloudWatch Logs pour démarrer avec CloudWatch Logs (p. 6)• Lancement rapide : Utilisation de AWS CloudFormation pour démarrer avec CloudWatch

Logs (p. 34)

Utilisation de l'agent CloudWatch unifié pourdémarrer avec CloudWatch Logs

Pour plus d'informations sur l'utilisation de l'agent CloudWatch unifié pour démarrer avec CloudWatchLogs, consultez Collecte de métriques et de journaux à partir d'instances Amazon EC2 et de serveurssur site avec l'agent CloudWatch dans le Guide de l'utilisateur Amazon CloudWatch. Effectuez les étapesindiquées dans cette section pour installer, configurer et démarrer l'agent. Si vous n'utilisez pas l'agent pourégalement collecter des métriques CloudWatch, vous pouvez ignorer les sections qui font référence auxmétriques.

Si vous utilisez actuellement l'ancien agent CloudWatch Logs et que vous souhaitez migrer vers le nouvelagent unifié, nous vous recommandons d'utiliser l'assistant inclus dans le package du nouvel agent. Cetassistant peut lire votre fichier de configuration d'agent CloudWatch Logs et configurer l'agent CloudWatchpour collecter les mêmes journaux. Pour plus d'informations sur l'assistant, consultez Création du fichier deconfiguration d'agent CloudWatch à l'aide de l'assistant dans le Guide de l'utilisateur Amazon CloudWatch.

5

Amazon CloudWatch Logs Guide de l'utilisateurUtilisation de l'ancien agent CloudWatch

Logs pour démarrer avec CloudWatch Logs

Utilisation de l'ancien agent CloudWatch Logs pourdémarrer avec CloudWatch Logs

À l'aide de l'agent CloudWatch Logs, vous pouvez publier les données des journaux à partir des instancesAmazon EC2 exécutant Linux ou Windows Server, et les événements enregistrés depuis AWS CloudTrail.Nous recommandons d'utiliser plutôt l'agent CloudWatch unifié pour publier vos données de journal. Pourplus d'informations sur le nouvel agent, consultez Collecte de métriques et de journaux à partir d'instancesAmazon EC2 et de serveurs sur site avec l'agent CloudWatch dans le Guide de l'utilisateur AmazonCloudWatch. Sinon, vous pouvez continuer à utiliser l'ancien agent CloudWatch Logs.

Sommaire• Conditions préalables pour l'agent CloudWatch Logs (p. 6)• Démarrage rapide : Installation et configuration de l'agent CloudWatch Logs sur une instance EC2

Linux en cours d'exécution (p. 6)• Démarrage rapide : Installation et configuration de l'agent CloudWatch Logs sur une instance EC2

Linux au lancement (p. 11)• Lancement rapide : activez vos instances Amazon EC2 exécutant Windows Server 2016 pour envoyer

les journaux à CloudWatch Logs avec l'agent CloudWatch Logs (p. 13)• Lancement rapide : Activation de vos instances Amazon EC2 exécutant Windows Server 2012 et

Windows Server 2008 pour envoyer des journaux à CloudWatch Logs (p. 21)• Démarrage rapide : Installation de l'agent CloudWatch Logs à l'aide d'AWS OpsWorks et de

Chef (p. 28)• Rapporter l'état de l'agent CloudWatch Logs (p. 32)• Démarrage de l'agent CloudWatch Logs (p. 33)• Arrêter l'agent CloudWatch Logs : (p. 33)

Conditions préalables pour l'agent CloudWatch LogsL'agent CloudWatch Logs nécessite Python version 2.7, 3.0 ou 3.3 et l'une des versions Linux suivantes :

• Amazon Linux version 2014.03.02 ou ultérieure Amazon Linux 2 n'est pas pris en charge• Ubuntu Server version 12.04, 14.04 ou 16.04• CentOS 6, 6.3, 6.4, 6.5 ou 7.0• Red Hat Enterprise Linux (RHEL) 6.5 ou 7.0• Debian 8.0

Démarrage rapide : Installation et configuration del'agent CloudWatch Logs sur une instance EC2 Linuxen cours d'exécution

Tip

CloudWatch comprend un nouvel agent unifié qui peut collecter des journaux et des métriquesà partir d'instances EC2 et de serveurs sur site. Si vous n'utilisez pas déjà l'ancien agentCloudWatch Logs, nous vous recommandons d'utiliser le nouvel agent CloudWatch unifié. Pourplus d'informations, consultez Démarrer avec CloudWatch Logs (p. 5).Le reste de cette section décrit l'utilisation de l'ancien agent CloudWatch Logs.

6

Amazon CloudWatch Logs Guide de l'utilisateurDémarrage rapide : Installation de l'agent surune instance EC2 Linux en cours d'exécution

Configurer l'ancien agent CloudWatch Logs sur une instance EC2Linux en cours d'exécutionVous pouvez utiliser le programme d'installation de l'agent CloudWatch Logs sur une instance EC2existante pour installer et configurer l'agent CloudWatch Logs. Une fois l'installation terminée, les journauxsont automatiquement transmis à partir de l'instance vers le flux de journaux que vous créez lors del'installation de l'agent. L'agent confirme qu'il a commencé à s'exécuter et ce, jusqu'à ce que vous ledésactiviez.

En plus d'utiliser l'agent, vous pouvez également publier les données des journaux à l'aide de l'AWS CLI,du kit SDK CloudWatch Logs ou de l'API CloudWatch Logs. L'AWS CLI; est particulièrement adaptée à lapublication de données dans la ligne de commande ou par le biais de scripts. Le kit SDK CloudWatch Logsest particulièrement adapté à la publication des données de journal directement à partir d'applications ou àla création de votre propre application de publication de journaux.

Étape 1 : Configurer votre rôle ou utilisateur IAM pour CloudWatch LogsL'agent CloudWatch Logs prend en charge les rôles et les utilisateurs IAM. Si un rôle IAM est déjà associéà votre instance, assurez-vous d'inclure la stratégie IAM ci-dessous. Si aucun rôle IAM n'est assigné àvotre instance, vous pouvez utiliser vos informations d'identification IAM pour les prochaines étapes ouattribuer un rôle IAM à cette instance. Pour plus d'informations, consultez Attachement d'un rôle IAM à uneinstance.

Pour configurer votre rôle ou utilisateur IAM pour CloudWatch Logs

1. Ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/.2. Dans le volet de navigation, choisissez Roles.3. Choisissez le rôle en sélectionnant le nom du rôle (ne cochez pas la case en regard du nom).4. Choisissez Attach Policies, Create Policy.

Un nouvel onglet (ou une nouvelle fenêtre) s'ouvre dans votre navigateur.5. Choisissez l'onglet JSON et copiez le document de stratégie JSON suivant.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": [ "*" ] } ]}

6. Lorsque vous avez terminé, choisissez Examiner une stratégie. Le programme de validation destratégie signale les éventuelles erreurs de syntaxe.

7. Dans la page Examiner une stratégie, entrez un nom et une description (facultatif) pour la stratégie quevous êtes en train de créer. Vérifiez le récapitulatif de stratégie pour voir les autorisations accordéespar votre stratégie. Choisissez ensuite Créer une stratégie pour enregistrer votre travail.

8. Fermez la fenêtre ou l'onglet du navigateur, et retournez dans la page Ajouter des autorisations pourvotre rôle. Choisissez Refresh, puis choisissez la nouvelle stratégie pour l'attacher à votre rôle.

7

Amazon CloudWatch Logs Guide de l'utilisateurDémarrage rapide : Installation de l'agent surune instance EC2 Linux en cours d'exécution

9. Choisissez Attach Policy.

Étape 2 : Installer et configurer CloudWatch Logs sur une instance Amazon EC2existante

Le processus d'installation de l'agent CloudWatch Logs varie selon que votre instance Amazon EC2exécute Amazon Linux, Ubuntu, CentOS ou Red Hat. Utilisez les étapes correspondant à la version deLinux utilisée par votre instance.

Pour installer et configurer CloudWatch Logs sur une instance Amazon Linux existante

Depuis la version Amazon Linux AMI 2014.09, l'agent CloudWatch Logs est disponible sous formed'installation RPM avec le package awslogs. Les versions antérieures d'Amazon Linux peuvent accéder aupackage awslogs si leur instance est mise à jour avec la commande sudo yum update -y. En installantle package awslogs en tant que RPM au lieu d'utiliser le programme d'installation CloudWatch Logs, votreinstance recevra régulièrement des mises à jour de package et des correctifs de la part d'AWS. Il ne seradonc pas nécessaire de réinstaller manuellement l'agent CloudWatch Logs.

Warning

Ne mettez pas à jour l'agent CloudWatch Logs à l'aide de la méthode d'installation RPM sivous avez déjà utilisé le script Python pour installer l'agent. Vous risqueriez de provoquer desproblèmes de configuration qui empêcheraient l'agent CloudWatch Logs d'envoyer vos journauxvers CloudWatch.

1. Connectez-vous à votre instance Amazon Linux. Pour plus d'informations, consultez Connexion à votreinstance dans le Amazon EC2 Guide de l'utilisateur pour les instances Linux.

Pour plus d'informations sur les problèmes de connexion, consultez Résolution de la connexion à votreinstance dans le Amazon EC2 Guide de l'utilisateur pour les instances Linux.

2. Mettez à jour votre instance Amazon Linux pour récupérer les dernières modifications des référentielsde package.

sudo yum update -y

3. Installez le package awslogs. Il est recommandé d'utiliser cette méthode pour l'installation dupackage awslogs sur des instances Amazon Linux.

sudo yum install -y awslogs

4. Modifiez le fichier /etc/awslogs/awslogs.conf pour configurer les journaux à suivre. Pourplus d'informations sur la modification de ce fichier, consultez CloudWatch LogsRéférence del'agent (p. 142).

5. Par défaut, /etc/awslogs/awscli.conf pointe vers la région us-east-1. Pour transmettre vosjournaux vers une autre région, modifiez le fichier awscli.conf et spécifiez cette région.

6. Lancez le service awslogs.

sudo service awslogs start

Si vous utilisez Amazon Linux 2, lancez le service awslogs à l'aide de la commande suivante.

sudo systemctl start awslogsd

7. (Facultatif) Vérifiez si le fichier /var/log/awslogs.log contient des erreurs lorsque vous lancez leservice.

8

Amazon CloudWatch Logs Guide de l'utilisateurDémarrage rapide : Installation de l'agent surune instance EC2 Linux en cours d'exécution

8. (Facultatif) Exécutez la commande suivante pour lancer le service awslogs à chaque démarrage dusystème.

sudo chkconfig awslogs on

Si vous utilisez Amazon Linux 2, utilisez la commande suivante pour lancer le service à chaquedémarrage système.

sudo systemctl enable awslogsd.service

9. Le nouveau groupe de journaux et le nouveau flux de journal doivent être visibles dans la consoleCloudWatch une fois que l'agent s'exécute depuis quelques instants.

Pour plus d'informations, consultez Affichage des données de journal envoyées à CloudWatchLogs (p. 58).

Pour installer et configurer CloudWatch Logs sur une instance Ubuntu Server, CentOS ou Red Hatexistante

Si vous utilisez une AMI exécutant Ubuntu Server, CentOS ou Red Hat, utilisez la procédure suivante pourinstaller manuellement l'agent CloudWatch Logs sur votre instance.

1. Connectez-vous à votre instance  EC2. Pour en savoir plus, consultez Connexion à votre instancedans Amazon EC2 Guide de l'utilisateur pour les instances Linux.

Pour plus d'informations sur les problèmes de connexion, consultez Résolution de la connexion à votreinstance dans le Amazon EC2 Guide de l'utilisateur pour les instances Linux.

2. Exécutez le programme d'installation de l'agent CloudWatch Logs en utilisant l'une des deux options.Vous pouvez l'exécuter directement à partir d'Internet ou télécharger les fichiers et l'exécuter demanière autonome.

Note

Si vous utilisez CentOS 6.x, Red Hat 6.x ou Ubuntu 12.04, suivez les étapes detéléchargement et d'exécution du programme d'installation autonome. L'installation de l'agentCloudWatch Logs directement à partir d'Internet n'est pas prise en charge sur ces systèmes.

Note

Sur Ubuntu, exécutez apt-get update avant d'exécuter les commandes ci-dessous.

Pour l'exécuter directement à partir d'Internet, utilisez les commandes suivantes et suivez lesinstructions :

curl https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py -O

sudo python ./awslogs-agent-setup.py --region us-east-1

Si la commande précédente ne fonctionne pas, essayez ce qui suit :

sudo python3 ./awslogs-agent-setup.py --region us-east-1

Pour le télécharger et l'exécuter de manière autonome, utilisez les commandes suivantes et suivez lesinstructions :

9

Amazon CloudWatch Logs Guide de l'utilisateurDémarrage rapide : Installation de l'agent surune instance EC2 Linux en cours d'exécution

curl https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py -O

curl https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/AgentDependencies.tar.gz -O

tar xvf AgentDependencies.tar.gz -C /tmp/

sudo python ./awslogs-agent-setup.py --region us-east-1 --dependency-path /tmp/AgentDependencies

Vous pouvez installer l'agent CloudWatch Logs en spécifiant les régions us-east-1, us-west-1, us-west-2, ap-south-1, ap-northeast-2, ap-southeast-1, ap-southeast-2, ap-northeast-1, eu-central-1, eu-west-1, or sa-east-1.

Note

Pour plus d'informations sur la version actuelle et l'historique de versions de awslogs-agent-setup, consultez CHANGELOG.txt.

Le programme d'installation de l'agent CloudWatch Logs a besoin de certaines informations pendant laconfiguration. Avant de commencer, vous devez savoir quel fichier journal vous souhaitez surveiller etson format d'horodatage. Vous devez également préparer les informations suivantes.

Élément Description

ID de clé d'accès AWS Appuyez sur Entrée si vous utilisez un rôle IAM. Sinon, saisissez l'ID devotre clé d'accès AWS.

Clé d'accès secrète AWS Appuyez sur Entrée si vous utilisez un rôle IAM. Sinon, entrez votre cléd'accès secrète AWS.

Nom de la région pardéfaut

Appuyez sur Entrée. La valeur par défaut est us-east-2. Vous pouvezdéfinir ceci sur us-east-1, us-west-1, us-west-2, ap-south-1, ap-northeast-2, ap-southeast-1, ap-southeast-2, ap-northeast-1, eu-central-1, eu-west-1, or sa-east-1.

Format de sortie pardéfaut

Laissez ce champ vide et appuyez sur Entrée.

Chemin d'accès du fichierjournal à charger

Emplacement du fichier qui contient les données des journaux àenvoyer. Le programme d'installation propose un chemin d'accès.

Nom du groupe dejournaux de destination

Nom de votre groupe de journaux. Le programme d'installation proposeun nom de groupe de journaux.

Nom du flux de journauxde destination

Par défaut, il s'agit du nom de l'hôte. Le programme d'installationpropose un nom d'hôte.

Format d'horodatage Spécifiez le format de l'horodatage du fichier journal spécifié. Choisissezl'option Custom pour spécifier votre propre format.

Position initiale Indique comment les données sont chargées. Choisissez start_of_filepour charger toutes les informations du fichier de données. Choisissezend_of_file pour charger uniquement les données nouvellementajoutées.

10

Amazon CloudWatch Logs Guide de l'utilisateurDémarrage rapide : Installation de l'agentsur une instance EC2 Linux au lancement

Une fois ces étapes réalisées, le programme d'installation vous demande si vous souhaitez configurerun autre fichier journal. Vous pouvez exécuter le processus autant de fois que vous le souhaitezpour chaque fichier journal. Si vous n'avez plus de fichiers journaux à surveiller, choisissez N lorsquevous êtes invité à configurer un autre journal par le programme d'installation. Pour plus d'informationssur les paramètres du fichier de configuration de l'agent, consultez CloudWatch LogsRéférence del'agent (p. 142).

Note

La configuration de plusieurs sources de journal pour envoyer des données dans un flux dejournal unique n'est pas prise en charge.

3. Le nouveau groupe de journaux et le nouveau flux de journal doivent être visibles dans la consoleCloudWatch une fois que l'agent s'exécute depuis quelques instants.

Pour plus d'informations, consultez Affichage des données de journal envoyées à CloudWatchLogs (p. 58).

Démarrage rapide : Installation et configuration del'agent CloudWatch Logs sur une instance EC2 Linuxau lancement

Tip

CloudWatch comprend un nouvel agent unifié qui peut collecter des journaux et des métriquesà partir d'instances EC2 et de serveurs sur site. Si vous n'utilisez pas déjà l'ancien agentCloudWatch Logs, nous vous recommandons d'utiliser le nouvel agent CloudWatch unifié. Pourplus d'informations, consultez Démarrer avec CloudWatch Logs (p. 5).Le reste de cette section décrit l'utilisation de l'ancien agent CloudWatch Logs.

Installation de l'ancien agent CloudWatch Logs sur une instanceEC2 Linux au lancementVous pouvez utiliser les données utilisateur Amazon EC2, une fonctionnalité d'Amazon EC2 qui permetde transmettre les informations paramétriques à l'instance au moment du lancement, pour installer etconfigurer l'agent CloudWatch Logs sur cette instance. Pour transmettre les informations d'installation et deconfiguration de l'agent CloudWatch Logs à Amazon EC2, vous pouvez fournir le fichier de configurationdans un emplacement réseau, par exemple un compartiment Amazon S3.

La configuration de plusieurs sources de journal pour envoyer des données dans un flux de journal uniquen'est pas prise en charge.

Prérequis

Créez un fichier de configuration de l'agent qui décrit tous les groupes de journaux et les flux dejournaux. Il s'agit d'un fichier de texte qui décrit les fichiers journaux à surveiller, ainsi que les groupesde journaux et les flux de journaux vers lesquels les charger. L'agent utilise ce fichier de configuration etcommence à surveiller et charger tous les fichiers journaux qui y sont décrits. Pour plus d'informationssur les paramètres du fichier de configuration de l'agent, consultez CloudWatch LogsRéférence del'agent (p. 142).

Voici un exemple de fichier de configuration d'agent pour Amazon Linux

[general]

11

Amazon CloudWatch Logs Guide de l'utilisateurDémarrage rapide : Installation de l'agentsur une instance EC2 Linux au lancement

state_file = /var/awslogs/state/agent-state [/var/log/messages]file = /var/log/messageslog_group_name = /var/log/messageslog_stream_name = {instance_id}datetime_format = %b %d %H:%M:%S

Voici un exemple de fichier de configuration d'agent pour Ubuntu

[general]state_file = /var/awslogs/state/agent-state [/var/log/syslog]file = /var/log/sysloglog_group_name = /var/log/sysloglog_stream_name = {instance_id}datetime_format = %b %d %H:%M:%S

Pour configurer votre rôle IAM

1. Ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/.2. Dans le volet de navigation, choisissez Policies, puis Create Policy.3. Sur la page Créer une stratégie, dans Créer votre propre stratégie, choisissez Sélectionner. Pour plus

d'informations sur la création de stratégies personnalisées, consultez Stratégies IAM pour AmazonEC2 dans le Amazon EC2 Guide de l'utilisateur pour les instances Linux.

4. Sur la page Review Policy, tapez un nom pour la stratégie dans Policy Name.5. Pour Policy Document, collez la stratégie suivante :

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:*:*:*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::myawsbucket/*" ] } ]}

6. Choisissez Create Policy.7. Dans le volet de navigation, choisissez Roles, puis Create New Role.8. Dans la page Set Role Name, saisissez le nom du rôle et sélectionnez Next Step.

12

Amazon CloudWatch Logs Guide de l'utilisateurLancement rapide : utilisez CloudWatch Logs

avec des instances Windows Server 2016

9. Sur la page Select Role Type, choisissez Select à côté d'Amazon EC2.10. Sur la page Attacher la stratégie, dans l'en-tête de la table, choisissez Type de stratégie, Géré par le

client.11. Sélectionnez la stratégie IAM que vous avez créée, puis choisissez Étape suivante.12. Choisissez Create Role (Créer un rôle).

Pour plus d'informations sur les utilisateurs et les stratégies IAM, consultez Utilisateurs et groupes IAMet Gestion des stratégies IAM dans le IAM Guide de l'utilisateur.

Pour démarrer une nouvelle instance et activer CloudWatch Logs

1. Ouvrez la console Amazon EC2 à l'adresse https://console.aws.amazon.com/ec2/.2. Choisissez Launch Instances.

Pour plus d'informations, consultez Lancement d'une instance dans le Amazon EC2 Guide del'utilisateur pour les instances Linux.

3. Sur la page Step 1: Choose an Amazon Machine Image (AMI), sélectionnez le type d'instance Linuxque vous souhaitez démarrer, puis sur la page Step 2: Choose an Instance Type, choisissez Next:Configure Instance Details.

Vérifiez que la commande cloud-init est comprise dans Amazon Machine Image (AMI). Les AMIAmazon Linux et les AMI pour Ubuntu et RHEL incluent déjà cloud-init, mais cela peut ne pas être lecas pour CentOS et d'autres AMI d'AWS Marketplace.

4. Sur la page Étape 3: Configurer les détails de l'instance, dans Rôle IAM, sélectionnez le rôle IAM quevous avez créé.

5. Sous Détails avancés, dans Données utilisateur, collez le script ci-dessous. Mettez ensuite à jource script en changeant la valeur de l'option -c par l'emplacement du fichier de configuration de votreagent :

#!/bin/bashcurl https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py -Ochmod +x ./awslogs-agent-setup.py./awslogs-agent-setup.py -n -r us-east-1 -c s3://AWSDOC-EXAMPLE-BUCKET1/my-config-file

6. Apportez toutes les modifications nécessaires à l'instance, vérifiez vos paramètres de lancement etchoisissez Launch.

7. Le nouveau groupe de journaux et le nouveau flux de journal doivent être visibles dans la consoleCloudWatch une fois que l'agent s'exécute depuis quelques instants.

Pour plus d'informations, consultez Affichage des données de journal envoyées à CloudWatchLogs (p. 58).

Lancement rapide : activez vos instances AmazonEC2 exécutant Windows Server 2016 pour envoyer lesjournaux à CloudWatch Logs avec l'agent CloudWatchLogs

Tip

CloudWatch comprend un nouvel agent unifié qui peut collecter des journaux et des métriquesà partir d'instances EC2 et de serveurs sur site. Nous vous recommandons d'utiliser le nouvel

13

Amazon CloudWatch Logs Guide de l'utilisateurLancement rapide : utilisez CloudWatch Logs

avec des instances Windows Server 2016

agent CloudWatch unifié. Pour plus d'informations, consultez Démarrer avec CloudWatchLogs (p. 5).Le reste de cette section décrit l'utilisation de l'ancien agent CloudWatch Logs.

Activez vos instances Amazon EC2 exécutant Windows Server2016 pour envoyer les journaux à CloudWatch Logs avec l'ancienagent CloudWatch LogsIl existe plusieurs méthodes pour activer les instances exécutant Windows Server 2016 et envoyer lesjournaux à CloudWatch Logs. Les étapes de cette section utilisent la fonctionnalité Run Command deSystems Manager. Pour plus d'informations sur les autres méthodes possibles, consultez Envoi dejournaux, d'événements et de compteurs de performances à Amazon CloudWatch.

Étapes• Téléchargement de l'exemple de fichier de configuration (p. 14)• Configuration du fichier JSON pour CloudWatch (p. 14)• Création d'un utilisateur et d'un rôle IAM pour Systems Manager (p. 20)• Vérifiez les prérequis Systems Manager (p. 20)• Vérification de l'accès Internet (p. 21)• Activer CloudWatch Logs à l'aide de la fonctionnalité Run Command de Systems Manager (p. 21)

Téléchargement de l'exemple de fichier de configurationTéléchargez l'exemple de fichier suivant sur votre ordinateur : AWS.EC2.Windows.CloudWatch.json.

Configuration du fichier JSON pour CloudWatchVous déterminez les journaux à envoyer à CloudWatch en indiquant vos choix dans un fichier deconfiguration. Le processus de création de ce fichier et la spécification des options peuvent prendre30 minutes ou plus. Après avoir effectué cette tâche une fois, vous pouvez réutiliser le fichier deconfiguration sur toutes vos instances.

Étapes• Étape 1 : Activer CloudWatch Logs (p. 14)• Étape 2 : Configurer les paramètres pour CloudWatch (p. 14)• Étape 3 : Configurer les données à envoyer (p. 15)• Étape 4 : Configurer le contrôle de flux (p. 20)• Étape 5 : Enregistrer le contenu JSON (p. 20)

Étape 1 : Activer CloudWatch Logs

Dans la partie supérieure du fichier JSON, remplacez « false » par « true » pour IsEnabled :

"IsEnabled": true,

Étape 2 : Configurer les paramètres pour CloudWatch

Indiquez les informations d'identification, la région, le nom du groupe de journaux et le namespace duflux de journaux. Cela permet à l'instance d'envoyer les données des journaux à CloudWatch Logs. Pourenvoyer les mêmes données de journaux à différents emplacements, vous pouvez ajouter des sectionssupplémentaires avec des ID uniques (par exemple, « CloudWatchLogs2 » et « CloudWatchLogs3 ») etune région différente pour chaque ID.

14

Amazon CloudWatch Logs Guide de l'utilisateurLancement rapide : utilisez CloudWatch Logs

avec des instances Windows Server 2016

Pour configurer les paramètres et envoyer les données des journaux à CloudWatch Logs

1. Dans le fichier JSON, localisez la section CloudWatchLogs.

{ "Id": "CloudWatchLogs", "FullName": "AWS.EC2.Windows.CloudWatch.CloudWatchLogsOutput,AWS.EC2.Windows.CloudWatch", "Parameters": { "AccessKey": "", "SecretKey": "", "Region": "us-east-1", "LogGroup": "Default-Log-Group", "LogStream": "{instance_id}" }},

2. Laissez les champs AccessKey et SecretKey vides. Vous configurez les informations d'identificationà l'aide d'un rôle IAM.

3. Pour Region, entrez la région vers laquelle envoyer les données des journaux (par exemple, us-east-2).

4. Pour LogGroup, entrez le nom de votre groupe de journaux. Ce nom s'affiche sur l'écran Groupes dejournaux dans la console CloudWatch.

5. Pour LogStream, entrez le flux de journal de destination. Ce nom s'affiche sur l'écran Groupes dejournaux > Flux de la console CloudWatch.

Si vous utilisez {instance_id}, la valeur par défaut, le nom de flux de journal est l'ID de l'instance.

Si vous entrez un nom de flux de journal qui n'existe pas déjà, CloudWatch Logs le créeautomatiquement. Vous pouvez définir un nom de flux de journal à l'aide d'une chaîne littérale, desvariables prédéfinies {instance_id}, {hostname} et {ip_address}, ou d'une combinaison decelles-ci.

Étape 3 : Configurer les données à envoyer

Vous pouvez envoyer des données de journaux d'événements, des données de suivi des événements pourWindows (ETW) et d'autres données de journaux à CloudWatch Logs.

Pour envoyer les données de journal des événements d'application Windows à CloudWatch Logs

1. Dans le fichier JSON, localisez la section ApplicationEventLog.

{ "Id": "ApplicationEventLog", "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogName": "Application", "Levels": "1" }},

2. Pour Levels, spécifiez le type de messages à charger. Vous pouvez spécifier l'une des valeurssuivantes :

• 1 - Chargez uniquement les messages d'erreur.• 2 - Chargez uniquement les messages d'avertissement.• 4 - Chargez uniquement les messages d'information.

15

Amazon CloudWatch Logs Guide de l'utilisateurLancement rapide : utilisez CloudWatch Logs

avec des instances Windows Server 2016

Vous pouvez associer des valeurs pour inclure plusieurs types de message. Par exemple, la valeur3 charge les messages d'erreur (1) et les messages d'avertissement (2). La valeur 7 charge lesmessages d'erreur (1), les messages d'avertissement (2) et les messages d'information (4).

Pour envoyer les données de journal de sécurité à CloudWatch Logs

1. Dans le fichier JSON, localisez la section SecurityEventLog.

{ "Id": "SecurityEventLog", "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogName": "Security", "Levels": "7" }},

2. Pour Levels, entrez 7 pour charger tous les messages.

Pour envoyer des données de journal des événements système à CloudWatch Logs

1. Dans le fichier JSON, localisez la section SystemEventLog.

{ "Id": "SystemEventLog", "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogName": "System", "Levels": "7" }},

2. Pour Levels, spécifiez le type de messages à charger. Vous pouvez spécifier l'une des valeurssuivantes :

• 1 - Chargez uniquement les messages d'erreur.• 2 - Chargez uniquement les messages d'avertissement.• 4 - Chargez uniquement les messages d'information.

Vous pouvez associer des valeurs pour inclure plusieurs types de message. Par exemple, la valeur3 charge les messages d'erreur (1) et les messages d'avertissement (2). La valeur 7 charge lesmessages d'erreur (1), les messages d'avertissement (2) et les messages d'information (4).

Pour envoyer les autres types de données de journal des événements à CloudWatch Logs

1. Dans le fichier JSON, ajoutez une nouvelle section. Chaque section doit avoir un Id unique.

{ "Id": "Id-name", "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogName": "Log-name",

16

Amazon CloudWatch Logs Guide de l'utilisateurLancement rapide : utilisez CloudWatch Logs

avec des instances Windows Server 2016

"Levels": "7" }},

2. Pour Id, tapez un nom pour le journal à charger (par exemple, WindowsBackup).3. Pour LogName, entrez le nom du journal à charger. Vous pouvez trouver le nom du journal comme

suit.

a. Ouvrez l'Observateur d'événementsb. Dans le panneau de navigation, cliquez sur Journaux d'applications et de services.c. Naviguez jusqu'au journal, puis choisissez Actions, Propriétés.

4. Pour Levels, spécifiez le type de messages à charger. Vous pouvez spécifier l'une des valeurssuivantes :

• 1 - Chargez uniquement les messages d'erreur.• 2 - Chargez uniquement les messages d'avertissement.• 4 - Chargez uniquement les messages d'information.

Vous pouvez associer des valeurs pour inclure plusieurs types de message. Par exemple, la valeur3 charge les messages d'erreur (1) et les messages d'avertissement (2). La valeur 7 charge lesmessages d'erreur (1), les messages d'avertissement (2) et les messages d'information (4).

Pour envoyer des données de suivi d'événements (Windows) à CloudWatch Logs

ETW (Event Tracing for Windows, suivi d'événements pour Windows) fournit un mécanisme dejournalisation efficace et détaillé dans lequel les applications peuvent consigner des journaux. ChaqueETW est contrôlé par un gestionnaire de session qui peut démarrer et arrêter la session de journalisation.Chaque session a un fournisseur et un ou plusieurs utilisateurs.

1. Dans le fichier JSON, localisez la section ETW.

{ "Id": "ETW", "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogName": "Microsoft-Windows-WinINet/Analytic", "Levels": "7" }},

2. Pour LogName, entrez le nom du journal à charger.3. Pour Levels, spécifiez le type de messages à charger. Vous pouvez spécifier l'une des valeurs

suivantes :

• 1 - Chargez uniquement les messages d'erreur.• 2 - Chargez uniquement les messages d'avertissement.• 4 - Chargez uniquement les messages d'information.

Vous pouvez associer des valeurs pour inclure plusieurs types de message. Par exemple, la valeur3 charge les messages d'erreur (1) et les messages d'avertissement (2). La valeur 7 charge lesmessages d'erreur (1), les messages d'avertissement (2) et les messages d'information (4).

17

Amazon CloudWatch Logs Guide de l'utilisateurLancement rapide : utilisez CloudWatch Logs

avec des instances Windows Server 2016

Pour envoyer les journaux personnalisés (tout fichier journal texte) à CloudWatch Logs

1. Dans le fichier JSON, localisez la section CustomLogs.

{ "Id": "CustomLogs", "FullName": "AWS.EC2.Windows.CloudWatch.CustomLog.CustomLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogDirectoryPath": "C:\\CustomLogs\\", "TimestampFormat": "MM/dd/yyyy HH:mm:ss", "Encoding": "UTF-8", "Filter": "", "CultureName": "en-US", "TimeZoneKind": "Local", "LineCount": "5" }},

2. Pour LogDirectoryPath, entrez le chemin d'accès où les journaux sont stockés sur votre instance.3. Pour TimestampFormat, entrez le format d'horodatage que vous voulez utiliser. Pour plus

d'informations sur les valeurs prises en charge, consultez la rubrique Chaînes de format de date etd'heure personnalisées sur MSDN.

Important

Votre fichier journal source doit avoir l'horodatage au début de chaque ligne de journal et unespace après l'horodatage.

4. Pour Encoding, tapez l'encodage de fichier à utiliser (par exemple, UTF-8). Pour obtenir une liste desvaleurs prises en charge, consultez la rubrique Classe d'encodage sur MSDN.

Note

Utilisez le nom d'encodage, pas le nom complet.5. (Facultatif) Pour Filter, tapez le préfixe des noms de journaux. Laissez ce paramètre vide de façon

à surveiller tous les fichiers. Pour plus d'informations sur les valeurs prises en charge, consultez larubrique Propriété FileSystemWatcherFilter sur MSDN.

6. (Facultatif) Pour CultureName, entrez les paramètres régionaux où l'horodatage est consigné. SiCultureName est vide, il prend par défaut les mêmes paramètres régionaux que ceux actuellementutilisés par votre instance de Windows. Pour plus d'informations, consultez la colonne Language tagdu tableau de la rubrique Product Behavior sur MSDN.

Note

Les valeurs div, div-MV, hu et hu-HU ne sont pas prises en charge.7. (Facultatif) Pour TimeZoneKind, tapez Local ou UTC. Vous pouvez définir ce paramètre pour

fournir des informations de fuseau horaire si aucune n'est comprise dans l'horodatage de vosjournaux. Si ce paramètre est laissé vide et si votre horodatage n'inclut pas les informations de fuseauhoraire, CloudWatch Logs utilise le fuseau horaire local par défaut. Ce paramètre est ignoré si votrehorodatage contient déjà des informations de fuseau horaire.

8. (Facultatif) Pour LineCount, entrez le nombre de lignes dans l'en-tête pour identifier le fichier journal.Par exemple, les fichiers journaux IIS ont des en-têtes presque identiques. Vous pouvez entrer 5, quilit les trois premières lignes de l'en-tête du fichier journal pour l'identifier. Dans les fichiers journauxIIS, la troisième ligne contient la date et l'horodatage, mais l'horodatage n'est pas toujours différentd'un fichier journal à l'autre. Pour cette raison, nous recommandons d'inclure au moins une ligne dedonnées de journaux réelles pour affecter une empreinte unique au fichier journal.

18

Amazon CloudWatch Logs Guide de l'utilisateurLancement rapide : utilisez CloudWatch Logs

avec des instances Windows Server 2016

Pour envoyer des données de journal IIS à CloudWatch Logs

1. Dans le fichier JSON, localisez la section IISLog.

{ "Id": "IISLogs", "FullName": "AWS.EC2.Windows.CloudWatch.CustomLog.CustomLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogDirectoryPath": "C:\\inetpub\\logs\\LogFiles\\W3SVC1", "TimestampFormat": "yyyy-MM-dd HH:mm:ss", "Encoding": "UTF-8", "Filter": "", "CultureName": "en-US", "TimeZoneKind": "UTC", "LineCount": "5" }},

2. Pour LogDirectoryPath, entrez le dossier où les journaux IIS sont stockés pour un site individuel(par exemple, C:\inetpub\logs\LogFiles\W3SVCn).

Note

Seul le format de journal W3C est pris en charge. Les formats IIS, NCSA et Personnalisé nesont pas pris en charge.

3. Pour TimestampFormat, entrez le format d'horodatage que vous voulez utiliser. Pour plusd'informations sur les valeurs prises en charge, consultez la rubrique Chaînes de format de date etd'heure personnalisées sur MSDN.

4. Pour Encoding, tapez l'encodage de fichier à utiliser (par exemple, UTF-8). Pour plus d'informationssur les valeurs prises en charge, consultez la rubrique Classe d'encodage sur MSDN.

Note

Utilisez le nom d'encodage, pas le nom complet.5. (Facultatif) Pour Filter, tapez le préfixe des noms de journaux. Laissez ce paramètre vide de façon

à surveiller tous les fichiers. Pour plus d'informations sur les valeurs prises en charge, consultez larubrique Propriété FileSystemWatcherFilter sur MSDN.

6. (Facultatif) Pour CultureName, entrez les paramètres régionaux où l'horodatage est consigné. SiCultureName est vide, il prend par défaut les mêmes paramètres régionaux que ceux actuellementutilisés par votre instance de Windows. Pour plus d'informations sur les valeurs prises en charge,consultez la colonne Language tag du tableau de la rubrique Product Behavior sur MSDN.

Note

Les valeurs div, div-MV, hu et hu-HU ne sont pas prises en charge.7. (Facultatif) Pour TimeZoneKind, tapez Local ou UTC. Vous pouvez définir ce paramètre pour

fournir des informations de fuseau horaire si aucune n'est comprise dans l'horodatage de vosjournaux. Si ce paramètre est laissé vide et si votre horodatage n'inclut pas les informations de fuseauhoraire, CloudWatch Logs utilise le fuseau horaire local par défaut. Ce paramètre est ignoré si votrehorodatage contient déjà des informations de fuseau horaire.

8. (Facultatif) Pour LineCount, entrez le nombre de lignes dans l'en-tête pour identifier le fichier journal.Par exemple, les fichiers journaux IIS ont des en-têtes presque identiques. Vous pouvez entrer 5, quilirait les cinq premières lignes de l'en-tête du fichier journal pour l'identifier. Dans les fichiers journauxIIS, la troisième ligne contient la date et l'horodatage, mais l'horodatage n'est pas toujours différentd'un fichier journal à l'autre. Pour cette raison, nous recommandons d'inclure au moins une seule lignede données de journaux réelles pour affecter une empreinte unique au fichier journal.

19

Amazon CloudWatch Logs Guide de l'utilisateurLancement rapide : utilisez CloudWatch Logs

avec des instances Windows Server 2016

Étape 4 : Configurer le contrôle de flux

Chaque type de données doit avoir une destination correspondante dans la section Flows. Par exemple,pour envoyer le journal personnalisé, le journal ETW et le journal système à CloudWatch Logs, ajoutez(CustomLogs,ETW,SystemEventLog),CloudWatchLogs à la section Flows.

Warning

L'ajout d'une étape qui n'est pas valide bloque le flux. Par exemple, si vous ajoutez une étape demétrique de disque, mais que votre instance ne comporte pas de disque, toutes les étapes du fluxsont bloquées.

Vous pouvez envoyer le même fichier journal plusieurs destinations. Par exemple, pour envoyer le journald'application à deux destinations différentes que vous avez définies dans la section CloudWatchLogs,ajoutez ApplicationEventLog,(CloudWatchLogs,CloudWatchLogs2) à la section Flows.

Pour configurer le contrôle de flux

1. Dans le fichier AWS.EC2.Windows.CloudWatch.json, recherchez la section Flows.

"Flows": { "Flows": [ "PerformanceCounter,CloudWatch", "(PerformanceCounter,PerformanceCounter2), CloudWatch2", "(CustomLogs, ETW, SystemEventLog),CloudWatchLogs", "CustomLogs, CloudWatchLogs2", "ApplicationEventLog,(CloudWatchLogs, CloudWatchLogs2)" ]}

2. Pour Flows, ajoutez chaque type de données à charger (par exemple, ApplicationEventLog) etsa destination (par exemple, CloudWatchLogs).

Étape 5 : Enregistrer le contenu JSON

Vous avez maintenant terminé de modifier le fichier JSON. Enregistrez et collez le contenu du fichierdans un éditeur de texte dans une autre fenêtre. Vous aurez besoin du contenu du fichier lors d'une étapeultérieure de cette procédure.

Création d'un utilisateur et d'un rôle IAM pour Systems Manager

Un rôle IAM pour les informations d'identification de l'instance est obligatoire lorsque vous utilisez lafonctionnalité Run Command de Systems Manager. Ce rôle permet à Systems Manager d'exécuterdes actions sur l'instance. Vous pouvez éventuellement créer un compte utilisateur IAM unique pour laconfiguration et l'exécution de Systems Manager. Pour plus d'informations, consultez Configuration desrôles de sécurité pour Systems Manager dans le Guide de l'utilisateur AWS Systems Manager. Pourplus d'informations sur la procédure d'attachement d'un rôle IAM à une instance existante, consultezAttachement d'un rôle IAM à une instance dans le Amazon EC2 Guide de l'utilisateur pour les instancesWindows.

Vérifiez les prérequis Systems Manager

Avant d'utiliser la fonctionnalité Systems Manager Run Command pour configurer l'intégrationà CloudWatch Logs, vérifiez que vos instances répondent aux exigences minimales. Pour plusd'informations, consultez Prérequis pour Systems Manager dans le Guide de l'utilisateur AWS SystemsManager.

20

Amazon CloudWatch Logs Guide de l'utilisateurLancement rapide : Utilisation de CloudWatch Logs avec des

instances Windows Server 2012 et Windows Server 2008

Vérification de l'accès InternetVos instances Windows Server Amazon EC2 et vos instances gérées doivent avoir un accès Internetsortant pour envoyer des données de journal et d'événements à CloudWatch. Pour plus d'informationssur la configuration de l'accès à Internet, consultez Passerelles Internet dans le Amazon VPC Guide del'utilisateur.

Activer CloudWatch Logs à l'aide de la fonctionnalité Run Command de SystemsManagerLa fonctionnalité Exécuter la commande vous permet de gérer la configuration de vos instances à lademande. Spécifiez un document Systems Manager, fournissez des paramètres et exécutez la commandesur une ou plusieurs instances. L'agent SSM sur l'instance traite la commande et configure l'instancecomme indiqué.

Pour configurer l'intégration à CloudWatch Logs à l'aide de la fonctionnalité Run Command

1. Ouvrez la console Amazon EC2 à l'adresse https://console.aws.amazon.com/ec2/.2. Dans le panneau de navigation, sélectionnez Services Systems Manager, Run Command.3. Choisissez Run a Command.4. Pour Document de commande, choisissez AWS-ConfigureCloudWatch.5. Pour Instances cibles, sélectionnez les instances à intégrer à CloudWatch Logs. Si vous ne voyez

pas une instance dans cette liste, c'est qu'elle n'est peut-être pas configurée pour l'exécution de lacommande. Pour plus d'informations, consultez Prérequis pour Systems Manager dans le AmazonEC2 Guide de l'utilisateur pour les instances Windows.

6. Pour Statut, choisissez Enabled.7. Pour Propriétés, copiez et collez le contenu JSON que vous avez créé lors des tâches précédentes.8. Complétez les champs facultatifs restants et choisissez Run.

Utilisez la procédure suivante pour afficher les résultats de l'exécution d'une commande dans la consoleAmazon EC2.

Pour afficher la sortie de commande dans la console

1. Sélectionnez une commande.2. Choisissez l'onglet Output.3. Choisissez View Output. La page de sortie de la commande illustre les résultats de l'exécution de votre

commande.

Lancement rapide : Activation de vos instancesAmazon EC2 exécutant Windows Server 2012 etWindows Server 2008 pour envoyer des journaux àCloudWatch Logs

Tip

CloudWatch comprend un nouvel agent unifié qui peut collecter des journaux et des métriquesà partir d'instances EC2 et de serveurs sur site. Nous vous recommandons d'utiliser le nouvelagent CloudWatch unifié. Pour plus d'informations, consultez Démarrer avec CloudWatchLogs (p. 5).Le reste de cette section décrit l'utilisation de l'ancien agent CloudWatch Logs.

21

Amazon CloudWatch Logs Guide de l'utilisateurLancement rapide : Utilisation de CloudWatch Logs avec des

instances Windows Server 2012 et Windows Server 2008

Activez vos instances Amazon EC2 exécutant WindowsServer 2012 et Windows Server 2008 pour envoyer des journauxà CloudWatch Logs.Procédez comme suit pour activer vos instances exécutant Windows Server 2012 et WindowsServer 2008., et envoyer des journaux à CloudWatch Logs.

Téléchargement de l'exemple de fichier de configurationTéléchargez l'exemple de fichier JSON suivant sur votre ordinateur : AWS.EC2.Windows.CloudWatch.json.Vous y apporterez des modifications lors des étapes suivantes.

Configuration du fichier JSON pour CloudWatchVous déterminez les journaux à envoyer à CloudWatch en indiquant vos choix dans le fichier deconfiguration JSON. Le processus de création de ce fichier et la spécification des options peuventprendre 30 minutes ou plus. Après avoir effectué cette tâche une fois, vous pouvez réutiliser le fichier deconfiguration sur toutes vos instances.

Étapes• Étape 1 : Activer CloudWatch Logs (p. 22)• Étape 2 : Configurer les paramètres pour CloudWatch (p. 22)• Étape 3 : Configurer les données à envoyer (p. 23)• Étape 4 : Configurer le contrôle de flux (p. 27)

Étape 1 : Activer CloudWatch Logs

Dans la partie supérieure du fichier JSON, remplacez « false » par « true » pour IsEnabled :

"IsEnabled": true,

Étape 2 : Configurer les paramètres pour CloudWatch

Indiquez les informations d'identification, la région, le nom du groupe de journaux et le namespace duflux de journaux. Cela permet à l'instance d'envoyer les données des journaux à CloudWatch Logs. Pourenvoyer les mêmes données de journaux à différents emplacements, vous pouvez ajouter des sectionssupplémentaires avec des ID uniques (par exemple, « CloudWatchLogs2 » et « CloudWatchLogs3 ») etune région différente pour chaque ID.

Pour configurer les paramètres et envoyer les données des journaux à CloudWatch Logs

1. Dans le fichier JSON, localisez la section CloudWatchLogs.

{ "Id": "CloudWatchLogs", "FullName": "AWS.EC2.Windows.CloudWatch.CloudWatchLogsOutput,AWS.EC2.Windows.CloudWatch", "Parameters": { "AccessKey": "", "SecretKey": "", "Region": "us-east-1", "LogGroup": "Default-Log-Group", "LogStream": "{instance_id}" }},

22

Amazon CloudWatch Logs Guide de l'utilisateurLancement rapide : Utilisation de CloudWatch Logs avec des

instances Windows Server 2012 et Windows Server 2008

2. Laissez les champs AccessKey et SecretKey vides. Vous configurez les informations d'identificationà l'aide d'un rôle IAM.

3. Pour Region, entrez la région vers laquelle envoyer les données des journaux (par exemple, us-east-2).

4. Pour LogGroup, entrez le nom de votre groupe de journaux. Ce nom s'affiche sur l'écran Groupes dejournaux dans la console CloudWatch.

5. Pour LogStream, entrez le flux de journal de destination. Ce nom s'affiche sur l'écran Groupes dejournaux > Flux de la console CloudWatch.

Si vous utilisez {instance_id}, la valeur par défaut, le nom de flux de journal est l'ID de l'instance.

Si vous entrez un nom de flux de journal qui n'existe pas déjà, CloudWatch Logs le créeautomatiquement. Vous pouvez définir un nom de flux de journal à l'aide d'une chaîne littérale, desvariables prédéfinies {instance_id}, {hostname} et {ip_address}, ou d'une combinaison decelles-ci.

Étape 3 : Configurer les données à envoyer

Vous pouvez envoyer des données de journaux d'événements, des données de suivi des événements pourWindows (ETW) et d'autres données de journaux à CloudWatch Logs.

Pour envoyer les données de journal des événements d'application Windows à CloudWatch Logs

1. Dans le fichier JSON, localisez la section ApplicationEventLog.

{ "Id": "ApplicationEventLog", "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogName": "Application", "Levels": "1" }},

2. Pour Levels, spécifiez le type de messages à charger. Vous pouvez spécifier l'une des valeurssuivantes :

• 1 - Chargez uniquement les messages d'erreur.• 2 - Chargez uniquement les messages d'avertissement.• 4 - Chargez uniquement les messages d'information.

Vous pouvez associer des valeurs pour inclure plusieurs types de message. Par exemple, la valeur3 charge les messages d'erreur (1) et les messages d'avertissement (2). La valeur 7 charge lesmessages d'erreur (1), les messages d'avertissement (2) et les messages d'information (4).

Pour envoyer les données de journal de sécurité à CloudWatch Logs

1. Dans le fichier JSON, localisez la section SecurityEventLog.

{ "Id": "SecurityEventLog", "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogName": "Security",

23

Amazon CloudWatch Logs Guide de l'utilisateurLancement rapide : Utilisation de CloudWatch Logs avec des

instances Windows Server 2012 et Windows Server 2008

"Levels": "7" }},

2. Pour Levels, entrez 7 pour charger tous les messages.

Pour envoyer des données de journal des événements système à CloudWatch Logs

1. Dans le fichier JSON, localisez la section SystemEventLog.

{ "Id": "SystemEventLog", "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogName": "System", "Levels": "7" }},

2. Pour Levels, spécifiez le type de messages à charger. Vous pouvez spécifier l'une des valeurssuivantes :

• 1 - Chargez uniquement les messages d'erreur.• 2 - Chargez uniquement les messages d'avertissement.• 4 - Chargez uniquement les messages d'information.

Vous pouvez associer des valeurs pour inclure plusieurs types de message. Par exemple, la valeur3 charge les messages d'erreur (1) et les messages d'avertissement (2). La valeur 7 charge lesmessages d'erreur (1), les messages d'avertissement (2) et les messages d'information (4).

Pour envoyer les autres types de données de journal des événements à CloudWatch Logs

1. Dans le fichier JSON, ajoutez une nouvelle section. Chaque section doit avoir un Id unique.

{ "Id": "Id-name", "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogName": "Log-name", "Levels": "7" }},

2. Pour Id, tapez un nom pour le journal à charger (par exemple, WindowsBackup).3. Pour LogName, entrez le nom du journal à charger. Vous pouvez trouver le nom du journal comme

suit.

a. Ouvrez l'Observateur d'événementsb. Dans le panneau de navigation, cliquez sur Journaux d'applications et de services.c. Naviguez jusqu'au journal, puis choisissez Actions, Propriétés.

4. Pour Levels, spécifiez le type de messages à charger. Vous pouvez spécifier l'une des valeurssuivantes :

• 1 - Chargez uniquement les messages d'erreur.

24

Amazon CloudWatch Logs Guide de l'utilisateurLancement rapide : Utilisation de CloudWatch Logs avec des

instances Windows Server 2012 et Windows Server 2008

• 2 - Chargez uniquement les messages d'avertissement.• 4 - Chargez uniquement les messages d'information.

Vous pouvez associer des valeurs pour inclure plusieurs types de message. Par exemple, la valeur3 charge les messages d'erreur (1) et les messages d'avertissement (2). La valeur 7 charge lesmessages d'erreur (1), les messages d'avertissement (2) et les messages d'information (4).

Pour envoyer des données de suivi d'événements (Windows) à CloudWatch Logs

ETW (Event Tracing for Windows, suivi d'événements pour Windows) fournit un mécanisme dejournalisation efficace et détaillé dans lequel les applications peuvent consigner des journaux. ChaqueETW est contrôlé par un gestionnaire de session qui peut démarrer et arrêter la session de journalisation.Chaque session a un fournisseur et un ou plusieurs utilisateurs.

1. Dans le fichier JSON, localisez la section ETW.

{ "Id": "ETW", "FullName": "AWS.EC2.Windows.CloudWatch.EventLog.EventLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogName": "Microsoft-Windows-WinINet/Analytic", "Levels": "7" }},

2. Pour LogName, entrez le nom du journal à charger.3. Pour Levels, spécifiez le type de messages à charger. Vous pouvez spécifier l'une des valeurs

suivantes :

• 1 - Chargez uniquement les messages d'erreur.• 2 - Chargez uniquement les messages d'avertissement.• 4 - Chargez uniquement les messages d'information.

Vous pouvez associer des valeurs pour inclure plusieurs types de message. Par exemple, la valeur3 charge les messages d'erreur (1) et les messages d'avertissement (2). La valeur 7 charge lesmessages d'erreur (1), les messages d'avertissement (2) et les messages d'information (4).

Pour envoyer les journaux personnalisés (tout fichier journal texte) à CloudWatch Logs

1. Dans le fichier JSON, localisez la section CustomLogs.

{ "Id": "CustomLogs", "FullName": "AWS.EC2.Windows.CloudWatch.CustomLog.CustomLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogDirectoryPath": "C:\\CustomLogs\\", "TimestampFormat": "MM/dd/yyyy HH:mm:ss", "Encoding": "UTF-8", "Filter": "", "CultureName": "en-US", "TimeZoneKind": "Local", "LineCount": "5" }},

25

Amazon CloudWatch Logs Guide de l'utilisateurLancement rapide : Utilisation de CloudWatch Logs avec des

instances Windows Server 2012 et Windows Server 2008

2. Pour LogDirectoryPath, entrez le chemin d'accès où les journaux sont stockés sur votre instance.3. Pour TimestampFormat, entrez le format d'horodatage que vous voulez utiliser. Pour plus

d'informations sur les valeurs prises en charge, consultez la rubrique Chaînes de format de date etd'heure personnalisées sur MSDN.

Important

Votre fichier journal source doit avoir l'horodatage au début de chaque ligne de journal et unespace après l'horodatage.

4. Pour Encoding, tapez l'encodage de fichier à utiliser (par exemple, UTF-8). Pour plus d'informationssur les valeurs prises en charge, consultez la rubrique Classe d'encodage sur MSDN.

Note

Utilisez le nom d'encodage, pas le nom complet.5. (Facultatif) Pour Filter, tapez le préfixe des noms de journaux. Laissez ce paramètre vide de façon

à surveiller tous les fichiers. Pour plus d'informations sur les valeurs prises en charge, consultez larubrique Propriété FileSystemWatcherFilter sur MSDN.

6. (Facultatif) Pour CultureName, entrez les paramètres régionaux où l'horodatage est consigné. SiCultureName est vide, il prend par défaut les mêmes paramètres régionaux que ceux actuellementutilisés par votre instance de Windows. Pour plus d'informations sur les valeurs prises en charge,consultez la colonne Language tag du tableau de la rubrique Product Behavior sur MSDN.

Note

Les valeurs div, div-MV, hu et hu-HU ne sont pas prises en charge.7. (Facultatif) Pour TimeZoneKind, tapez Local ou UTC. Vous pouvez définir ce paramètre pour

fournir des informations de fuseau horaire si aucune n'est comprise dans l'horodatage de vosjournaux. Si ce paramètre est laissé vide et si votre horodatage n'inclut pas les informations de fuseauhoraire, CloudWatch Logs utilise le fuseau horaire local par défaut. Ce paramètre est ignoré si votrehorodatage contient déjà des informations de fuseau horaire.

8. (Facultatif) Pour LineCount, entrez le nombre de lignes dans l'en-tête pour identifier le fichier journal.Par exemple, les fichiers journaux IIS ont des en-têtes presque identiques. Vous pouvez entrer 5, quilit les trois premières lignes de l'en-tête du fichier journal pour l'identifier. Dans les fichiers journauxIIS, la troisième ligne contient la date et l'horodatage, mais l'horodatage n'est pas toujours différentd'un fichier journal à l'autre. Pour cette raison, nous recommandons d'inclure au moins une ligne dedonnées de journaux réelles pour affecter une empreinte unique au fichier journal.

Pour envoyer des données de journal IIS à CloudWatch Logs

1. Dans le fichier JSON, localisez la section IISLog.

{ "Id": "IISLogs", "FullName": "AWS.EC2.Windows.CloudWatch.CustomLog.CustomLogInputComponent,AWS.EC2.Windows.CloudWatch", "Parameters": { "LogDirectoryPath": "C:\\inetpub\\logs\\LogFiles\\W3SVC1", "TimestampFormat": "yyyy-MM-dd HH:mm:ss", "Encoding": "UTF-8", "Filter": "", "CultureName": "en-US", "TimeZoneKind": "UTC", "LineCount": "5" }},

26

Amazon CloudWatch Logs Guide de l'utilisateurLancement rapide : Utilisation de CloudWatch Logs avec des

instances Windows Server 2012 et Windows Server 2008

2. Pour LogDirectoryPath, entrez le dossier où les journaux IIS sont stockés pour un site individuel(par exemple, C:\inetpub\logs\LogFiles\W3SVCn).

Note

Seul le format de journal W3C est pris en charge. Les formats IIS, NCSA et Personnalisé nesont pas pris en charge.

3. Pour TimestampFormat, entrez le format d'horodatage que vous voulez utiliser. Pour plusd'informations sur les valeurs prises en charge, consultez la rubrique Chaînes de format de date etd'heure personnalisées sur MSDN.

4. Pour Encoding, tapez l'encodage de fichier à utiliser (par exemple, UTF-8). Pour plus d'informationssur les valeurs prises en charge, consultez la rubrique Classe d'encodage sur MSDN.

Note

Utilisez le nom d'encodage, pas le nom complet.5. (Facultatif) Pour Filter, tapez le préfixe des noms de journaux. Laissez ce paramètre vide de façon

à surveiller tous les fichiers. Pour plus d'informations sur les valeurs prises en charge, consultez larubrique Propriété FileSystemWatcherFilter sur MSDN.

6. (Facultatif) Pour CultureName, entrez les paramètres régionaux où l'horodatage est consigné. SiCultureName est vide, il prend par défaut les mêmes paramètres régionaux que ceux actuellementutilisés par votre instance de Windows. Pour plus d'informations sur les valeurs prises en charge,consultez la colonne Language tag du tableau de la rubrique Product Behavior sur MSDN.

Note

Les valeurs div, div-MV, hu et hu-HU ne sont pas prises en charge.7. (Facultatif) Pour TimeZoneKind, tapez Local ou UTC. Vous pouvez définir ce paramètre pour

fournir des informations de fuseau horaire si aucune n'est comprise dans l'horodatage de vosjournaux. Si ce paramètre est laissé vide et si votre horodatage n'inclut pas les informations de fuseauhoraire, CloudWatch Logs utilise le fuseau horaire local par défaut. Ce paramètre est ignoré si votrehorodatage contient déjà des informations de fuseau horaire.

8. (Facultatif) Pour LineCount, entrez le nombre de lignes dans l'en-tête pour identifier le fichier journal.Par exemple, les fichiers journaux IIS ont des en-têtes presque identiques. Vous pouvez entrer 5, quilirait les cinq premières lignes de l'en-tête du fichier journal pour l'identifier. Dans les fichiers journauxIIS, la troisième ligne contient la date et l'horodatage, mais l'horodatage n'est pas toujours différentd'un fichier journal à l'autre. Pour cette raison, nous recommandons d'inclure au moins une seule lignede données de journaux réelles pour affecter une empreinte unique au fichier journal.

Étape 4 : Configurer le contrôle de flux

Chaque type de données doit avoir une destination correspondante dans la section Flows. Par exemple,pour envoyer le journal personnalisé, le journal ETW et le journal système à CloudWatch Logs, ajoutez(CustomLogs,ETW,SystemEventLog),CloudWatchLogs à la section Flows.

Warning

L'ajout d'une étape qui n'est pas valide bloque le flux. Par exemple, si vous ajoutez une étape demétrique de disque, mais que votre instance ne comporte pas de disque, toutes les étapes du fluxsont bloquées.

Vous pouvez envoyer le même fichier journal plusieurs destinations. Par exemple, pour envoyer le journald'application à deux destinations différentes que vous avez définies dans la section CloudWatchLogs,ajoutez ApplicationEventLog,(CloudWatchLogs,CloudWatchLogs2) à la section Flows.

Pour configurer le contrôle de flux

1. Dans le fichier AWS.EC2.Windows.CloudWatch.json, recherchez la section Flows.

27

Amazon CloudWatch Logs Guide de l'utilisateurDémarrage rapide : Installationde l'agent avec AWS OpsWorks

"Flows": { "Flows": [ "PerformanceCounter,CloudWatch", "(PerformanceCounter,PerformanceCounter2), CloudWatch2", "(CustomLogs, ETW, SystemEventLog),CloudWatchLogs", "CustomLogs, CloudWatchLogs2", "ApplicationEventLog,(CloudWatchLogs, CloudWatchLogs2)" ]}

2. Pour Flows, ajoutez chaque type de données à charger (par exemple, ApplicationEventLog) etsa destination (par exemple, CloudWatchLogs).

Vous avez maintenant terminé de modifier le fichier JSON. Vous l'utiliserez dans une étape ultérieure.

Démarrage de l'agentPour permettre à une instance Amazon EC2 d'exécuter Windows Server 2012 ou Windows Server 2008 etd'envoyer des journaux à CloudWatch Logs, utilisez le service EC2Config (EC2Config.exe). EC2Config4.0 ou une version ultérieure doit être installée sur votre instance, et vous pouvez utiliser cette procédure.Pour plus d'informations sur l'utilisation d'une version antérieure d'EC2Config, consultez Utilisationd'EC2Config 3.x ou version antérieure pour la configuration de CloudWatch dans le Amazon EC2 Guide del'utilisateur pour les instances Windows.

Pour configurer CloudWatch avec EC2Config 4.x

1. Vérifiez l'encodage du fichier AWS.EC2.Windows.CloudWatch.json que vous avez déjà modifié danscette procédure. Seul l'encodage UTF-8 sans BOM est pris en charge. Enregistrez ensuite le fichierdans le dossier suivant de votre instance Windows Server 2008 - 2012 R2 : C:\Program Files\Amazon\SSM\Plugins\awsCloudWatch\.

2. Démarrez ou redémarrez l'agent SSM ()AmazonSSMAgent.exe via le panneau de configurationWindows Services ou à l'aide de la commande PowerShell suivante :

PS C:\> Restart-Service AmazonSSMAgent

Une fois que l'agent SSM a redémarré, il détecte le fichier de configuration et configure l'instance pourl'intégration de CloudWatch. Si vous modifiez les paramètres dans le fichier de configuration local,vous devez redémarrer l'agent SSM pour appliquer les modifications. Pour désactiver l'intégration deCloudWatch au niveau de l'instance, remplacez IsEnabled par false et enregistrez les modificationsdans le fichier de configuration.

Démarrage rapide : Installation de l'agent CloudWatchLogs à l'aide d'AWS OpsWorks et de ChefVous pouvez installer l'agent CloudWatch Logs et créer des flux de journaux à l'aide d'AWS OpsWorkset de Chef, outil tiers d'automatisation de l'infrastructure de cloud et des systèmes. Chef utilise des« recettes », que vous écrivez pour installer et configurer des logiciels sur votre ordinateur, et des« livres de recettes » pour exécuter les tâches de configuration et de distribution de stratégie. Pour plusd'informations, consultez Chef.

Les exemples de recettes Chef ci-dessous expliquent comment surveiller un fichier journal sur chaqueinstance EC2. Les recettes utilisent le nom de la pile en tant que groupe de journaux et le nom d'hôte del'instance en tant que nom de flux de journaux. Pour surveiller plusieurs fichiers journaux, vous devezétendre les recettes afin de créer plusieurs groupes de journaux et flux de journaux.

28

Amazon CloudWatch Logs Guide de l'utilisateurDémarrage rapide : Installationde l'agent avec AWS OpsWorks

Étape 1 : Créer des recettes personnaliséesCréez un référentiel pour stocker vos recettes. AWS OpsWorks prend en charge Git et Subversion, ouvous pouvez stocker une archive dans Amazon S3. La structure du référentiel de votre livre de recettes estdécrite dans Référentiels de livre de recette dans le AWS OpsWorks User Guide. Les exemples ci-dessoussupposent que le nom du livre de recettes est logs. La recette install.rb installe l'agent CloudWatch Logs.Vous pouvez également télécharger l'exemple de livre de recettes (CloudWatchLogs-Cookbooks.zip).

Créez un fichier nommé metadata.rb contenant le code suivant :

#metadata.rb

name 'logs'version '0.0.1'

Créez le fichier de configuration CloudWatch Logs :

#config.rb

template "/tmp/cwlogs.cfg" do cookbook "logs" source "cwlogs.cfg.erb" owner "root" group "root" mode 0644end

Téléchargement et installation de l'agent CloudWatch Logs

# install.rb directory "/opt/aws/cloudwatch" do recursive trueend

remote_file "/opt/aws/cloudwatch/awslogs-agent-setup.py" do source "https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py" mode "0755"end execute "Install CloudWatch Logs agent" do command "/opt/aws/cloudwatch/awslogs-agent-setup.py -n -r region -c /tmp/cwlogs.cfg" not_if { system "pgrep -f aws-logs-agent-setup" }end

Note

Dans l'exemple ci-dessus, remplacez region par l'une des régions suivantes : us-east-1, us-west-1, us-west-2, ap-south-1, ap-northeast-2, ap-southeast-1, ap-southeast-2, ap-northeast-1,eu-central-1, eu-west-1, or sa-east-1

Si l'installation de l'agent échoue, assurez-vous que le package python-dev est installé. Si ce n'est pas lecas, utilisez la commande suivante, puis réessayez d'installer l'agent :

sudo apt-get -y install python-dev

Cette recette utilise un fichier de modèle cwlogs.cfg.erb que vous pouvez modifier pour spécifier plusieursattributs, par exemple les fichiers à conserver. Pour obtenir plus d'informations sur ces attributs, consultezCloudWatch LogsRéférence de l'agent (p. 142).

29

Amazon CloudWatch Logs Guide de l'utilisateurDémarrage rapide : Installationde l'agent avec AWS OpsWorks

[general]# Path to the AWSLogs agent's state file. Agent uses this file to maintain# client side state across its executions.state_file = /var/awslogs/state/agent-state

## Each log file is defined in its own section. The section name doesn't## matter as long as its unique within this file.##[kern.log]### Path of log file for the agent to monitor and upload.##file = /var/log/kern.log### Name of the destination log group.##log_group_name = kern.log### Name of the destination log stream.##log_stream_name = {instance_id}### Format specifier for timestamp parsing.##datetime_format = %b %d %H:%M:%S##

[<%= node[:opsworks][:stack][:name] %>]datetime_format = [%Y-%m-%d %H:%M:%S]log_group_name = <%= node[:opsworks][:stack][:name].gsub(' ','_') %>file = <%= node[:cwlogs][:logfile] %>log_stream_name = <%= node[:opsworks][:instance][:hostname] %>

Le modèle obtient le nom de la pile et le nom de l'hôte en référençant les attributs correspondants dans laconfiguration de la pile et dans le déploiement JSON. L'attribut qui spécifie le fichier à consigner est définidans le fichier d'attributs default.rb du livre de recettes cwlogs (logs/attributes/default.rb).

default[:cwlogs][:logfile] = '/var/log/aws/opsworks/opsworks-agent.statistics.log'

Étape 2 : Créer une pile AWS OpsWorks1. Ouvrez la console AWS OpsWorks à l'adresse https://console.aws.amazon.com/opsworks/.2. Dans le tableau de bord OpsWorks, choisissez Add stack pour créer une pile AWS OpsWorks.3. Sur l'écran Add stack, choisissez Chef 11 stack.4. Pour Stack name, entrez un nom de pile.5. Pour Use custom Chef Cookbooks, choisissez Yes.6. Pour Repository type, sélectionnez le type de référentiel que vous utilisez. Si vous utilisez l'exemple ci-

dessus, choisissez Http Archive.7. Pour Repository URL, entrez le référentiel dans lequel vous avez enregistré le livre de recettes

créé lors de l'étape précédente. Si vous utilisez l'exemple ci-dessus, entrez https://s3.amazonaws.com/aws-cloudwatch/downloads/CloudWatchLogs-Cookbooks.zip.

8. Choisissez Add Stack pour créer la pile.

30

Amazon CloudWatch Logs Guide de l'utilisateurDémarrage rapide : Installationde l'agent avec AWS OpsWorks

Étape 3 : Développer votre rôle IAMPour utiliser CloudWatch Logs avec vos instances AWS OpsWorks, vous devez étendre le rôle IAM utilisépar vos instances.

1. Ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/.2. Dans le volet de navigation, choisissez Policies, puis Create Policy.3. Sur la page Create Policy, choisissez Select sous Create Your Own Policy. Pour plus d'informations

sur la création de stratégies personnalisées, consultez Stratégies IAM pour Amazon EC2 dans leAmazon EC2 Guide de l'utilisateur pour les instances Linux.

4. Sur la page Review Policy, tapez un nom pour la stratégie dans Policy Name.5. Pour Policy Document, collez la stratégie suivante :

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:*:*:*" ] } ]}

6. Choisissez Create Policy.7. Dans le volet de navigation, choisissez Roles, puis dans le volet de contenu, pour Role Name, cliquez

sur le nom du rôle d'instance utilisé par votre pile AWS OpsWorks. Vous pouvez identifier le rôle utilisépar votre pile dans les paramètres de la pile (la valeur par défaut est aws-opsworks-ec2-role).

Note

Choisissez le nom du rôle, et non pas la case à cocher.8. Dans l'onglet Permissions, sous Managed Policies, choisissez Attach Policy.9. Sur la page Attach Policy, dans l'en-tête de la table (à côté de Filter et Search), choisissez Policy Type,

Customer Managed Policies.10. Pour Customer Managed Policies, sélectionnez la stratégie IAM que vous avez créée ci-dessus et

choisissez Attach Policy.

Pour plus d'informations sur les utilisateurs et les stratégies IAM, consultez Utilisateurs et groupes IAMet Gestion des stratégies IAM dans le IAM Guide de l'utilisateur.

Étape 4 : Ajouter une couche1. Ouvrez la console AWS OpsWorks à l'adresse https://console.aws.amazon.com/opsworks/.2. Choisissez Layers dans le volet de navigation.3. Dans le volet de contenu, sélectionnez une couche, puis choisissez Add layer.4. Dans l'onglet OpsWorks, pour Layer type, choisissez Custom.

31

Amazon CloudWatch Logs Guide de l'utilisateurRapporter l'état de l'agent CloudWatch Logs

5. Dans les champs Name et Short name, entrez le nom long et le nom court de la couche, puischoisissez Add layer.

6. Sous l'onglet Recipes, sous Custom Chef Recipes, il y a plusieurs titres—Setup, Configure, Deploy,Undeploy et Shutdown—ce qui correspond aux événements du cycle de vie AWS OpsWorks. AWSOpsWorks déclenche ces événements à ces points clés du cycle de vie de l'instance, ce qui exécuteles recettes associées.

Note

Si les en-têtes ci-dessus ne sont pas visibles, sous Custom Chef Recipes, choisissez edit.7. Entrez logs::config, logs::install à côté de Setup, choisissez + pour l'ajouter à la liste, puis cliquez sur

Save.

AWS OpsWorks exécute cette recette sur chacune des nouvelles instances de cette couche, justeaprès le démarrage de l'instance.

Étape 5 : Ajouter une instanceLa couche contrôle uniquement la façon de configurer des instances. Vous devez maintenant ajouter desinstances à la couche et les démarrer.

1. Ouvrez la console AWS OpsWorks à l'adresse https://console.aws.amazon.com/opsworks/.2. Dans le volet de navigation, choisissez Instances, puis sous votre couche, cliquez sur + Instance.3. Acceptez les paramètres par défaut et choisissez Add Instance pour ajouter l'instance à la couche.4. Dans de la colonne Actions de la ligne, cliquez sur start pour démarrer l'instance.

AWS OpsWorks lance une nouvelle instance EC2 et configure CloudWatch Logs. L'état de l'instancedevient En ligne lorsqu'elle est prête.

Étape 6 : Afficher vos journauxLe nouveau groupe de journaux et le nouveau flux de journal doivent être visibles dans la consoleCloudWatch une fois que l'agent s'exécute depuis quelques instants.

Pour plus d'informations, consultez Affichage des données de journal envoyées à CloudWatchLogs (p. 58).

Rapporter l'état de l'agent CloudWatch LogsUtilisez la procédure suivante pour signaler le statut de l'agent CloudWatch Logs sur votre instance EC2.

Pour signaler le statut de l'agent

1. Connectez-vous à votre instance  EC2. Pour en savoir plus, consultez Connexion à votre instancedans Amazon EC2 Guide de l'utilisateur pour les instances Linux.

Pour plus d'informations sur les problèmes de connexion, consultez Résolution de la connexion à votreinstance dans le Amazon EC2 Guide de l'utilisateur pour les instances Linux.

2. À partir d'une invite de commande, entrez la commande suivante :

sudo service awslogs status

Si vous utilisez Amazon Linux 2, entrez la commande suivante :

32

Amazon CloudWatch Logs Guide de l'utilisateurDémarrage de l'agent CloudWatch Logs

sudo service awslogsd status

3. Vérifiez le fichier /var/log/awslogs.log afin d'identifier les erreurs, avertissements ou problèmes avecl'agent CloudWatch Logs.

Démarrage de l'agent CloudWatch LogsSi l'agent CloudWatch Logs de votre instance EC2 n'a pas démarré automatiquement après l'installation,ou si vous l'avez arrêté, vous pouvez utiliser la procédure suivante pour le démarrer.

Pour démarrer l'agent

1. Connectez-vous à votre instance  EC2. Pour en savoir plus, consultez Connexion à votre instancedans Amazon EC2 Guide de l'utilisateur pour les instances Linux.

Pour plus d'informations sur les problèmes de connexion, consultez Résolution de la connexion à votreinstance dans le Amazon EC2 Guide de l'utilisateur pour les instances Linux.

2. À partir d'une invite de commande, entrez la commande suivante :

sudo service awslogs start

Si vous utilisez Amazon Linux 2, entrez la commande suivante :

sudo service awslogsd start

Arrêter l'agent CloudWatch Logs :Utilisez la procédure suivante pour arrêter l'agent CloudWatch Logs sur votre instance EC2.

Pour arrêter l'agent

1. Connectez-vous à votre instance  EC2. Pour en savoir plus, consultez Connexion à votre instancedans Amazon EC2 Guide de l'utilisateur pour les instances Linux.

Pour plus d'informations sur les problèmes de connexion, consultez Résolution de la connexion à votreinstance dans le Amazon EC2 Guide de l'utilisateur pour les instances Linux.

2. À partir d'une invite de commande, entrez la commande suivante :

sudo service awslogs stop

Si vous utilisez Amazon Linux 2, entrez la commande suivante :

sudo service awslogsd stop

33

Amazon CloudWatch Logs Guide de l'utilisateurLancement rapide : Utilisation de AWS

CloudFormation pour démarrer avec CloudWatch Logs

Lancement rapide : Utilisation de AWSCloudFormation pour démarrer avec CloudWatchLogs

AWS CloudFormation vous permet de décrire et provisionner vos ressources AWS au format JSON. Lesavantages de cette méthode comprennent la possibilité de gérer un ensemble de ressources AWS en tantqu'unité unique, et de répliquer facilement vos ressources AWS d'une région à une autre.

Lorsque vous provisionnez AWS à l'aide de AWS CloudFormation, vous créez des modèles décrivant lesressources AWS à utiliser. L'exemple suivant est un extrait de modèle qui crée un groupe de journaux et unfiltre de métrique qui compte 404 occurrences et envoie ce nombre dans le groupe de journaux.

"WebServerLogGroup": { "Type": "AWS::Logs::LogGroup", "Properties": { "RetentionInDays": 7 }},

"404MetricFilter": { "Type": "AWS::Logs::MetricFilter", "Properties": { "LogGroupName": { "Ref": "WebServerLogGroup" }, "FilterPattern": "[ip, identity, user_id, timestamp, request, status_code = 404, size, ...]", "MetricTransformations": [ { "MetricValue": "1", "MetricNamespace": "test/404s", "MetricName": "test404Count" } ] }}

Il s'agit d'un exemple basique. Vous pouvez configurer des déploiements CloudWatch Logs bien plusriches à l'aide de AWS CloudFormation. Pour plus d'informations sur les exemples de modèle, consultezExtraits de modèle Amazon CloudWatch Logs dans le AWS CloudFormation Guide de l'utilisateur. Pourplus d'informations sur la mise en route, consultez Mise en route avec AWS CloudFormation dans le AWSCloudFormation Guide de l'utilisateur.

34

Amazon CloudWatch Logs Guide de l'utilisateurChamps de journaux et détectés pris en charge

Analyse des données de journal avecCloudWatch Logs Insights

CloudWatch Logs Insights vous permet de rechercher et d'analyser de façon interactive vos donnéesde journaux dans Amazon CloudWatch Logs. Vous pouvez exécuter des requêtes pour répondre plusrapidement et plus efficacement aux problèmes opérationnels. Si un problème se produit, vous pouvezutiliser CloudWatch Logs Insights pour identifier les causes potentielles et valider les correctifs déployés.

CloudWatch Logs Insights inclut un langage de requête spécialisé avec quelques commandes simplesmais puissantes. CloudWatch Logs Insights fournit des exemples de requêtes, des descriptions decommande, la saisie automatique de requête et la découverte de champ de journal pour vous aider àdémarrer. Des exemples de requêtes sont inclus pour plusieurs types de journaux de service AWS.

CloudWatch Logs Insights détecte automatiquement les champs dans les journaux des services AWS, telsque Amazon Route 53, AWS Lambda, AWS CloudTrail et Amazon VPC, et n'importe quelle application oujournal personnalisé qui émet des événements de journal au format JSON.

Vous pouvez utiliser CloudWatch Logs Insights pour rechercher des données de journaux envoyées àCloudWatch Logs le 5 novembre 2018 ou ultérieurement.

Une seule demande peut interroger jusqu'à 20 groupes de journaux. Les requêtes expirent après15 minutes, si elles ne sont pas réalisées. Les résultats de la requête sont disponibles pendant 7 jours.

Important

Si votre équipe de sécurité réseau n'autorise pas l'utilisation de web sockets, vous ne pouvezpas accéder actuellement à la console CloudWatch Logs Insights. Vous pouvez utiliser lesfonctionnalités de requête CloudWatch Logs Insights à l'aide des API. Pour plus d'informations,consultez StartQuery dans le Amazon CloudWatch Logs API Reference.

Sommaire• Champs de journaux et détectés pris en charge (p. 35)• Didacticiel : Exécution et modification d'un exemple de requête (p. 38)• Didacticiel : Exécuter une requête avec une fonction d'agrégation (p. 40)• Didacticiel : Exécuter une requête qui génère une visualisation groupée par champs de

journal (p. 40)• Didacticiel : Exécuter une requête qui produit une visualisation chronologique (p. 41)• Syntaxe de requête CloudWatch Logs Insights (p. 41)• Visualisation des données de journal dans des graphiques (p. 52)• Exemples de requêtes (p. 54)• Ajouter une requête au tableau de bord ou exporter les résultats de la requête (p. 56)• Afficher les requêtes en cours d'exécution ou l'historique des requêtes (p. 57)

Champs de journaux et détectés pris en chargeCloudWatch Logs Insights prend en charge tous les types de journaux. Pour chaque journal envoyé àCloudWatch Logs, cinq champs système sont générés automatiquement :

• @message contient l'événement de journal non analysé brut. Ceci est équivalent au champ messagedans InputLogEvent.

35

Amazon CloudWatch Logs Guide de l'utilisateurChamps de journaux et détectés pris en charge

• @timestamp contient l'horodatage de l'événement contenu dans le champ timestamp de l'événementjournal. Ceci est équivalent au champ timestamp dans InputLogEvent.

• @ingestionTime contient l'heure à laquelle l'événement de journal a été reçu par CloudWatch Logs.• @logStream contient le nom du flux de journaux auquel l'événement de journal a été ajouté. Les flux de

journaux sont utilisés pour regrouper les journaux par le même processus par lequel ils ont été générés.• @log est un identificateur de groupe de journaux sous la forme de account-id:log-group-name.

Cela peut être utile dans le cas de requêtes de plusieurs groupes de journaux, pour identifier le groupede journaux auquel appartient un événement particulier.

CloudWatch Logs Insights insère le symbole @ au début des champs qu'elle génère.

Pour de nombreux types de journaux, CloudWatch Logs détecte également automatiquement les champsde journal contenus dans les journaux. Ces champs de détection automatique figurent dans le tableausuivant.

Pour les autres types de journaux avec des champs que CloudWatch Logs Insights ne permet pasde détecter automatiquement, vous pouvez utiliser la commande parse pour extraire et créer deschamps éphémères à utiliser dans cette requête. Pour plus d'informations, consultez Syntaxe de requêteCloudWatch Logs Insights (p. 41)

Si le nom d'un champ de journal détecté commence par le caractère @, CloudWatch Logs Insights l'afficheavec un autre @ ajouté au début. Par exemple, si un nom de champ de journal est @example.com, ce nomde champ s'affiche sous la forme de @@example.com.

Type de journal Champs de journal détectés

Journaux de fluxAmazon VPC

@timestamp, @logStream, @message, accountId, endTime, interfaceId,logStatus, startTime, version, action, bytes, dstAddr, dstPort,packets, protocol, srcAddr, srcPort

Journaux Route 53 @timestamp, @logStream, @message, edgeLocation, hostZoneId,protocol, queryName, queryTimestamp, queryType, resolverIp,responseCode, version

Journaux Lambda @timestamp, @logStream, @message, @requestId, @duration,@billedDuration, @type, @maxMemoryUsed, @memorySize

Si une ligne de journal Lambda contient un ID de suivi X-Ray, elle inclut égalementles champs suivants : @xrayTraceId et @xraySegmentId.

CloudWatch Logs Insights détecte automatiquement les champs de journal dansles journaux Lambda, mais uniquement pour le premier fragment JSON imbriquédans chaque événement de journal. Si un événement de journal Lambda contientplusieurs fragments JSON, vous pouvez analyser et extraire les champs de journalà l'aide de la commande parse. Pour plus d'informations, consultez Champs desjournaux JSON (p. 37).

JournauxCloudTrail

Journaux auformat JSON

Pour plus d'informations, consultez Champs des journaux JSON (p. 37).

Autres types dejournaux

@timestamp, @ingestionTime, @logStream, @message, @log.

36

Amazon CloudWatch Logs Guide de l'utilisateurChamps des journaux JSON

Champs des journaux JSONCloudWatch Logs Insights représente les champs JSON imbriqués utilisant la notation de points. Dansl'exemple d'événement JSON suivant, le champ type dans l'objet JSON userIdentity est représentésous la forme de userIdentity.type.

Les tableaux JSON sont mis à plat dans une liste de noms et valeurs de champs. Par exemple, pourspécifier la valeur de instanceId pour le premier élément dans requestParameters.instancesSet,utilisez requestParameters.instancesSet.items.0.instanceId.

CloudWatch Logs Insights permet d'extraire un maximum de 100 champs d'événements de journal à partird'un journal JSON. Pour les champs supplémentaires qui ne sont pas extraits, vous pouvez utiliser lacommande parse pour analyser ces champs à partir de l'événement de journal non analysé brut dans lechamp de message.

{ "eventVersion": "1.0","userIdentity": { "type": "IAMUser", "principalId": "EX_PRINCIPAL_ID", "arn": "arn: aws: iam: : 123456789012: user/Alice", "accessKeyId": "EXAMPLE_KEY_ID", "accountId": "123456789012", "userName": "Alice"},"eventTime": "2014-03-06T21: 22: 54Z","eventSource": "ec2.amazonaws.com","eventName": "StartInstances","awsRegion": "us-east-2","sourceIPAddress": "205.251.233.176","userAgent": "ec2-api-tools1.6.12.2","requestParameters": { "instancesSet": { "items": [ { "instanceId": "i-abcde123" } ] }},"responseElements": { "instancesSet": { "items": [ { "instanceId": "i-abcde123", "currentState": { "code": 0, "name": "pending" }, "previousState": { "code": 80, "name": "stopped" } } ] }}

37

Amazon CloudWatch Logs Guide de l'utilisateurDidacticiel : Exécution et modification

d'un exemple de requête

Didacticiel : Exécution et modification d'un exemplede requête

Le didacticiel suivant vous aide à commencer avec CloudWatch Logs Insights. Vous exécutez un exemplede requête, puis vous apprenez à le modifier et à l'exécuter à nouveau.

Pour exécuter une requête, vous devez déjà disposer de journaux stockés dans CloudWatch Logs. Sivous utilisez déjà CloudWatch Logs et que vous disposez de groupes de journaux et de flux de journauxconfigurés, vous êtes prêt à commencer. Vous pouvez également déjà disposer de journaux si vous utilisezdes services tels que AWS CloudTrail, Amazon Route 53 ou Amazon VPC, et que vous avez configurédes journaux de ces services à transmettre à CloudWatch Logs. Pour plus d'informations sur l'envoi dejournaux à CloudWatch Logs, consultez Démarrer avec CloudWatch Logs (p. 5).

Les requêtes dans CloudWatch Logs Insights renvoient un ensemble de champs à partir d'évènementsde journaux, ou le résultat d'une agrégation mathématique ou d'une autre opération réalisée sur lesévénements de journaux. Ce didacticiel illustre une requête qui renvoie une liste d'événements dejournaux.

Exécuter un exemple de requêteCommencez par exécuter un exemple de requête.

Pour exécuter un exemple de requête CloudWatch Logs Insights

1. Ouvrez la console CloudWatch à l'adresse https://console.aws.amazon.com/cloudwatch/.2. Dans le volet de navigation, choisissez Insights (Informations).

Près du haut de l'écran se trouve l'éditeur de requête. Lorsque vous ouvrez CloudWatch Logs Insightspour la première fois, cette zone contient une requête par défaut qui renvoie les 20 événements dejournaux les plus récents.

3. Sélectionnez un ou plusieurs groupes de journaux à interroger, au-dessus de l'éditeur de requête.

Lorsque vous sélectionnez un groupe de journaux, CloudWatch Logs Insights détecteautomatiquement les champs dans les données du groupe de journaux et les affiche dans lesDiscovered fields (Champs détectés) dans le volet droit. Il affiche également un graphique à barres desévénements de journaux dans ce groupe de journaux au fil du temps. Ce graphique à barres montrela répartition des événements dans le groupe de journaux correspondant à vos requête et plage detemps, pas seulement les événements affichés dans le tableau.

4. Choisissez Run Query (Exécuter la requête).

Les résultats de la requête s'affichent. Dans cet exemple, les résultats sont les 20 évènements dejournaux les plus récents (tous types confondus).

5. Pour afficher toutes les champs renvoyés de l'un des événements de journaux, choisissez la flèche àgauche de cet événement de journal.

Modifier l'exemple de requêteDans ce didacticiel, vous modifiez l'exemple de requête pour afficher les 50 événements de journaux lesplus récents.

Si vous n'avez pas encore exécuté le didacticiel précédent, faites-le maintenant. Ce didacticiel commenceau moment où le didacticiel précédent se termine.

38

Amazon CloudWatch Logs Guide de l'utilisateurAjouter une commande de filtre à l'exemple de requête

Note

Certains exemples de requêtes fournis avec CloudWatch Logs Insights utilisent les commandeshead ou tail au lieu de limit. Ces commandes sont considérées comme obsolètes et ont étéremplacés par limit. Utilisez limit au lieu de head ou tail dans toutes les requêtes que vousécrivez.

Pour modifier l'exemple de requête CloudWatch Logs Insights

• Dans l'éditeur de requête, remplacez 20 par 50. Choisissez Run Query (Exécuter la requête).

Les résultats de la nouvelle requête s'affichent. Si le groupe de journaux dispose de suffisamment dedonnées dans la plage de temps par défaut, 50 journaux d'évènements sont désormais répertoriés.

Ajouter une commande de filtre à l'exemple de requêteCe didacticiel explique comment apporter une modification plus puissante à la requête dans l'éditeur derequête. Dans ce didacticiel, vous filtrez les résultats de la requête précédente basée sur un champ dansles événements de journaux récupérés.

Si vous n'avez pas encore exécuté les didacticiels précédents, faites-le maintenant. Ce didacticielcommence au moment où le didacticiel précédent se termine.

Pour ajouter une commande de filtre à la requête précédente

1. Choisissez un champ à filtrer. Pour afficher les champs contenus dans un événement de journalspécifique, choisissez la flèche située à gauche de cette ligne. La zone Discovered fields (Champsdétectés) affiche les champs les plus courants détectés par CloudWatch Logs dans les événementsde journaux reçus par ce groupe de journaux au cours des 15 dernières minutes, et le pourcentagede ces événements de journaux dans lesquels chaque champ s'affiche. Si Discovered fields (Champsdétectés) ne s'affiche pas, choisissez la flèche gauche en haut à droite de l'écran pour ouvrir le voletdroit.

Le champ awsRegion peut s'afficher dans votre évènement de journal, en fonction de la nature desévénements dans vos journaux. Pour le reste de ce didacticiel, vous utilisez awsRegion en tant quechamp de filtre, mais vous pouvez utiliser un autre champ si celui-ci n'est pas disponible.

2. Dans la zone de l'éditeur de requête, placez votre curseur après 50 et appuyez sur Entrée.3. Sur la nouvelle ligne, commencez par entrer une barre verticale (« | ») et un espace. Les commandes

d'une requête CloudWatch Logs Insights doivent être séparés par la barre verticale.4. Saisissez filter awsRegion="us-east-1".5. Choisissez Run Query (Exécuter la requête).

La requête s'exécute à nouveau, et affiche désormais les 50 résultats les plus récents quicorrespondent au nouveau filtre.

Si vous avez filtré sur un autre champ et obtenu un résultat d'erreur, il se peut que vous ayez besoind'utiliser le nom du champ. Si le nom du champ inclut des caractères non alphanumériques, vousdevez placer des guillemet inversés (« ` ») avant et après le nom du champ : par exemple, `error-code`="102".

Il est nécessaire d'utiliser le guillemet inversé pour les noms de champs contenant des caractères nonalphanumériques, mais pas pour des valeurs. Les valeurs sont toujours contenues entre guillemetsdoubles (« " »).

39

Amazon CloudWatch Logs Guide de l'utilisateurDidacticiel : Exécuter une requête

avec une fonction d'agrégation

CloudWatch Logs Insights inclut des capacités de requête puissantes, y compris plusieurs commandeset la prise en charge des expressions régulières, des opérations mathématiques et statistiques. Pour plusd'informations, consultez Syntaxe de requête CloudWatch Logs Insights (p. 41).

Didacticiel : Exécuter une requête avec une fonctiond'agrégation

Dans ce didacticiel, vous exécutez une requête qui renvoie les résultats de l'exécution de fonctionsd'agrégation sur les enregistrements de journaux.

Pour exécuter une requête d'agrégation

1. Ouvrez la console CloudWatch à l'adresse https://console.aws.amazon.com/cloudwatch/.2. Dans le panneau de navigation, choisissez Insights (Informations).3. Sélectionnez un ou plusieurs groupes de journaux.4. Dans l'éditeur de requête, supprimez la requête actuellement affichée, puis saisissez les informations

suivantes, et choisissez Run query (Exécuter la requête). Remplacez fieldname par le nom d'un champqui s'affiche dans la zone Discovered fields (Champs détectés) à droite de l'écran.

stats count(*) by fieldname

Les résultats affichent le nombre d'événements de journaux du groupe de journaux reçus parCloudWatch Logs qui contiennent chacun une valeur différente pour le nom de champ sélectionné.

Didacticiel : Exécuter une requête qui génère unevisualisation groupée par champs de journal

Lorsque vous exécutez une requête qui utilise la fonction stats pour grouper les résultats renvoyés parles valeurs d'un ou de plusieurs champs dans les entrées du journal, vous pouvez afficher les résultatssous la forme d'un graphique à barres. Cela vous permet de visualiser plus efficacement les tendancesdans vos journaux.

Pour exécuter une requête pour générer une visualisation

1. Ouvrez la console CloudWatch à l'adresse https://console.aws.amazon.com/cloudwatch/.2. Dans le panneau de navigation, choisissez Insights (Informations).3. Sélectionnez un ou plusieurs groupes de journaux à interroger.4. Dans l'éditeur de requête, supprimez le contenu actuel, entrez la fonction stats suivante, puis

choisissez Run query (Exécuter la requête).

stats count(*) by @logStream | limit 100

Les résultats indiquent le nombre d'événements de journal dans le groupe de journaux pour chaqueflux de journaux. Les résultats sont limités à seulement 100 lignes.

5. Choisissez l'onglet Visualization (Visualisation).6. Sélectionnez la flèche près de Line (Ligne), puis choisissez Bar (Barre).

40

Amazon CloudWatch Logs Guide de l'utilisateurDidacticiel : Exécuter une requête qui

produit une visualisation chronologique

Le graphique à barres apparaît, affichant une barre pour chaque flux de journaux du groupe dejournaux.

Didacticiel : Exécuter une requête qui produit unevisualisation chronologique

Lorsque vous exécutez une requête qui utilise la fonction bin() pour regrouper les résultats renvoyésselon une période de temps, vous pouvez afficher les résultats sous forme de graphique linéaire, degraphique en aires empilées ou de diagramme à barres. Cela vous aide à visualiser plus efficacement lestendances des événements de journal au fil du temps.

Pour exécuter une requête pour générer une visualisation

1. Ouvrez la console CloudWatch à l'adresse https://console.aws.amazon.com/cloudwatch/.2. Dans le panneau de navigation, choisissez Insights (Informations).3. Sélectionnez un ou plusieurs groupes de journaux à interroger.4. Dans l'éditeur de requête, supprimez le contenu actuel, entrez la fonction stats suivante, puis

choisissez Run query (Exécuter la requête).

stats count(*) by bin(30s)

Les résultats affichent le nombre d'événements de journaux du groupe de journaux reçus parCloudWatch Logs à chaque période de 30 secondes.

5. Choisissez l'onglet Visualization (Visualisation).

Les résultats sont affichés sous forme de graphique linéaire. Pour basculer vers un graphique enaires empilées ou un graphique à barres, choisissez la flèche en regard de Ligne en haut à droite dugraphique.

Syntaxe de requête CloudWatch Logs InsightsCloudWatch Logs Insights prend en charge un langage de requête que vous pouvez utiliser pour effectuerdes requêtes sur vos groupes de journaux. Chaque requête peut inclure une ou plusieurs commandes derequête séparées par des barres verticales de type Unix (|).

Six commandes de requête sont prises en charge, ainsi que de nombreuses fonctions et opérations desupport, y compris les expressions régulières, les opérations arithmétiques, les opérations de comparaison,les fonctions numériques, les fonctions datetime, les fonctions de chaîne et les fonctions génériques.

Les commentaires sont également pris en charge. Les lignes d’une requête qui commencent par lecaractère# sont ignorées.

Pour plus d'informations sur les champs que CloudWatch Logs détecte automatiquement, consultezChamps de journaux et détectés pris en charge (p. 35).

Commandes de requête CloudWatch Logs InsightsLe tableau suivant répertorie les six commandes de requête prises en charge avec des exemples basiques.Pour des exemples de requêtes plus performants, consultez Exemples de requêtes (p. 54).

41

Amazon CloudWatch Logs Guide de l'utilisateurCommandes de requête prises en charge

Commande Description Exemples

display Spécifie les champs à afficher dans lesrésultats de la requête. Si vous spécifiezcette commande plusieurs fois dans votrerequête, seuls les champs spécifiés dans ladernière occurrence sont utilisés.

FIELDS @message| PARSE @message "[*] *" as loggingType, loggingMessage| FILTER loggingType = "ERROR"| DISPLAY loggingMessage

Cet exemple utilise le champ @message etcrée les champs éphémères loggingTypeet loggingMessage à utiliser dansla requête. Il filtre les événements quicontiennent ERROR comme valeur pourloggingType, puis n'affiche que le champloggingMessage dans les résultats.

fields Extrait les champs spécifiés desévénements de journaux. Vous pouvezutiliser des fonctions et des opérations ausein d'une commande de champs.

fields `foo-bar`, action, abs(f3-f4)

Cet exemple extrait les champs foo-bar, action et la valeur absolue de ladifférence entre f3 et f4 pour tous lesévénements de journaux dans le groupe dejournaux.

Le guillemet inversé ` est nécessaireautour de foo-bar, car ce nom de champinclut un caractère non alphanumérique.Tout champ de journal nommé dans unerequête contenant des caractères autresque le « @ », le point (.) et des caractèresalphanumériques doit être entourée deguillemets inversés.

filter Permet de filtrer les résultats d'unerequête en fonction d'une ou de plusieursconditions. Vous pouvez utiliser desopérateurs de comparaison (=, !=, <, <=, >,>=), des opérateurs booléens (and, or etnot) et des expressions régulières.

Vous pouvez utiliser in pour testerl'appartenance définie. Mettez un tableauavec les éléments à vérifier immédiatementaprès in. Vous pouvez utiliser not avecin.

fields f1, f2, f3 | filter (duration>2000)

extrait les champsf1, f2 et f3 pour tousles événements de journaux avec unevaleur supérieure à 2 000 dans le champduration.

filter (duration>2000)

est également une requête valide, maisles résultats n'affichent pas des champsdistincts. Au lieu de cela, les résultatsaffichent @timestamp et toutes lesdonnées de journaux dans le champ@message pour tous les événements dejournaux dont la durée est supérieure à2 000.

42

Amazon CloudWatch Logs Guide de l'utilisateurCommandes de requête prises en charge

Commande Description Exemples

fields f1, f2 | filter (f1=10 or f3>25)

extrait les champs f1 et f2 pour tous lesévénements de journaux où f1 a pourvaleur 10 ou f3 est supérieur à 25.

fields f1 | filter statusCode like /2\d\d/

renvoie les événements de journaux où lechamp statusCode a une valeur compriseentre 200 et 299.

fields @timestamp, @message | filter @message in [300,400,500]

renvoie les événements de journal quiincluent « 300 », « 400 » ou « 500 » dans lemessage.

fields @timestamp, @message| filter @message not in ["foo","bar",1]

renvoie les événements de journal quin'incluent pas « foo », « bar » ou « 1 » dansle message.

stats Calcule des statistiques de regroupementbasées sur les valeurs des champs dejournaux. Plusieurs opérateurs statistiquessont pris en charge, notamment sum(),avg(), count(), ,min() et max().

Lorsque vous utilisez stats, vous pouvezégalement utiliser by pour spécifier un ouplusieurs critères à utiliser pour regrouperles données lors du calcul des statistiques.

stats avg (f1) by f2

calcule la valeur moyenne de f1 pourchaque valeur unique de f2.

sort Trie les événements de journauxrécupérés. L'ordre croissant (asc) etdécroissant (desc) sont pris en charge.

fields f1, f2, f3 | sort f1 desc

extrait les champs f1, f2 et f3 et trieles événements renvoyés par ordredécroissant en fonction de la valeur de f1.

43

Amazon CloudWatch Logs Guide de l'utilisateurCommandes de requête prises en charge

Commande Description Exemples

limit Spécifie le nombre d'événements de journalrenvoyés par la requête.

Vous pouvez l'utiliser pour limiter lesrésultats à un petit nombre afin de voir unensemble limité de résultats pertinents.Vous pouvez également utiliser limitavec un nombre compris entre 1 000 et10 000 pour augmenter le nombre de lignesdu résultat de la requête affichées dans laconsole à un montant supérieur à la valeurpar défaut de 1 000 lignes.

Si vous ne spécifiez pas de limite, larequête affiche par défaut un maximum de1 000 lignes.

fields f1, f2 | sort @timestamp desc | limit 25

extrait les champs f1 et f2, trie lesévénements par ordre décroissant enfonction de la valeur de @timestamp,et renvoie les 25 premiers événementspar ordre de tri. Dans ce cas, l'ordre de tridépend de l'horodatage en commençantpar le plus récent, donc les 25 événementsles plus récents sont renvoyés.

Certains exemples de requêtes fournisavec CloudWatch Logs Insights utilisentles commandes head ou tail au lieu delimit. Ces commandes sont considéréescomme obsolètes et ont été remplacés parlimit. Utilisez limit au lieu de head outail dans toutes les requêtes que vousécrivez.

44

Amazon CloudWatch Logs Guide de l'utilisateurExpressions régulières dans la commande de filtre

Commande Description Exemples

parse Permet d'extraire les données d'un champde journal, en créant un ou plusieurschamps éphémères que vous pouvez traiterultérieurement dans la requête. parseaccepte les expressions glob ainsi que lesexpressions ordinaires.

Pour analyser les expressions glob,fournissez la commande avec une chaînede constantes (caractères entourés deguillemets simples ou doubles) où chaqueélément variable du texte est remplacépar un astérisque (*). Ces données sontextraites en champs éphémères et sevoient attribuer un alias après le mot clé as,dans l'ordre de position.

Placez des expressions régulières entrebarres obliques (/). Au sein de l'expression,chaque partie de la chaîne de caractèresqui doit être extraite du nom de capture estincluse dans un groupe de capture nommé.Voici un exemple d'un groupe de capturenommé : (?<name>.*), où name est lenom et .* le modèle.

En utilisant cette seule ligne de journal àtitre d'exemple :

25 May 2019 10:24:39,474 [ERROR] {foo=2, bar=data} The error was: DataIntegrityException

Les deux expressions d'analyse suivantesexécutent chacune les opérationssuivantes : les champs éphémèreslevel, config et exceptionsont extraits. level a la valeurERROR, config a la valeur {foo=2,bar=data} et exception a la valeurDataIntegrityException. La premièreexpression utilise une expression glob et laseconde une expression régulière.

parse @message "[*] * The error was: *" as level, config, exception

parse @message /\[(?<level>\S+)\]\s+(?<config>\{.*\})\s+The error was: (?<exception>\S+)/

L'exemple suivant utilise une expressionrégulière pour extraire les champséphémères @user2, @method2 et@latency2 à partir du champ du journal@message et renvoie la latence moyennepour chaque combinaison unique de@method2 et @user2.

parse @message /user=(?<user2>.*?), method:(?<method2>.*?), latency := (?<latency2>.*?)/ | stats avg(@latency2) by @method2, @user2

Expressions régulières dans la commande de filtreVous pouvez utiliser like ou =~ (signe égal suivi d'un tilde) dans la commande de requête filter pourfiltrer par sous-chaînes ou expressions régulières. Placez votre chaîne de correspondance entre guillemetsdoubles ou guillemets simples pour effectuer la mise en correspondance des sous-chaînes. Pour effectuerla mise en correspondance d'une expression régulière, placez celle-ci entre des barres obliques. Larequête renvoie uniquement les événements de journaux qui correspondent aux critères définis.

Exemples

Les trois exemples suivants renvoient tous les événements dans lesquels f1 contient le mot Exception.Les deux premiers exemples utilisent des expressions régulières, et le troisième exemple utilise unecorrespondance de sous-chaîne. Les trois exemples sont sensibles à la casse.

45

Amazon CloudWatch Logs Guide de l'utilisateurUtilisation d'alias dans les requêtes

fields f1, f2, f3 | filter f1 like /Exception/

fields f1, f2, f3 | filter f1 =~ /Exception/

fields f1, f2, f3 | filter f1 like "Exception"

L'exemple suivant utilise une expression régulière et renvoie tous les événements dans lesquels f1contient le mot Exception. La requête n'est pas sensible à la casse.

fields f1, f2, f3 | filter f1 like /(?i)Exception/

L'exemple suivant utilise une expression régulière et renvoie tous les événements dans lesquels f1contient exactement le mot Exception. La requête n'est pas sensible à la casse.

fields f1, f2, f3 | filter f1 =~ /^(?i)Exception$/

Utilisation d'alias dans les requêtesVous pouvez utiliser as pour créer un ou plusieurs alias dans une requête. Les alias sont pris en chargedans les commandes fields, stats et sort.

Vous pouvez créer des alias pour les champs de journaux et pour les résultats des opérations et desfonctions.

Exemples

Les exemples suivants illustrent l'utilisation d'alias dans les commandes de requête.

fields abs(myField) as AbsoluteValuemyField, myField2

Renvoie la valeur absolue de myField comme AbsoluteValuemyField et renvoie également le champmyField2.

stats avg(f1) as myAvgF1 | sort myAvgF1 desc

Calcule la moyenne des valeurs de f1 en tant que myAvgF1 et les renvoie par ordre décroissant seloncette valeur.

Utilisation de commentaires dans des requêtesVous pouvez commenter les lignes d’une requête en utilisant le caractère #. Les lignes qui commencentpar le caractère# sont ignorées. Cela peut être utile pour documenter votre requête ou ignorertemporairement une partie d'une requête complexe pour un appel, sans supprimer cette ligne.

Dans l'exemple suivant, la deuxième ligne de la requête est ignorée.

fields @timestamp, @message# | filter @message like /delay/| limit 20

Opérations et fonctions prises en chargeLe langage de requête prend en charge de nombreux types d'opérations et de fonctions, comme indiquédans les tableaux suivants.

46

Amazon CloudWatch Logs Guide de l'utilisateurOpérations et fonctions prises en charge

Opérations de comparaison

Vous pouvez utiliser des opérations de comparaison dans la commande filter et en tant qu'argumentspour d'autres fonctions. Les opérations de comparaison acceptent tous les types de données en tantqu'arguments et renvoient un résultat booléen.

= != < <= > >=

Opérateurs booléens

Vous pouvez utiliser les opérateurs booléens and, or et not. Vous pouvez utiliser ces opérateursbooléens uniquement dans les fonctions qui renvoient une valeur booléenne.

Opérations arithmétiques

Vous pouvez utiliser des opérations arithmétiques dans les commandes filter et fields, et en tantqu'arguments pour d'autres fonctions. Les opérations arithmétiques acceptent les types de donnéesnumériques en tant qu'arguments numériques et renvoient des résultats numériques.

Opération Description

a + b Addition

a - b Soustraction

a * b Multiplication

a / b Division

a ^ b Puissance. 2 ^ 3 renvoie 8

a % b Valeurs restante ou module. 10 % 3 renvoie 1

Opérations numériques

Vous pouvez utiliser des opérations numériques dans les commandes filter et fields, et en tantqu'arguments pour d'autres fonctions. Les opérations numériques acceptent les types de donnéesnumériques en tant qu'arguments numériques et renvoient des résultats numériques.

Opération Description

abs(a) Valeur absolue

ceil(a) Arrondir jusqu'au nombre entier supérieur suivant(le plus petit nombre entier supérieur à la valeur dea).

floor(a) Arrondir jusqu'au nombre entier inférieur suivant (leplus petit nombre entier inférieur à la valeur de a).

greatest(a,b,... z) Renvoie la valeur la plus grande.

least(a, b, ... z) Renvoie la valeur la plus petite.

log(a) Journal naturel

sqrt(a) Racine carrée

47

Amazon CloudWatch Logs Guide de l'utilisateurOpérations et fonctions prises en charge

Fonctions générales

Vous pouvez utiliser des fonctions générales dans les commandes filter et fields, et en tantqu'arguments pour d'autres fonctions.

Fonction Arguments Type derésultat

Description

ispresent(fieldname) Champ dejournal

Booléen Renvoie true si le champexiste.

coalesce(fieldname1,fieldname2, ... fieldnamex)

Champs dejournal

Champ dejournal

Renvoie la première valeurnon nulle de la liste.

Fonctions de chaîne

Vous pouvez utiliser des fonctions de chaîne dans les commandes filter et fields, et en tantqu'arguments pour d'autres fonctions.

Fonction Arguments Type derésultat

Description

isempty(fieldname) String Booléen Renvoie true si le champest manquant ou est unechaîne vide.

isblank(fieldname) String Booléen Renvoie true si le champest manquant, est unechaîne vide ou contientuniquement un espace.

concat(string1, string2, ...stringz)

Chaînes String Concatène les chaînes.

ltrim(string) or ltrim(string1,string2)

String String Suppriment tous lesespaces à gauche dela chaîne. Si la fonctioncontient un deuxièmeargument de type chaîne,elle supprime les caractèresde string2 à gauche destring1. Par exemple,ltrim("xyZfooxyZ","xyZ")renvoie "fooxyZ".

rtrim(string) or rtrim(string1,string2)

String String Suppriment tous lesespaces à droite de lachaîne. Si la fonctioncontient un deuxièmeargument de type chaîne,elle supprime les caractèresde string2 à droite destring1. Par exemple,rtrim("xyZfooxyZ","xyZ")renvoie "xyZfoo".

48

Amazon CloudWatch Logs Guide de l'utilisateurOpérations et fonctions prises en charge

Fonction Arguments Type derésultat

Description

trim(string) or trim(string1,string2)

String String Suppriment tous lesespaces à chaqueextrémité de la chaîne.Si la fonction contient undeuxième argument de typechaîne, elle supprime lescaractères de string2à chaque extrémité destring1. Par exemple,trim("xyZfooxyZ","xyZ")renvoie "foo".

strlen(string) String Numéro Renvoie la longueur de lachaîne en points de codeUnicode.

toupper(string) String String Convertit la chaîne enmajuscules.

tolower(string) String String Convertit la chaîne enminuscules.

substr(string1, x), orsubstr(string1, x, y)

String(chaîne),number(nombre)ou string,number,number

String Renvoie une sous-chaîneà partir de l'index spécifiépar l'argument de nombreà la fin de la chaîne. Sila fonction comporte unsecond argument denombre, elle comporte lalongueur de la sous-chaîneà récupérer. Par exemple,substr("xyZfooxyZ",3,3) renvoie "foo".

replace(string1, string2,string3)

String,String, String

String Remplace toutes lesinstances de string2dans string1 parstring3. Par exemple :replace("foo","o","0")renvoie "f00".

strcontains(string1, string2) String Numéro Renvoie 1 si string1contient string2 et 0 dansle cas contraire.

Fonctions Datetime

Vous pouvez utiliser des fonctions datetime dans les commandes filter et fields, et en tantqu'arguments pour d'autres fonctions. Vous pouvez utiliser ces fonctions pour créer des compartiments detemps pour les requêtes avec des fonctions de regroupement.

Dans le cadre des fonctions datetime, vous pouvez utiliser des périodes qui se composent d'un nombrepuis de m pour les minutes ou de h pour les heures. Par exemple, 10m correspond à 10 minutes et 1hcorrespond à une heure.

49

Amazon CloudWatch Logs Guide de l'utilisateurOpérations et fonctions prises en charge

Fonction Arguments Type derésultat

Description

bin(period) Période Horodatage Arrondit la valeur de @timestamp pour lapériode donnée, puis la tronque.

datefloor(a, period) Timestamp,period

Horodatage Tronque l'horodatage pour lapériode donnée. Par exemple,datefloor(@timestamp, 1h) tronquetoutes les valeurs de @timestamp vers lavaleur la plus basse de l'heure.

dateceil(a, period) Timestamp,period

Horodatage Arrondit l'horodatage pour la périodedonnée, puis la tronque. Par exemple,dateceil(@timestamp, 1h) tronquetoutes les valeurs de @timestamp vers lavaleur la plus élevée de l'heure.

fromMillis(fieldname) Numéro Horodatage Interprète le champ en entrée comme lenombre de millisecondes depuis l'époqueUnix et le convertit en horodatage.

toMillis(fieldname) Horodatage Numéro Convertit l'horodatage trouvé dans lechamp nommé en un nombre représentantles millisecondes depuis l'époque Unix.

Fonctions d'adresse IP

Vous pouvez utiliser les fonctions de chaîne d'adresse IP dans les commandes filter et fields, et entant qu'arguments pour d'autres fonctions.

Fonction Arguments Type derésultat

Description

isValidIp(fieldname) String Booléen Renvoie true si le champ est une adresseIP v6 ou v4 valide.

isValidIpV4(fieldname) String Booléen Renvoie true si le champ est une adresseIP v4 valide.

isValidIpV6(fieldname) String Booléen Renvoie true si le champ est une adresseIP v6 valide.

isIpInSubnet(fieldname,string)

String, String Booléen Renvoie true si le champ est une adresseIP valide v4 ou v6 valide au sein dusous-réseau v4 ou v6 spécifié. Lorsquevous spécifiez le sous-réseau, utilisez lanotation CIDR telle que 192.0.2.0/24 ou2001:db8::/32.

isIpv4InSubnet(fieldname,string)

String, String Booléen Renvoie true si le champ est une adresseIP valide v4 valide dans le sous-réseau v4spécifié. Lorsque vous spécifiez le sous-réseau, utilisez la notation CIDR telle que192.0.2.0/24.

50

Amazon CloudWatch Logs Guide de l'utilisateurOpérations et fonctions prises en charge

Fonction Arguments Type derésultat

Description

isIpv6InSubnet(fieldname,string)

String, String Booléen Renvoie true si le champ est une adresseIP v6 valide dans le sous-réseau v6spécifié. Lorsque vous spécifiez le sous-réseau, utilisez la notation CIDR telle que2001:db8::/32.

Fonctions d'agrégation dans la commande Stats

Vous pouvez utiliser des fonctions d'agrégation dans la commande stats et en tant qu'arguments pourd'autres fonctions.

Fonction Arguments Type derésultat

Description

avg(NumericFieldname) Champde journalnumérique

Numéro Moyenne des valeurs dans le champspécifié.

count(fieldname) orcount(*)

Champ dejournal

Numéro Compte les enregistrements de journal.count(*) compte tous les enregistrementsdans le groupe de journaux, tandisque count (fieldname) compte tous lesenregistrements qui incluent le nom dechamp.

count_distinct(fieldname)Champ dejournal

Numéro Renvoie le nombre de valeurs uniques pourle champ. Si le champ a une cardinalitétrès élevée (contient de nombreusesvaleurs uniques), la valeur renvoyée parcount_distinct n'est qu'une approximation.

max(fieldname) Champ dejournal

Valeur dechamp dejournal

Valeur maximale des valeurs pour cejournal dans le champ interrogé.

min(fieldname) Champ dejournal

Valeur dechamp dejournal

Valeur minimale des valeurs pour ce journaldans le champ interrogé.

pct(fieldname, value) Valeur dechamp dejournal,valeur

Valeur dechamp dejournal

Un centile indique la position relative d'unevaleur dans un ensemble de données. Parexemple, pct(@duration, 95) renvoiela valeur @duration à laquelle 95 % desvaleurs de @duration sont inférieuresà cette valeur et 5 % des valeurs lui sontsupérieures.

stddev(NumericFieldname)Champde journalnumérique

Numéro Déviation standard des valeurs dans lechamp spécifié.

sum(NumericFieldname) Champde journalnumérique

Numéro Somme des valeurs dans le champspécifié.

51

Amazon CloudWatch Logs Guide de l'utilisateurVisualisation des données du journal dans des graphiques

Fonctions de non-agrégation dans la commande Stats

Vous pouvez utiliser des fonctions de non-agrégation dans la commande stats et en tant qu'argumentsd'autres fonctions.

Fonction Arguments Type derésultat

Description

earliest(fieldname) Champ dejournal

Champ dejournal

Renvoie la valeur de fieldName àpartir de l'événement de journal qui al'horodatage le plus ancien dans lesjournaux interrogés.

latest(fieldname) Champ dejournal

Champ dejournal

Renvoie la valeur de fieldName àpartir de l'événement de journal qui al'horodatage le plus récent dans lesjournaux interrogés.

sortsFirst(fieldname) Champ dejournal

Champ dejournal

Renvoie la valeur de fieldName triée lapremière dans les journaux interrogés.

sortsLast(fieldname) Champ dejournal

Champ dejournal

Renvoie la valeur de fieldName triée ladernière dans les journaux interrogés.

Visualisation des données de journal dans desgraphiques

Vous pouvez utiliser des visualisations telles que des graphiques à barres, des graphiques linéaires et desgraphiques en aires empilées pour identifier plus efficacement les modèles dans vos données de journal.CloudWatch Logs Insights génère des visualisations pour les requêtes qui utilisent la fonction stats etune ou plusieurs fonctions d'agrégation. Pour plus d’informations, consultez Fonctions d'agrégation dans lacommande Stats (p. 51).

Toutes ces requêtes peuvent produire des graphiques à barres. En outre, si votre requête utilise lafonction bin() pour regrouper les données par un champ dans le temps, vous pouvez également voir desgraphiques linéaires et des graphiques en aires empilées.

Rubriques• Visualisation des données en séries chronologiques (p. 52)• Visualisation des données de journal regroupées par champs (p. 53)

Visualisation des données en séries chronologiquesLes visualisations chronologiques fonctionnent pour les requêtes présentant les caractéristiques suivantes :

• La requête contient une ou plusieurs fonctions d'agrégation. Pour plus d'informations, consultezFonctions d'agrégation dans la commande Stats (p. 51).

• La requête utilise la fonction bin() pour regrouper les données en un champ.

Ces requêtes peuvent produire des graphiques linéaires, des graphiques en aires empilées et desgraphiques à barres.

52

Amazon CloudWatch Logs Guide de l'utilisateurVisualisation des données de

journal regroupées par champs

Exemples

Pour un didacticiel complet, consultez the section called “Didacticiel : Exécuter une requête qui produit unevisualisation chronologique” (p. 41). Les paragraphes suivants incluent d'autres exemples de requêtequi fonctionnent pour la visualisation chronologique.

La requête suivante génère une visualisation des valeurs moyennes du champ myfield1, avec unpoint de données créé toutes les cinq minutes. Chaque point de données correspond à l'agrégation desmoyennes des valeurs myfield1 des journaux des 5 minutes précédentes.

stats avg(myfield1) by bin(5m)

La requête suivante génère une visualisation des trois valeurs basées sur différents champs, avec un pointde données créé toutes les 5 minutes. La visualisation est générée, car la requête contient des fonctionsd'agrégation et utilise bin() comme champ de regroupement.

stats avg(myfield1), min(myfield2), max(myfield3) by bin(5m)

Restrictions pour les graphiques linéaires et les graphiques en aires empilées

Les requêtes qui regroupent les informations d'entrée de journal sans utiliser la fonction bin() peuventgénérer des graphiques à barres. Toutefois, les requêtes ne peuvent pas générer de graphique linéaire oude graphique en aires empilées. Pour plus d'informations sur ces types de requête, consultez the sectioncalled “Visualisation des données de journal regroupées par champs” (p. 53).

Visualisation des données de journal regroupées parchampsVous pouvez produire des graphiques à barres pour les requêtes qui utilisent la fonction stats et uneou plusieurs fonctions d'agrégation. Pour plus d’informations, consultez Fonctions d'agrégation dans lacommande Stats (p. 51).

Pour afficher la visualisation, exécutez votre requête. Choisissez ensuite l'onglet Visualization(Visualisation), sélectionnez la flèche en regard de Line (Ligne), puis choisissez Bar (Barre). Lesvisualisations sont limitées à 100 barres dans le graphique à barres.

Exemples

Pour un didacticiel complet, consultez the section called “Didacticiel : Exécuter une requête qui génèreune visualisation groupée par champs de journal” (p. 40). Les paragraphes suivants incluent d'autresexemples de requête pour la visualisation par champs.

La requête de journal de flux VPC suivante recherche le nombre moyen d'octets transférés par sessionpour chaque adresse de destination.

stats avg(bytes) by dstAddr

Vous pouvez également produire un graphique qui comprend plus d'une barre pour chaque valeurrésultante. Par exemple, la requête de journal de flux VPC suivante recherche le nombre moyen et maximald'octets transférés par session pour chaque adresse de destination.

stats avg(bytes), max(bytes) by dstAddr

La requête suivante recherche le nombre de journaux de requête Amazon Route 53 pour chaque type derequête.

53

Amazon CloudWatch Logs Guide de l'utilisateurExemples de requêtes

stats count(*) by queryType

Exemples de requêtesCette section inclut des exemples de requêtes qui illustrent la puissance de CloudWatch Logs Insights.

Requêtes générales

Recherchez les 25 derniers événements de journaux ajoutés :

fields @timestamp, @message | sort @timestamp desc | limit 25

Obtenez la liste du nombre d'exceptions par heure :

filter @message like /Exception/ | stats count(*) as exceptionCount by bin(1h)| sort exceptionCount desc

Obtenez la liste des événements de journal qui ne sont pas des exceptions :

fields @message | filter @message not like /Exception/

Requêtes pour les journaux Lambda

Déterminez la quantité de mémoire sur-allouée.

filter @type = "REPORT"| stats max(@memorySize / 1024 / 1024) as provisonedMemoryMB, min(@maxMemoryUsed / 1024 / 1024) as smallestMemoryRequestMB, avg(@maxMemoryUsed / 1024 / 1024) as avgMemoryUsedMB, max(@maxMemoryUsed / 1024 / 1024) as maxMemoryUsedMB, provisonedMemoryMB - maxMemoryUsedMB as overProvisionedMB

Créez un rapport de latence.

filter @type = "REPORT" |stats avg(@duration), max(@duration), min(@duration) by bin(5m)

Requêtes pour les journaux de flux Amazon VPC

Recherchez les 15 premiers transferts de paquets entre les hôtes :

stats sum(packets) as packetsTransferred by srcAddr, dstAddr| sort packetsTransferred desc| limit 15

Trouvez les 15 premiers transferts d'octets pour des hôtes sur un sous-réseau donné.

filter isIpv4InSubnet(srcAddr, "192.0.2.0/24")| stats sum(bytes) as bytesTransferred by dstAddr| sort bytesTransferred desc| limit 15

54

Amazon CloudWatch Logs Guide de l'utilisateurExemples de requêtes

Recherchez les adresses IP qui utilisent UDP comme protocole de transfert de données.

filter protocol=17 | stats count(*) by srcAddr

Recherchez les adresses IP auxquelles les enregistrements de flux ont été ignorés durant la fenêtre decapture.

filter logStatus="SKIPDATA"| stats count(*) by bin(1h) as t| sort t

Requêtes pour les journaux Route 53

Recherchez la distribution d'enregistrements par heure par type de requête.

stats count(*) by queryType, bin(1h)

Recherchez les 10 premiers résolveurs DNS avec le plus grand nombre de demandes.

stats count(*) as numRequests by resolverIp| sort numRequests desc| limit 10

Recherchez le nombre d'enregistrements par domaine et sous-domaine où le serveur n'a pas pu terminerla demande DNS.

filter responseCode="SERVFAIL" | stats count(*) by queryName

Requêtes pour les journaux CloudTrail

Recherchez le nombre d'entrées de journal pour chaque service, type d'événement et région.

stats count(*) by eventSource, eventName, awsRegion

Recherchez les hôtes Amazon EC2 qui ont été démarrés ou arrêtés dans une région donnée.

filter (eventName="StartInstances" or eventName="StopInstances") and region="us-east-2"

Recherchez les régions, les noms d'utilisateur et les ARN des utilisateurs IAM nouvellement créés.

filter eventName="CreateUser"| fields awsRegion, requestParameters.userName, responseElements.user.arn

Recherchez le nombre d'enregistrements où une exception s'est produite lors de l'appel de l'APIUpdateTrail :

filter eventName="UpdateTrail" and ispresent(errorCode)| stats count(*) by errorCode, errorMessage

Exemples de la commande d'analyse.

55

Amazon CloudWatch Logs Guide de l'utilisateurAjouter une requête au tableau de bordou exporter les résultats de la requête

Utilisez une expression glob pour extraire les champs éphémères @user, @method et @latency à partirdu champ de journal @message et renvoyez la latence moyenne pour chaque combinaison unique de@method et @user.

parse @message "user=*, method:*, latency := *" as @user,@method, @latency | stats avg(@latency) by @method,@user

Utilisez une expression régulière pour extraire les champs éphémères @user2, @method2 et @latency2à partir du champ du journal @message et renvoyez la latence moyenne pour chaque combinaison uniquede @method2 et @user2.

parse @message /user=(?<user2>.*?), method:(?<method2>.*?),latency := (?<latency2>.*?)/ | stats avg(@latency2) by @method2, @user2

Extrait les champs éphémèresloggingType et loggingTime, loggingMessage, filtre vers le bas pourenregistrer les événements qui contiennent des chaînes ERROR ou INFO, puis affiche uniquement leschamps loggingType et loggingMessage pour les événements qui contiennent une chaîne ERROR.

FIELDS @message| PARSE @message "* [*] *" as loggingTime, loggingType, loggingMessage| FILTER loggingType IN ["ERROR", "INFO"]| DISPLAY loggingMessage, loggingType = "ERROR" as isError

Ajouter une requête au tableau de bord ou exporterles résultats de la requête

Après avoir exécuté une requête, vous pouvez ajouter celle-ci à un tableau de bord CloudWatch, ou copierles résultats dans le presse-papiers.

Les requêtes ajoutées aux tableaux de bord s'exécutent à nouveau automatiquement chaque fois que vouschargez le tableau de bord et chaque fois que le tableau de bord s'actualise. Ces requêtes sont prises encompte dans votre limite de quatre requêtes CloudWatch Logs Insights simultanées.

Pour ajouter les résultats d'une requête sur un tableau de bord

1. Ouvrez la console CloudWatch à l'adresse https://console.aws.amazon.com/cloudwatch/.2. Dans le panneau de navigation, choisissez Insights (Informations).3. Choisissez un ou plusieurs groupes de journaux et exécutez une requête.4. Choisissez Ajouter au tableau de bord.5. Sélectionnez le tableau de bord, ou choisissez Créer pour créer un tableau de bord pour les résultats

de la requête.6. Choisissez Ajouter au tableau de bord.

Pour copier les résultats de la requête dans le presse-papiers

1. Ouvrez la console CloudWatch à l'adresse https://console.aws.amazon.com/cloudwatch/.2. Dans le panneau de navigation, choisissez Insights (Informations).3. Choisissez un ou plusieurs groupes de journaux et exécutez une requête.4. Choisissez Actions, Copy query results (Copier les résultats de la requête).

56

Amazon CloudWatch Logs Guide de l'utilisateurAfficher les requêtes en cours

d'exécution ou l'historique des requêtes

Afficher les requêtes en cours d'exécution oul'historique des requêtes

Vous pouvez afficher les requêtes en cours, ainsi que votre historique des requêtes récentes.

Les requêtes en cours d'exécution incluent les requêtes que vous avez ajoutées à un tableau de bord.Vous êtes limité à quatre requêtes CloudWatch Logs Insights simultanées par compte, y compris lesrequêtes ajoutées aux tableaux de bord.

Pour afficher les requêtes en cours d'exécution

1. Ouvrez la console CloudWatch à l'adresse https://console.aws.amazon.com/cloudwatch/.2. Dans le volet de navigation, choisissez Insights (Informations).3. Choisissez Actions, View running queries for this account (Afficher les requêtes en cours d'exécution

pour ce compte).4. Pour arrêter l'une des requêtes en cours d'exécution, choisissez Annuler.

Si cette requête a été ajoutée à un tableau de bord, choisissez Annuler pour arrêter seulementl'exécution en cours. Si vous ouvrez le tableau de bord ou que le tableau de bord s'actualise, larequête est automatiquement réexécutée. Pour la supprimer définitivement du tableau de bord, ouvrezle tableau de bord et supprimez le widget.

Pour afficher l'historique de vos requêtes récentes

1. Ouvrez la console CloudWatch à l'adresse https://console.aws.amazon.com/cloudwatch/.2. Dans le volet de navigation, choisissez Insights (Informations).3. Choisissez Actions, View query history for this account (Afficher l'historique des requêtes pour ce

compte).

La liste de vos requêtes récentes s'affiche. Vous pouvez exécuter à nouveau l'une d'entre elles enchoisissant Run query (Exécuter la requête).

57

Amazon CloudWatch Logs Guide de l'utilisateurCréer un groupe de journaux

Gestion des groupes de journaux etdes flux de journaux

Un flux de journal est une séquence d'événements de journaux qui partagent la même source. Chaquesource différente de journaux dans CloudWatch Logs constitue un flux de journaux distinct.

Un groupe de journaux est un groupe de flux de journaux qui partagent les mêmes paramètres deconservation, de surveillance et de contrôle d'accès. Vous pouvez définir des groupes de journaux etspécifier les flux à placer dans chaque groupe. Le nombre de flux de journaux pouvant appartenir à ungroupe de journaux est illimité.

Utilisez les procédures de cette section pour gérer les groupes de journaux et les flux de journaux.

Création d'un groupe de journaux dans CloudWatchLogs

Lorsque vous installez l'agent CloudWatch Logs dans une instance Amazon EC2 en appliquant laprocédure indiquée aux sections précédentes du Amazon CloudWatch Logs User Guide, le groupe dejournaux est créé dans le cadre de cette procédure. Vous pouvez également créer un groupe de journauxdirectement dans la console CloudWatch.

Pour créer un groupe de journaux

1. Ouvrez la console CloudWatch à l'adresse https://console.aws.amazon.com/cloudwatch/.2. Dans le volet de navigation, sélectionnez Groupes de journaux.3. Choisissez Actions, puis Create Bucket (Créer un compartiment).4. Tapez un nom pour le groupe de journaux, puis choisissez Créer un groupe de journaux.

Affichage des données de journal envoyées àCloudWatch Logs

Vous pouvez afficher et parcourir les données par flux de journal, telles qu'elles sont envoyées àCloudWatch Logs par l'agent CloudWatch Logs. Vous pouvez spécifier la plage de temps pour les donnéesde journal à afficher.

Pour afficher les données des journaux

1. Ouvrez la console CloudWatch à l'adresse https://console.aws.amazon.com/cloudwatch/.2. Dans le volet de navigation, sélectionnez Groupes de journaux.3. Pour Log Groups, choisissez le groupe de journaux pour afficher les flux.4. Dans la liste des groupes de journaux, choisissez le nom du groupe de journaux que vous souhaitez

afficher.

58

Amazon CloudWatch Logs Guide de l'utilisateurModification de la rétention des données de journaux

5. Dans la liste des flux de journaux, choisissez le nom du flux de journaux que vous souhaitez afficher.6. Pour modifier la façon dont les données de journal sont affichées, effectuez l'une des actions

suivantes :

• Pour développer un événement de journal, sélectionnez la flèche en regard de celui-ci.• Pour développer tous les événements de journaux et les afficher sous forme de texte brut, au-

dessus de la liste des événements de journaux, choisissez Text.• Pour filtrer les événements de journaux, entrez le filtre de recherche souhaité dans le champ

de recherche. Pour plus d'informations, consultez Recherche et filtrage des données dejournaux (p. 67).

• Pour afficher les données de journal pour une plage de dates et d'heures spécifiée, sélectionnezla flèche en regard de la date et de l'heure, près du filtre de recherche. Pour spécifier une plage dedates et d'heures, choisissez Absolu. Pour choisir un nombre prédéfini de minutes, d'heures, dejours ou de semaines, choisissez Relatif. Vous pouvez également basculer entre UTC et le fuseauhoraire local.

Modification de la rétention des données dejournaux dans CloudWatch Logs

Par défaut, les données de journaux sont stockées dans CloudWatch Logs indéfiniment. Vous pouveznéanmoins configurer la durée de stockage des données de journaux dans un groupe de journaux. Toutesles données antérieures au paramètre de conservation actuel sont automatiquement supprimées. Vouspouvez modifier la durée de conservation des journaux pour chaque groupe de journaux à tout moment.

Pour modifier le paramètre de conservation des journaux

1. Ouvrez la console CloudWatch à l'adresse https://console.aws.amazon.com/cloudwatch/.2. Dans le volet de navigation, sélectionnez Groupes de journaux.3. Recherchez le groupe de journaux à mettre à jour.4. Dans la colonne Expirer les événements au bout de correspondant à ce groupe de journaux,

choisissez le paramètre de conservation actuel, par exemple Ne jamais expirer.5. Dans la boîte de dialogue Modifier la rétention, pour Rétention, choisissez une valeur de rétention de

journal, puis Ok.

Balisage des groupes de journaux dans AmazonCloudWatch Logs

Vous pouvez attribuer vos propres métadonnées aux groupes de journaux que vous créez dans AmazonCloudWatch Logs sous la forme de balises. Une balise est une paire clé-valeur que vous définissez pourun groupe de journaux. Les balises constituent une méthode simple et puissante de gestion des ressourcesAWS et d'organisation des données, y compris les données de facturation.

Sommaire• Principes de base des balises (p. 60)• Suivi des coûts à l'aide du balisage (p. 60)• Restrictions liées aux balises (p. 60)• Balisage des groupes de journaux à l'aide de l'AWS CLI (p. 61)

59

Amazon CloudWatch Logs Guide de l'utilisateurPrincipes de base des balises

• Balisage des groupes de journaux à l'aide de l'API CloudWatch Logs (p. 61)

Principes de base des balisesVous devez utiliser l'AWS CLI ou l'API CloudWatch Logs pour effectuer les tâches suivantes :

• Ajout de balises à un groupe de journaux au moment de sa création• Ajout de balises à un groupe de journaux existant• Affichage de la liste de balises d'un groupe de journaux• Suppression de balises d'un groupe de journaux

Vous pouvez utiliser des balises pour classer vos groupes de journaux par catégories. Par exemple, vouspouvez les classer par objectif, propriétaire ou environnement. Dans la mesure où vous avez défini la cléet la valeur de chaque balise, vous pouvez créer un ensemble personnalisé de catégories répondant àvos besoins spécifiques. Ainsi, vous pouvez définir un ensemble de balises vous permettant de suivre lesgroupes de journaux par propriétaire et application associée. Voici quelques exemples de balises :

• Projet : nom du projet• Propriétaire : nom• Objectif : test de la charge• Application : nom de l'application• Environnement : production

Suivi des coûts à l'aide du balisageVous pouvez utiliser les balises pour classer vos coûts AWS par catégorie et en effectuer le suivi. Lorsquevous appliquez des balises à vos ressources AWS, notamment aux groupes de journaux, votre rapport derépartition des coûts AWS comprend l'utilisation et les coûts regroupés par balises. Vous pouvez appliquerdes balises associées à des catégories métier (telles que les centres de coûts, les noms d'applications oules propriétaires) pour organiser les coûts relatifs à divers services. Pour plus d'informations, consultezUtilisation des balises de répartition des coûts pour les rapports de facturation personnalisés dans le AWSBilling and Cost Management Guide de l'utilisateur.

Restrictions liées aux balisesLes restrictions suivantes s'appliquent aux balises :

Restrictions de base

• Le nombre maximal de balises par groupe de journaux est 50.• Les clés et valeurs de balise sont sensibles à la casse.• Vous ne pouvez pas changer ou modifier les balises d'un groupe de journaux supprimé.

Restrictions relatives aux clés de balise

• Chaque clé de balise doit être unique. Si vous ajoutez une balise avec une clé qui est déjà en coursd'utilisation, la nouvelle balise remplacera la paire clé-valeur existante.

• Une clé de balise ne peut pas commencer par aws:, car ce préfixe est réservé à AWS. AWS crée à votreplace des balises qui commencent par ce préfixe, mais vous ne pouvez pas les modifier ou supprimerces balises.

60

Amazon CloudWatch Logs Guide de l'utilisateurBalisage des groupes de journaux à l'aide de l'AWS CLI

• Les clés de balise doivent comporter entre 1 et 128 caractères Unicode.• Les clés de balise doivent comporter les caractères suivants : lettres Unicode, chiffres, espaces et les

caractères spéciaux suivants :_ . / = + - @.

Restrictions relatives à la valeur de balise

• Les valeurs de balise doivent comporter entre 0 et 255 caractères Unicode.• Les valeurs de balise peuvent être vides. Si tel n'est pas le cas, elles doivent être composées des

caractères suivants : lettres Unicode, chiffres, espaces et les caractères spéciaux suivants :_ . / = +- @.

Balisage des groupes de journaux à l'aide de l'AWSCLIVous pouvez ajouter, répertorier et supprimer des balises à l'aide de l'AWS CLI. Pour obtenir desexemples, consultez la documentation suivante :

create-log-group

Crée un groupe de journaux. Vous pouvez éventuellement ajouter des balises au moment de créer legroupe de journaux.

tag-log-group

Ajoute ou met à jour les balises pour le groupe de journaux spécifié.list-tags-log-group

Répertorie les balises du groupe de journaux spécifié.untag-log-group

Supprime les balises du groupe de journaux spécifié.

Balisage des groupes de journaux à l'aide de l'APICloudWatch LogsVous pouvez ajouter, répertorier et supprimer des balises à l'aide de l'API CloudWatch Logs. Pour obtenirdes exemples, consultez la documentation suivante :

CreateLogGroup

Crée un groupe de journaux. Vous pouvez éventuellement ajouter des balises au moment de créer legroupe de journaux.

TagLogGroup

Ajoute ou met à jour les balises pour le groupe de journaux spécifié.ListTagsLogGroup

Répertorie les balises du groupe de journaux spécifié.UntagLogGroup

Supprime les balises du groupe de journaux spécifié.

61

Amazon CloudWatch Logs Guide de l'utilisateurChiffrement des données de journal

Chiffrement des données de journal dansCloudWatch Logs avec AWS KMS

Vous pouvez chiffrer les données de journal dans CloudWatch Logs en utilisant une clé principale duclient (CMK) AWS Key Management Service (AWS KMS). Le chiffrement est activé au niveau du groupede journaux en associant une clé CMK à un groupe de journaux, soit pendant la création du groupe dejournaux, soit une fois qu'il existe.

Important

CloudWatch Logs prend désormais en charge le contexte de chiffrement, en utilisantkms:EncryptionContext:aws:logs:arn comme clé et ARN du groupe de journaux commevaleur pour cette clé. Si vous disposez de groupes de journaux que vous avez déjà chiffrésavec une CMK et que vous souhaitez restreindre l'utilisation de la CMK avec un seul compteet groupe de journaux, vous devez affecter une nouvelle CMK qui inclut une condition dans lastratégie IAM. Pour de plus amples informations, veuillez consulter Clés KMS et contexte dechiffrement (p. 64).

Dès lors que vous associez une clé CMK à un groupe de journaux, toutes les données nouvellementingérées pour le groupe de journaux sont chiffrées à l'aide de la clé CMK. Ces données sont stockées sousforme chiffrée tout au long de leur période de rétention. CloudWatch Logs déchiffre ces données chaquefois qu'elles sont demandées. CloudWatch Logs doit disposer d'autorisations pour la clé CMK chaque foisque des données chiffrées sont demandées.

Une fois que vous dissociez une clé CMK d'un groupe de journaux, CloudWatch Logs cesse de chiffrer lesdonnées nouvellement ingérées pour le groupe de journaux. Toutes les données ingérées précédemmentrestent chiffrées.

Important

CloudWatch Logs prend en charge uniquement les CMK symétriques. N'utilisez pas de CMKasymétrique pour chiffrer les données de vos groupes de journaux. Pour de plus amplesinformations, veuillez consulter les informations relatives à l'utilisation des clés symétriques etasymétriques.

Restrictions• Pour associer une clé CMK à un groupe de journaux et effectuer les étapes ci-dessous, vous devez

disposer des autorisations suivantes : kms:CreateKey, kms:GetKeyPolicy et kms:PutKeyPolicy.• L'association d'une clé CMK à un groupe de journaux ou sa dissociation est une opération dont la prise

en compte peut prendre jusqu'à cinq minutes.• Si vous révoquez l'accès de CloudWatch Logs à une clé CMK associée ou que vous supprimez une clé

CMK associée, vos données chiffrées dans CloudWatch Logs ne peuvent plus être récupérées.• Vous ne pouvez pas associer une clé CMK à un groupe de journaux à l'aide de la console CloudWatch.

Étape 1 : Création d'une CMK AWS KMSPour créer une clé CMK AWS KMS, utilisez la commande create-key suivante :

aws kms create-key

La sortie contient l'ID de clé et l'ARN (Amazon Resource Name) de la clé CMK. Voici un exemple de sortie :

62

Amazon CloudWatch Logs Guide de l'utilisateurÉtape 2 : Définition des autorisations sur la clé CMK

{ "KeyMetadata": { "KeyId": "6f815f63-e628-448c-8251-e40cb0d29f59", "Description": "", "Enabled": true, "KeyUsage": "ENCRYPT_DECRYPT", "KeyState": "Enabled", "CreationDate": 1478910250.94, "Arn": "arn:aws:kms:us-west-2:123456789012:key/6f815f63-e628-448c-8251-e40cb0d29f59", "AWSAccountId": "123456789012" }}

Étape 2 : Définition des autorisations sur la clé CMKPar défaut, toutes les CMK AWS KMS sont privées. Seul le propriétaire de la ressource peut l'utiliser pourchiffrer et déchiffrer des données. Cependant, le propriétaire de la ressource peut accorder à d'autresutilisateurs et ressources des autorisations d'accès à la clé CMK. Avec cette étape, vous autorisez lemandataire du service CloudWatch à utiliser la clé CMK. Ce mandataire de service doit être situé dans lamême région AWS que celle où la clé CMK est stockée.

À titre de bonne pratique, nous vous recommandons de limiter l'utilisation de la clé uniquement auxcomptes AWS ou groupes de journaux que vous spécifiez.

Tout d'abord, enregistrez la stratégie par défaut de votre clé CMK sous le nom policy.json à l'aide de lacommande get-key-policy suivante :

aws kms get-key-policy --key-id key-id --policy-name default --output text > ./policy.json

Ouvrez le fichier policy.json dans un éditeur de texte et ajoutez la section en gras à partir de l'unedes instructions suivantes. Séparez l'instruction existante de la nouvelle instruction par une virgule. Cesinstructions utilisent des sections Condition pour améliorer la sécurité de la clé KMS. Pour de plusamples informations, veuillez consulter Clés KMS et contexte de chiffrement (p. 64).

La section Condition de cet exemple restreint la clé à un seul ARN de groupe de journaux.

{ "Version" : "2012-10-17", "Id" : "key-default-1", "Statement" : [ { "Sid" : "Enable IAM User Permissions", "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::Your_account_ID:root" }, "Action" : "kms:*", "Resource" : "*" }, { "Effect": "Allow", "Principal": { "Service": "logs.region.amazonaws.com" }, "Action": [ "kms:Encrypt*", "kms:Decrypt*", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:Describe*" ], "Resource": "*"

63

Amazon CloudWatch Logs Guide de l'utilisateurÉtape 3 : Association d'un groupe

de journaux à une clé CMK

} ]}

Enfin, ajoutez la stratégie mise à jour à l'aide de la commande put-key-policy suivante :

aws kms put-key-policy --key-id key-id --policy-name default --policy file://policy.json

Étape 3 : Association d'un groupe de journaux à uneclé CMKVous pouvez associer une clé CMK à un groupe de journaux lors de sa création ou après.

Pour savoir si une clé CMK est déjà associée à un groupe de journaux, utilisez la commande describe-log-groups suivante :

aws logs describe-log-groups --log-group-name-prefix "log-group-name-prefix"

Si la sortie inclut un champ kmsKeyId, le groupe de journaux est associé à la clé affichée pour la valeur dece champ.

Pour associer la clé CMK à un groupe de journaux au moment de le créer

Utilisez la commande create-log-group comme suit :

aws logs create-log-group --log-group-name my-log-group --kms-key-id "key-arn"

Pour associer la clé CMK à un groupe de journaux existant

Utilisez la commande associate-kms-key comme suit :

aws logs associate-kms-key --log-group-name my-log-group --kms-key-id "key-arn"

Étape 4 : Dissociation d'un groupe de journaux d'uneclé CMKPour dissocier la clé CMK associée à un groupe de journaux, utilisez la commande disassociate-kms-keysuivante :

aws logs disassociate-kms-key --log-group-name my-log-group

Clés KMS et contexte de chiffrementPour améliorer la sécurité de vos clés KMS et de vos groupes de journaux chiffrés, CloudWatch Logsplace désormais les ARN des groupes de journaux dans le contexte de chiffrement utilisé pour chiffrer vosdonnées de journal. Le contexte de chiffrement est un ensemble de paires clé-valeur qui sont utiliséescomme données authentifiées supplémentaires. Le contexte de chiffrement vous permet d'utiliser desconditions de stratégie IAM pour limiter l'accès à votre clé KMS par compte AWS et groupe de journaux.Pour de plus amples informations, veuillez consulter Contexte de chiffrement et Éléments de stratégieIAMJSON : Condition.

Nous vous recommandons d'utiliser différentes clés CMK pour chacun de vos groupes de journaux chiffrés.

64

Amazon CloudWatch Logs Guide de l'utilisateurClés KMS et contexte de chiffrement

Si vous avez un groupe de journaux chiffré précédemment et que vous souhaitez maintenant le modifierpour utiliser une nouvelle CMK qui fonctionne uniquement pour ce groupe de journaux, procédez commesuit.

Pour convertir un groupe de journaux chiffré pour utiliser une CMK avec une stratégie la limitant àce groupe de journaux

1. Entrez la commande suivante pour trouver l'ARN de la CMK actuelle du groupe de journaux :

aws logs describe-log-groups

La sortie comprend la ligne suivante. Prenez note de l'ARN. Vous devez l'utiliser à l'étape 7.

..."kmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/01234567-89ab-cdef-0123-456789abcdef"...

2. Entrez la commande suivante pour créer une nouvelle CMK :

aws kms create-key

3. Entrez la commande suivante pour enregistrer la stratégie de la nouvelle clé dans un fichierpolicy.json :

aws kms get-key-policy --key-id new-key-id --policy-name default --output text > ./policy.json

4. Utilisez un éditeur de texte pour ouvrir policy.json et ajouter une expression Condition à lastratégie :

{ "Version": "2012-10-17", "Id": "key-default-1", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::ACCOUNT-ID:root" }, "Action": "kms:*", "Resource": "*" }, { "Effect": "Allow", "Principal": { "Service": "logsREGION.amazonaws.com" }, "Action": [ "kms:Encrypt*", "kms:Decrypt*", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:Describe*" ], "Resource": "*", "Condition": { "ArnLike": { "kms:EncryptionContext:aws:logs:arn": "arn:aws:logs:REGION:ACCOUNT-ID:log-

65

Amazon CloudWatch Logs Guide de l'utilisateurClés KMS et contexte de chiffrement

group:LOG-GROUP-NAME" } } } ]}

5. Entrez la commande suivante pour ajouter la stratégie mise à jour à la nouvelle CMK :

aws kms put-key-policy --key-id new-key-ARN --policy-name default --policy file://policy.json

6. Entrez la commande suivante pour associer la stratégie à votre groupe de journaux :

aws logs associate-krm-key --log-group-name my-log-group --kms-key-id new-key-ARN

CloudWatch Logs chiffre maintenant toutes les nouvelles données à l'aide de la nouvelle CMK.7. Ensuite, révoquez toutes les autorisations à l'exception de Decrypt provenant de l'ancienne CMK.

Tout d'abord, entrez la commande suivante pour récupérer l'ancienne stratégie :

aws kms get-key-policy --key-id old-key-ARN --policy-name default --output text > ./policy.json

8. Utilisez un éditeur de texte pour ouvrir policy.json et supprimer toutes les valeurs de la listeAction, à l'exception de kms:Decrypt*

{ "Version": "2012-10-17", "Id": "key-default-1", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::REGION:root" }, "Action": "kms:*", "Resource": "*" }, { "Effect": "Allow", "Principal": { "Service": "logs.REGION.amazonaws.com" }, "Action": [ "kms:Decrypt*" ], "Resource": "*" } ]}

9. Entrez la commande suivante pour ajouter la stratégie mise à jour à l'ancienne CMK :

aws kms put-key-policy --key-id old-key-ARN --policy-name default --policy file://policy.json

66

Amazon CloudWatch Logs Guide de l'utilisateurConcepts

Recherche et filtrage des données dejournaux

Après que l'agent CloudWatch Logs a commencé à publier les données des journaux sur AmazonCloudWatch, vous pouvez lancer la recherche et le filtrage des données de journaux en créant un ouplusieurs filtres de métriques. Les filtres de métriques permettent de définir les conditions et les tendancesà rechercher dans les données de journaux lorsqu’elles sont envoyées à CloudWatch Logs. CloudWatchLogs utilise ces filtres de métriques pour transformer les données des journaux en métriques CloudWatchnumériques que vous pouvez représenter graphiquement ou utiliser pour définir une alarme. Vous pouvezutiliser n'importe quel type de statistique CloudWatch, y compris les statistiques sur les centiles, lorsquevous consultez ces métriques ou définissez des alarmes.

Note

Les statistiques sur les centiles sont prises en charge pour une métrique uniquement si aucunedes valeurs de la métrique n'est négative. Si vous configurez votre filtre de métrique afin qu'ilpuisse signaler des valeurs négatives, les statistiques sur les centiles ne seront pas disponiblespour cette métrique lorsqu'elle aura des nombres négatifs en tant que valeurs. Pour plusd'informations, consultez Centiles.

Les filtres ne traitent pas les données de manière rétroactive. Les filtres publient uniquement les points dedonnées de métriques pour les événements qui se produisent après la création des filtres. Les résultatsfiltrés renvoient les 50 premières lignes, qui ne seront pas affichées si l'horodatage sur les résultats filtrésest antérieur à l'heure de la création de la métrique.

Sommaire• Concepts (p. 67)• Syntaxe de filtre et de modèle (p. 68)• Création de filtres de métriques (p. 76)• Liste des filtres de métriques (p. 82)• Suppression d'un filtre métrique (p. 83)• Recherche dans des données de journaux au moyen de modèles de filtres (p. 83)

ConceptsChaque filtre de métrique est composé des principaux éléments suivants :

filter pattern

Description symbolique de la manière dont doivent être interprétées les données de chaqueévénement de journal par CloudWatch Logs. Par exemple, une entrée de journal peut contenir deshorodatages, des adresses IP, des chaînes et ainsi de suite. Le modèle permet de spécifier ce qu'ilfaut chercher dans le fichier journal.

metric name

Le nom de la métrique CloudWatch dans laquelle les informations de journaux surveillés doivent êtrepubliées. Vous pouvez, par exemple, publier dans une métrique appelée ErrorCount.

67

Amazon CloudWatch Logs Guide de l'utilisateurSyntaxe de filtre et de modèle

metric namespace

L'espace de nom de destination de la nouvelle métrique CloudWatch.metric value

La valeur numérique à publier vers la métrique chaque fois qu'un journal correspondant est trouvé.Par exemple, si vous comptez les occurrences d'un terme particulier comme « Erreur », la valeursera « 1 » pour chaque occurrence. Si vous calculez le nombre d'octets transférés, vous pouvezl'incrémenter par le nombre d'octets trouvés dans l'événement de journal.

valeur par défaut

La valeur indiquée au filtre de métrique au cours d'une période lorsqu'aucun journal correspondantn'est trouvé. En définissant cette valeur sur 0, vous vous assurez que les données sont rapportées aucours de chaque période, ce qui empêche les métriques irrégulières avec des périodes ne contenantpas de données.

Syntaxe de filtre et de modèleVous pouvez utiliser des filtres de métriques pour rechercher des termes, des expressions ou des valeursdans vos journaux d'évènements et les faire correspondre. Lorsqu'un filtre de métrique trouve l'un destermes, expressions ou valeurs dans vos événements de journaux, vous pouvez augmenter la valeur de lamétrique CloudWatch. Par exemple, vous pouvez créer un filtre de métrique pour rechercher et dénombrerl'apparition du mot ERROR dans vos journaux d'évènements.

Les filtres de métriques peuvent également extraire des valeurs numériques de vos journauxd'évènements, délimitées par des espaces, comme la latence des requêtes web. Dans ces exemples, vouspouvez augmenter la valeur de vos métriques par la valeur numérique réelle extraite du journal.

Vous pouvez aussi utiliser des opérateurs conditionnels et des caractères génériques pour créer descorrespondances parfaites. Avant de créer un filtre de métrique, vous pouvez tester vos modèles derecherche dans la console CloudWatch. Les sections suivantes expliquent plus en détail la syntaxe desfiltres de métriques.

Etablissement de correspondances de termes dansles événements de journauxPour rechercher un terme dans les événements de journaux, utilisez-le comme modèle de filtre demétrique. Vous pouvez spécifier plusieurs termes dans un modèle de filtre de métrique, mais ils doiventtous figurer dans un événement de journal pour qu'il y ait une correspondance. Les filtres de métriques sontsensibles à la casse.

Les termes des filtres de métriques qui incluent des caractères non alphanumériques ou des traits desoulignement doivent être placés à l'intérieur de guillemets doubles ("").

Pour exclure un terme, faites-le précéder d'un signe moins (-).

Exemple 1 : correspondre à tout

Le modèle de filtre "" correspond à tous les événements de journaux.

Exemple 2 : terme unique

Le modèle de filtre « ERROR » correspond aux messages d'événements de journaux qui contiennent ceterme, à l'image des exemples suivants :

68

Amazon CloudWatch Logs Guide de l'utilisateurEtablissement de correspondances de

termes dans les événements de journaux

• [ERROR] A fatal exception has occurred• Exiting with ERRORCODE: -1

Exemple 3 : inclure et exclure un terme

Dans l'exemple précédent, si vous remplacez le modèle de filtre par « ERROR -Exiting », le messaged'événement de journal « Exiting with ERRORCODE: -1 » est exclu.

Exemple 4 : plusieurs termes

Le modèle de filtre « ERROR Exception » correspond aux messages d'événements de journaux quicontiennent les deux termes, à l'image des exemples suivants :

• [ERROR] Caught IllegalArgumentException• [ERROR] Unhandled Exception

Le modèle de filtre « Failed to process the request » correspond aux messages d'événements de journauxqui contiennent tous les termes, à l'image des exemples suivants :

• [WARN] Failed to process the request• [ERROR] Unable to continue: Failed to process the request

Critère spécial ORVous pouvez faire correspondre des termes de filtres textuels à l'aide du critère spécial OR. Utilisez unpoint d'interrogation pour OR, par exemple ?term.

Observez les trois exemples ci-dessous d'événement de journal ERROR correspond aux exemples 1 et 2.?ERROR ?WARN correspond aux exemples 1, 2 et 3, car tous incluent le mot ERROR ou le mot WARN.ERROR WARN correspond uniquement à l'exemple 1, car il est le seul contenant ces deux mots. ERROR -WARN correspond à l'exemple 2, car il correspond à une chaîne qui contient le terme ERROR, mais pasWARN.

1. ERROR WARN message2. ERROR message3. WARN message

Vous pouvez faire correspondre des termes à l'aide du critère spécial OR dans des filtres délimités par desespaces. Avec des filtres délimités par des espaces, w1 signifie le premier mot de l'événement de journal,w2 signifie le deuxième mot, et ainsi de suite. Pour les exemples de modèles ci-dessous, [w1=ERROR, w2]correspond au modèle 2, car ERROR est le premier mot, et [w1=ERROR || w1=WARN, w2] correspondmodèles 2 et 3. [w1!=ERROR&&w1!=WARN, w2] correspond aux lignes contenant à la fois ERROR etWARN (modèle 1).

1. message ERROR WARN2. message ERROR3. message WARN

Vous pouvez faire correspondre des termes à l'aide du critère spécial OR dans des filtres JSON. Pourles exemples de modèles ci-dessous, {$.foo = bar} correspond au modèle 1, {$.foo = baz } correspond aumodèle 2 et {$.foo = bar || $.foo = baz } correspond aux modèles 1 et 2.

1. {"foo": "bar"}

69

Amazon CloudWatch Logs Guide de l'utilisateurEtablissement de correspondances de

termes dans les événements de journaux

2. {"foo": "baz"}

Etablissement de correspondances dans les événements dejournaux JSONVous pouvez extraire des valeurs d'événements de journaux JSON. Pour extraire ces valeurs, vous devezcréer un filtre de métrique basé sur chaîne. Les chaînes contenant une notation scientifique ne sont pasprises en charge. Les éléments dans les données d'événements de journaux JSON doivent correspondreexactement au filtre métrique. Vous pouvez créer des filtres de métriques dans des événements dejournaux JSON pour indiquer ce qui suit :

• un certain événement se produit (par exemple, eventName est « UpdateTrail ») ;• l'IP se trouve à l'extérieur d'un sous-réseau connu (par exemple, sourceIPAddress ne se trouve pas dans

une plage de sous-réseaux connus) ;• une combinaison de deux ou plusieurs autres conditions est remplie Par exemple, eventName est

« UpdateTrail » et recipientAccountId est 123456789012.

Utilisation de filtres de métriques pour extraire des valeurs à partir d'événementsde journaux JSON

Vous pouvez utiliser des filtres de métriques pour extraire des valeurs d'événements de journaux JSON.Un filtre de métrique vérifie les journaux entrants et modifie une valeur numérique lorsque le filtre trouveune correspondance dans les données du journal. Lorsque vous créez un filtre de métrique, vous pouvezsimplement augmenter le décompte chaque fois que le texte correspondant est trouvé dans un journal, ouvous pouvez extraire des valeurs numériques à partir du journal et les utiliser pour augmenter la valeur desmétriques.

Correspondance des termes JSON à l'aide des filtres de métrique

La syntaxe de filtre de métrique pour les événements de journaux JSON utilise le format suivant :

{ SELECTOR EQUALITY_OPERATOR STRING }

Le filtre de métrique doit être placé dans des accolades { }, pour indiquer qu'il s'agit d'une expressionJSON. Le filtre de métrique contient les éléments suivants :

SELECTOR

Spécifie la propriété JSON à vérifier. Les sélecteurs de propriétés commencent toujours par lesymbole dollar ($), qui indique la racine du JSON. Les sélecteurs de propriétés sont des chaînesalphanumériques qui prennent également en charge les caractères « - » et « _ ». Les éléments dutableau sont signalés par la syntaxe [NUMBER] et doivent suivre une propriété. Exemples : $.eventId,$.users[0], $.users[0].id, $.requestParameters.instanceId.

EQUALITY_OPERATOR

Peut être = ou !=STRING

Une chaîne avec ou sans guillemets. Vous pouvez utiliser le caractère générique astérisque « * » pourn'importe quel texte avant ou après un terme de recherche, ou au niveau de ce terme. Par exemple,*Event correspond à PutEvent et GetEvent. Event* correspond à EventId et EventName. Ev*entcorrespond uniquement à la chaîne Ev*ent. Les chaînes composées intégralement de caractèresalphanumériques n'ont pas besoin de guillemets. Les chaînes ayant des caractères Unicode et autrescomme @, $, \, etc. doivent être placés entre guillemets pour être valides.

70

Amazon CloudWatch Logs Guide de l'utilisateurEtablissement de correspondances de

termes dans les événements de journaux

Exemples de filtres de métrique JSON

Voici un exemple JSON :

{ "eventType": "UpdateTrail", "sourceIPAddress": "111.111.111.111", "arrayKey": [ "value", "another value" ], "objectList": [ { "name": "a", "id": 1 }, { "name": "b", "id": 2 } ], "SomeObject": null, "ThisFlag": true}

Les filtres suivants correspondent :

{ $.eventType = "UpdateTrail" }

Filtre de type d'événement égal à UpdateTrail.

{ $.sourceIPAddress != 123.123.* }

Filtre d'adresse IP en dehors du préfixe de sous-réseau 123.123.

{ $.arrayKey[0] = "value" }

Filtre de première entrée d'arrayKey égale à « value ». Cela sera faux si arrayKey n'est pas un tableau.

{ $.objectList[1].id = 2 }

Filtre de la deuxième entrée d'objectList avec une propriété appelée id = 2. Cela sera faux si objectListn'est pas un tableau. Cela sera faux si les éléments d'objectList ne sont pas des objets ou n'ont pas depropriété id.

{ $.SomeObject IS NULL }

Filtre de SomeObject égal à null. Cela sera uniquement vrai si l'objet spécifié est défini sur null.

{ $.SomeOtherObject NOT EXISTS }

Filtre de SomeOtherObject étant inexistant. Cela sera uniquement vrai si l'objet spécifié n'existe pas dansles données de journaux.

{ $.ThisFlag IS TRUE }

71

Amazon CloudWatch Logs Guide de l'utilisateurEtablissement de correspondances de

termes dans les événements de journaux

Filtres de ThisFlag étant TRUE. Cela fonctionne aussi pour les filtres booléens qui recherchent la valeurFALSE.

Conditions combinées JSON

Vous pouvez associer plusieurs conditions dans une expression composée à l'aide de OR (||) et AND (&&).Les parenthèses sont autorisées et la syntaxe suit l'ordre normalisé des opérations () > && > ||.

{ "user": { "id": 1, "email": "[email protected]" }, "users": [ { "id": 2, "email": "[email protected]" }, { "id": 3, "email": "[email protected]" } ], "actions": [ "GET", "PUT", "DELETE" ], "coordinates": [ [0, 1, 2], [4, 5, 6], [7, 8, 9] ]}

Exemples

{ ($.user.id = 1) && ($.users[0].email = "[email protected]") }

Correspond au JSON ci-dessus.

{ ($.user.id = 2 && $.users[0].email = "nonmatch") || $.actions[2] = "GET" }

Ne correspond pas au JSON ci-dessus.

{ $.user.email = "[email protected]" || $.coordinates[0][1] = nonmatch && $.actions[2] = nomatch }

Correspond au JSON ci-dessus.

{ ($.user.email = "[email protected]" || $.coordinates[0][1] = nonmatch) && $.actions[2] = nomatch }

Ne correspond pas au JSON ci-dessus.

Considérations spéciales JSON

SELECTOR doit pointer vers un nœud de valeur (chaîne ou nombre) du JSON. S'il pointe vers un tableauou un objet, le filtre ne sera pas appliqué, car le format de journal ne correspond pas au filtre. Par exemple,

72

Amazon CloudWatch Logs Guide de l'utilisateurEtablissement de correspondances de

termes dans les événements de journaux

{$.users = 1} et {$.users != 1} échouent tous deux pour correspondre à un événement de journal où usersest un tableau :

{ "users": [1, 2, 3]}

Comparaisons numériques

La syntaxe de filtre de métrique prend en charge la correspondance précise pour des comparaisonsnumériques. Les comparaisons numériques suivantes sont prises en charge : <, >, >=, <=, =, !=

Les filtres numériques ont une syntaxe de type

{ SELECTOR NUMERIC_OPERATOR NUMBER }

Le filtre de métrique doit être placé dans des accolades { }, pour indiquer qu'il s'agit d'une expressionJSON. Le filtre de métrique contient les éléments suivants :

SELECTOR

Spécifie la propriété JSON à vérifier. Les sélecteurs de propriétés commencent toujours par lesymbole dollar ($), qui indique la racine du JSON. Les sélecteurs de propriétés sont des chaînesalphanumériques qui prennent également en charge les caractères « - » et « _ ». Les éléments dutableau sont signalés par la syntaxe [NUMBER] et doivent suivre une propriété. Exemples : $.latency,$.numbers[0], $.errorCode, $.processes[4].averageRuntime.

NUMERIC_OPERATOR

Peut être l'un des types suivants : =, !=, <, >, <= ou >=.NUMBER

Un nombre entier avec un signe + ou - facultatif, un nombre décimal avec un signe + ou - facultatif, ouun nombre en notation scientifique, qui est un nombre entier ou un nombre décimal avec un signe + ou- facultatif, suivi de « e » et suivi d'un nombre entier avec un signe + ou - facultatif.

Exemples :

{ $.latency >= 500 }{ $.numbers[0] < 10e3 }{ $.numbers[0] < 10e-3 }{ $.processes[4].averageRuntime <= 55.5 }{ $.errorCode = 400 }{ $.errorCode != 500 }{ $.latency > +1000 }

Utilisation de filtres de métriques pour extraire des valeursd'événements de journaux délimitées par des espacesVous pouvez utiliser des filtres de métriques pour extraire des valeurs d'événements de journaux délimitéespar des espaces. Les caractères entre une paire de crochets [] ou deux guillemets doubles ("") sont traitéscomme un champ unique. Par exemple :

127.0.0.1 - frank [10/Oct/2000:13:25:15 -0700] "GET /apache_pb.gif HTTP/1.0" 200 1534127.0.0.1 - frank [10/Oct/2000:13:35:22 -0700] "GET /apache_pb.gif HTTP/1.0" 500 5324

73

Amazon CloudWatch Logs Guide de l'utilisateurEtablissement de correspondances de

termes dans les événements de journaux

127.0.0.1 - frank [10/Oct/2000:13:50:35 -0700] "GET /apache_pb.gif HTTP/1.0" 200 4355

Pour spécifier un modèle de filtre de métrique qui analyse les événements délimités par des espaces, cemodèle doit spécifier les champs avec un nom, séparé par des virgules, avec le modèle tout entier entrecrochets. Par exemple : [ip, user, username, timestamp, request, status_code, bytes].

Si vous ne connaissez pas le nombre de champs, vous pouvez utiliser la notification raccourcie avec lespoints de suspension (...). Par exemple :

[..., status_code, bytes][ip, user, ..., status_code, bytes][ip, user, ...]

Vous pouvez également ajouter des conditions à vos champs afin que seuls les événements de journauxqui correspondent à toutes les conditions correspondent aux filtres. Par exemple :

[ip, user, username, timestamp, request, status_code, bytes > 1000][ip, user, username, timestamp, request, status_code = 200, bytes][ip, user, username, timestamp, request, status_code = 4*, bytes][ip, user, username, timestamp, request = *html*, status_code = 4*, bytes]

Vous pouvez utiliser && en tant qu'opérateur AND, comme dans les exemples suivants :

[ip, user, username, timestamp, request, status_code = 4* && bytes > 1000][ip, user, username, timestamp, request, status_code = 4* && status_code != 403, bytes]

CloudWatch Logs prend en charge les champs conditionnels numériques et de chaîne. Pour les champs detype chaîne, vous pouvez utiliser les opérateurs = ou != opérateurs avec un astérisque (*).

Pour les champs numériques, vous pouvez utiliser les opérateurs>, <, >=, <=, = et !=.

Si vous utilisez un filtre délimité par des espaces, les champs extraits correspondent aux noms des champsdélimités par des espaces (comme indiqué dans le filtre) à la valeur de chacun de ces champs. Si vousn'utilisez pas de filtre délimité par des espaces, ceci sera vide.

Exemple de filtre :

[..., request=*.html*, status_code=4*,]

Exemple d'événement de journal pour ce filtre :

127.0.0.1 - frank [10/Oct/2000:13:25:15 -0700] \"GET /index.html HTTP/1.0\" 404 1534

Champs extraits pour le modèle de filtre et d'événement de journal :

{ "$status_code": "404", "$request": "GET /products/index.html HTTP/1.0", "$7": "1534", "$4": "10/Oct/2000:13:25:15 -0700", "$3": "frank", "$2": "-", "$1": "127.0.0.1"}

74

Amazon CloudWatch Logs Guide de l'utilisateurConfiguration de la façon dont la valeur de métriquechange lorsque des correspondances sont trouvées

Configuration de la façon dont la valeur de métriquechange lorsque des correspondances sont trouvéesLorsqu'un filtre de métrique trouve l'un des termes, expressions ou valeurs de correspondance dansvos événements de journaux, il augmente le nombre dans la métrique CloudWatch en fonction de laquantité que vous spécifiez comme valeur de métrique. La valeur de métrique est regroupée et signaléechaque minute.

Si des journaux sont ingérés pendant une période d'une minute, mais qu'aucun profil n'est détecté, lavaleur spécifiée comme valeur par défaut (le cas échéant) est rapportée. Par contre, si aucun événementde journal n'est ingéré pendant une période d'une minute, aucune valeur n'est rapportée.

La spécification d'une valeur par défaut, même si cette valeur est 0, permet de s'assurer que des donnéessont rapportées plus souvent, ce qui évite les métriques irrégulières quand aucune correspondance n'esttrouvée.

Par exemple, supposons qu'un groupe de journaux publie deux enregistrements toutes les minutes, avecune valeur de métrique égale à 1 et une valeur par défaut égale à 0. Si des correspondances sont trouvéesdans les deux enregistrements de journaux au cours de la première minute, la valeur de métrique pourcette minute est égale à 2. S'il n'y a pas de correspondance dans les enregistrements de journaux publiésau cours de la deuxième minute, la valeur par défaut 0 est utilisée pour les deux enregistrements dejournaux et la valeur de métrique pour cette minute est égale à 0.

Si vous ne spécifiez pas de valeur par défaut, aucune donnée n'est signalée pour les périodes ne disposantpas de correspondance de modèle.

Publication de valeurs numériques trouvées dans desentrées de journalAu lieu de seulement compter le nombre d'éléments correspondants trouvés dans les journaux, vouspouvez également utiliser le filtre de métrique pour publier des valeurs en fonction des valeurs numériquestrouvées dans les journaux. La procédure suivante montre comment publier une métrique avec la latencetrouvée dans la demande JSON metricFilter: { $.latency = * } metricValue: $.latency.

Pour publier une métrique avec la latence trouvée dans une demande JSON

1. Ouvrez la console CloudWatch à l'adresse https://console.aws.amazon.com/cloudwatch/.2. Dans le volet de navigation, sélectionnez Groupes de journaux.3. Dans le volet de contenu, sélectionnez le bouton en regard d’un groupe de journaux, puis choisissez

Créer un filtre de métriques.4. Dans l'écran Define Logs Metric Filter, pour Filter Pattern, tapez { $.latency = * }, puis

choisissez Assign Metric.5. Dans l'écran Create Metric Filter and Assign a Metric, choisissez Show advanced metric settings.6. Pour Metric Name, tapez myMetric.7. Pour Metric Value (Valeur de métrique), saisissez $.latency.8. Pour Valeur par défaut, saisissez 0 puis choisissez Créer un filtre. Le fait de spécifier une valeur par

défaut garantit que les données sont signalées même pendant les périodes où aucun événement dejournal ne se produit, ce qui empêche les métriques irrégulières en cas d'absence de données.

L'événement de journal suivant publierait une valeur de 50 pour la métrique myMetric suite à la création dufiltre.

75

Amazon CloudWatch Logs Guide de l'utilisateurCréation de filtres de métriques

{"latency": 50,"requestType": "GET"}

Création de filtres de métriquesLes exemples suivants montrent comment créer des filtres de métriques.

Exemples• Exemple : Comptage des événements de journaux (p. 76)• Exemple : Comptage des occurrences d'un terme (p. 77)• Exemple : Comptage du nombre de codes HTTP 404 (p. 78)• Exemple : Comptage du nombre de codes HTTP 4xx (p. 80)• Exemple : Extraction des champs d'un journal Apache (p. 81)

Exemple : Comptage des événements de journauxLe type de surveillance des événements de journaux le plus simple consiste à compter le nombred'événements de journaux qui se produisent. Vous pouvez souhaiter procéder ainsi pour garder undécompte de tous les événements, pour créer une surveillance de style « pulsation » ou tout simplementpour vous entraîner à créer des filtres de métriques.

Dans l'exemple d'interface de ligne de commande suivant, un filtre de métrique appelé MyAppAccessCountest appliqué au groupe de journaux MyApp/access.log afin de créer la métrique EventCount dans l'espacede noms MyNamespace de CloudWatch. Le filtre est configuré de manière à établir une correspondanceavec n'importe quel contenu d'événement de journal et à augmenter la métrique de « 1 ».

Pour créer un filtre de métrique à l'aide de la console CloudWatch

1. Ouvrez la console CloudWatch à l'adresse https://console.aws.amazon.com/cloudwatch/.2. Dans le volet de navigation, sélectionnez Groupes de journaux.3. Dans le volet de contenu, sélectionnez le bouton en regard d’un groupe de journaux, puis choisissez

Créer un filtre de métriques.4. Dans l'écran Définir un filtre de métriques des journaux laissez Modèle de filtre et Sélectionner les

données du journal à tester à blanc.5. Choisissez Assign Metric, puis, dans l'écran Create Metric Filter and Assign a Metric, pour Filter Name,

tapez EventCount.6. Sous Metric Details, pour Metric Namespace, tapez MyNameSpace.7. Dans Metric Name (Nom de la métrique), saisissez MyAppEventCount.8. Choisissez Afficher les paramètres de métrique avancés et confirmez que la Valeur de métrique est

égale à 1. Cela indique que le décompte est augmenté d'1 pour chaque événement de journal.9. Pour Valeur par défaut saisissez 0, puis choisissez Créer un filtre. Le fait de spécifier une valeur par

défaut garantit que les données sont signalées même pendant les périodes où aucun événement dejournal ne se produit, ce qui empêche les métriques irrégulières en cas d'absence de données.

Pour créer un filtre de métrique à l'aide de l'AWS CLI

A partir d'une invite de commande, exécutez la commande suivante :

76

Amazon CloudWatch Logs Guide de l'utilisateurExemple : Comptage des occurrences d'un terme

aws logs put-metric-filter \ --log-group-name MyApp/access.log \ --filter-name EventCount \ --filter-pattern "" \ --metric-transformations \ metricName=MyAppEventCount,metricNamespace=MyNamespace,metricValue=1,defaultValue=0

Vous pouvez tester cette nouvelle stratégie en publiant n'importe quelles données d'événements. Vousdevez voir des points de données publiés dans la métrique MyAppAccessEventCount.

Pour publier les données d'événement à l'aide de l'AWS CLI

A partir d'une invite de commande, exécutez la commande suivante :

aws logs put-log-events \ --log-group-name MyApp/access.log --log-stream-name TestStream1 \ --log-events \ timestamp=1394793518000,message="Test event 1" \ timestamp=1394793518000,message="Test event 2" \ timestamp=1394793528000,message="This message also contains an Error"

Exemple : Comptage des occurrences d'un termeLes événements de journaux comprennent fréquemment des messages importants que vous pouvezsouhaiter comptabiliser. Il peut s'agir de messages sur l'échec ou la réussite des opérations. Par exemple,une erreur peut se produire et être enregistrée dans un fichier journal en cas d'échec d'une opérationspécifique. Il est possible de surveiller ces entrées pour comprendre l'évolution de vos erreurs.

Dans l'exemple ci-dessous, un filtre de métrique est créé pour surveiller le terme Error. La stratégie a étécréée et ajoutée au groupe de journaux MyApp/message.log. CloudWatch Logs publie un point de donnéespour la métrique CloudWatch personnalisée ErrorCount dans l'espace de noms MyApp/message.log avecla valeur « 1" pour chaque événement contenant Error. Si aucun événement ne contient le mot Error, lavaleur 0 est publiée. Lors de la représentation de ces données dans la console CloudWatch, veillez àutiliser la statistique de somme.

Pour créer un filtre de métrique à l'aide de la console CloudWatch

1. Ouvrez la console CloudWatch à l'adresse https://console.aws.amazon.com/cloudwatch/.2. Dans le volet de navigation, sélectionnez Groupes de journaux.3. Dans le volet de contenu, sélectionnez le bouton en regard d’un groupe de journaux, puis choisissez

Créer un filtre de métriques.4. Dans l'écran Define Logs Metric Filter, pour Filter Pattern, tapez Error.

Note

Toutes les entrées figurant dans Filter Pattern sont sensibles à la casse.5. Pour tester votre modèle de filtre, pour Select Log Data to Test, sélectionnez le groupe de journaux sur

lequel tester le filtre de métrique, puis choisissez Test Pattern.6. Sous Results, CloudWatch Logs affiche un message indiquant le nombre d'occurrences du modèle de

filtre qui ont été trouvées dans le fichier journal.

Pour afficher des résultats détaillés, choisissez Show test results.7. Choisissez Assign Metric, puis, dans l'écran Create Metric Filter and Assign a Metric, pour Filter Name,

tapez MyAppErrorCount.8. Sous Metric Details, pour Metric Namespace, tapez MyNameSpace.

77

Amazon CloudWatch Logs Guide de l'utilisateurExemple : Comptage du nombre de codes HTTP 404

9. Dans Nom de la métrique, tapez ErrorCount.10. Choisissez Afficher les paramètres de métrique avancés et confirmez que la Valeur de métrique

est égale à 1. Cela indique que le décompte est augmenté d'1 pour chaque événement de journalcontenant « Error ».

11. Pour Valeur par défaut, saisissez 0 puis choisissez Créer un filtre.

Pour créer un filtre de métrique à l'aide de l'AWS CLI

A partir d'une invite de commande, exécutez la commande suivante :

aws logs put-metric-filter \ --log-group-name MyApp/message.log \ --filter-name MyAppErrorCount \ --filter-pattern 'Error' \ --metric-transformations \ metricName=ErrorCount,metricNamespace=MyNamespace,metricValue=1,defaultValue=0

Vous pouvez tester cette nouvelle stratégie en publiant les événements contenant le mot « Error » dans lemessage.

Pour publier des événements à l'aide de l'AWS CLI

A partir d'une invite de commande, exécutez la commande suivante. Notez que les modèles sont sensibleà la casse.

aws logs put-log-events \ --log-group-name MyApp/access.log --log-stream-name TestStream1 \ --log-events \ timestamp=1394793518000,message="This message contains an Error" \ timestamp=1394793528000,message="This message also contains an Error"

Exemple : Comptage du nombre de codes HTTP 404Avec CloudWatch Logs, vous pouvez surveiller le nombre de fois où vos serveurs Apache renvoientune réponse HTTP 404, c'est-à-dire le code de réponse de page introuvable. Vous pouvez surveiller cephénomène afin d'appréhender le nombre de fois où les visiteurs de votre site ne trouvent pas la ressourcequ'ils recherchent. Supposons que vos enregistrements de journaux sont structurés de manière à inclureles informations suivantes pour chaque événement de journal (visite du site) :

• Adresse IP du demandeur• Identité RFC 1413• Nom d'utilisateur• Horodatage• Méthode de la demande avec la ressource demandée et le protocole• Code de réponse HTTP à la demande• Nombre d'octets transférés dans la demande

Voici un exemple correspondant :

127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 404 2326

Vous pouvez spécifier une règle qui tente de relever les événements de cette structure pour les erreursHTTP 404, comme illustré dans l'exemple suivant :

78

Amazon CloudWatch Logs Guide de l'utilisateurExemple : Comptage du nombre de codes HTTP 404

Pour créer un filtre de métrique à l'aide de la console CloudWatch

1. Ouvrez la console CloudWatch à l'adresse https://console.aws.amazon.com/cloudwatch/.2. Dans le volet de navigation, sélectionnez Groupes de journaux.3. Dans le volet de contenu, sélectionnez le bouton en regard d’un groupe de journaux, puis choisissez

Créer un filtre de métriques.4. Dans l'écran Define Logs Metric Filter, pour Filter Pattern, tapez [IP, UserInfo, User,

Timestamp, RequestInfo, StatusCode=404, Bytes].5. Pour tester votre modèle de filtre, pour Select Log Data to Test, sélectionnez le groupe de journaux sur

lequel tester le filtre de métrique, puis choisissez Test Pattern.6. Sous Results, CloudWatch Logs affiche un message indiquant le nombre d'occurrences du modèle de

filtre qui ont été trouvées dans le fichier journal.

Pour afficher des résultats détaillés, choisissez Show test results.7. Choisissez Assign Metric puis, dans l'écran Create Metric Filter and Assign a Metric, pour Filter Name,

tapez HTTP404Errors.8. Sous Metric Details, pour Metric Namespace, tapez MyNameSpace.9. Dans Metric Name (Nom de la métrique), saisissez ApacheNotFoundErrorCount.10. Choisissez Afficher les paramètres de métrique avancés et confirmez que la Valeur de métrique est

égale à 1. Cela indique que le décompte est augmenté d'1 pour chaque événement « 404 Error ».11. Pour Valeur par défaut, saisissez 0 puis choisissez Créer un filtre.

Pour créer un filtre de métrique à l'aide de l'AWS CLI

A partir d'une invite de commande, exécutez la commande suivante :

aws logs put-metric-filter \ --log-group-name MyApp/access.log \ --filter-name HTTP404Errors \ --filter-pattern '[ip, id, user, timestamp, request, status_code=404, size]' \ --metric-transformations \ metricName=ApacheNotFoundErrorCount,metricNamespace=MyNamespace,metricValue=1

Dans cet exemple, les caractères littéraux, tels que les crochets gauche et droit, les doubles guillemetset la chaîne de caractères 404 ont été utilisés. Le modèle doit correspondre au message tout entier del'événement du journal pour que cet événement soit pris en compte à des fins de surveillance.

Vous pouvez vérifier la création du filtre de métrique à l'aide de la commande describe-metric-filters. Vousdevriez obtenir un résultat du type suivant :

aws logs describe-metric-filters --log-group-name MyApp/access.log

{ "metricFilters": [ { "filterName": "HTTP404Errors", "metricTransformations": [ { "metricValue": "1", "metricNamespace": "MyNamespace", "metricName": "ApacheNotFoundErrorCount" } ], "creationTime": 1399277571078, "filterPattern": "[ip, id, user, timestamp, request, status_code=404, size]" } ]

79

Amazon CloudWatch Logs Guide de l'utilisateurExemple : Comptage du nombre de codes HTTP 4xx

}

Désormais, vous pouvez publier quelques événements manuellement :

aws logs put-log-events \--log-group-name MyApp/access.log --log-stream-name hostname \--log-events \timestamp=1394793518000,message="127.0.0.1 - bob [10/Oct/2000:13:55:36 -0700] \"GET /apache_pb.gif HTTP/1.0\" 404 2326" \timestamp=1394793528000,message="127.0.0.1 - bob [10/Oct/2000:13:55:36 -0700] \"GET /apache_pb2.gif HTTP/1.0\" 200 2326"

Peu après avoir mis ces exemples d'événements de journaux, vous pouvez récupérer la métrique nomméedans la console CloudWatch en tant que ApacheNotFoundErrorCount.

Exemple : Comptage du nombre de codes HTTP 4xxComme dans l'exemple précédent, il se peut que vous souhaitiez surveiller vos journaux d'accès auxservices Web ainsi que les niveaux de code de réponse HTTP. Par exemple, vous pouvez souhaitersurveiller toutes les erreurs HTTP de niveau 400. Cependant, vous ne voudrez pas forcément spécifier unnouveau filtre de métrique pour chaque code de retour.

Vous trouverez ci-dessous comment créer une métrique qui inclut toutes les réponses de code HTTPde niveau 400 à partir d'un journal d'accès en utilisant le format de journal d'accès Apache de l'exempleExemple : Comptage du nombre de codes HTTP 404 (p. 78).

Pour créer un filtre de métrique à l'aide de la console CloudWatch

1. Ouvrez la console CloudWatch à l'adresse https://console.aws.amazon.com/cloudwatch/.2. Dans le volet de navigation, sélectionnez Groupes de journaux.3. Dans le volet de contenu, sélectionnez le bouton en regard d’un groupe de journaux, puis choisissez

Créer un filtre de métriques.4. Dans l'écran Define Logs Metric Filter, pour Filter Pattern, tapez [ip, id, user, timestamp,

request, status_code=4*, size].5. Pour tester votre modèle de filtre, pour Select Log Data to Test, sélectionnez le groupe de journaux sur

lequel tester le filtre de métrique, puis choisissez Test Pattern.6. Sous Results, CloudWatch Logs affiche un message indiquant le nombre d'occurrences du modèle de

filtre qui ont été trouvées dans le fichier journal.

Pour afficher les résultats détaillés, cliquez sur Show test results.7. Choisissez Assign Metric, puis, dans l'écran Create Metric Filter and Assign a Metric, pour Filter Name,

tapez HTTP4xxErrors.8. Sous Metric Details, pour Metric Namespace, tapez MyNameSpace.9. Pour Nom de la métrique, tapez HTTP4xxErrors.10. Choisissez Afficher les paramètres de métrique avancés et confirmez que la Valeur de métrique

est égale à 1. Cela indique que le décompte est augmenté d'1 pour chaque événement de journalcontenant « 4xx error ».

11. Pour Valeur par défaut, saisissez 0 puis choisissez Créer un filtre.

Pour créer un filtre de métrique à l'aide de l'AWS CLI

A partir d'une invite de commande, exécutez la commande suivante :

aws logs put-metric-filter \

80

Amazon CloudWatch Logs Guide de l'utilisateurExemple : Extraction des champs d'un journal Apache

--log-group-name MyApp/access.log \ --filter-name HTTP4xxErrors \ --filter-pattern '[ip, id, user, timestamp, request, status_code=4*, size]' \ --metric-transformations \ metricName=HTTP4xxErrors,metricNamespace=MyNamespace,metricValue=1,defaultValue=0

Vous pouvez utiliser les données suivantes dans les appels PutEvents pour tester cette règle. Si vousn'a pas supprimé la règle de surveillance de l'exemple précédent, vous allez générer deux métriquesdifférentes.

127.0.0.1 - - [24/Sep/2013:11:49:52 -0700] "GET /index.html HTTP/1.1" 404 287127.0.0.1 - - [24/Sep/2013:11:49:52 -0700] "GET /index.html HTTP/1.1" 404 287127.0.0.1 - - [24/Sep/2013:11:50:51 -0700] "GET /~test/ HTTP/1.1" 200 3127.0.0.1 - - [24/Sep/2013:11:50:51 -0700] "GET /favicon.ico HTTP/1.1" 404 308127.0.0.1 - - [24/Sep/2013:11:50:51 -0700] "GET /favicon.ico HTTP/1.1" 404 308127.0.0.1 - - [24/Sep/2013:11:51:34 -0700] "GET /~test/index.html HTTP/1.1" 200 3

Exemple : Extraction des champs d'un journal ApacheParfois, au lieu de compter, il peut s'avérer utile d'utiliser des valeurs d'événements de journaux individuelspour les valeurs de métriques. Cet exemple montre comment vous pouvez créer une règle d'extraction afinde créer une métrique qui mesure le nombre d'octets transférés par un serveur Apache.

Cette règle d'extraction correspond aux sept champs de l'événement de journal. La valeur de la métriquecorrespond à la valeur du septième jeton correspondant. Vous pouvez voir la référence au jeton sous laforme « $7 » dans le champ metricValue de la règle d'extraction.

Pour créer un filtre de métrique à l'aide de la console CloudWatch

1. Ouvrez la console CloudWatch à l'adresse https://console.aws.amazon.com/cloudwatch/.2. Dans le volet de navigation, sélectionnez Groupes de journaux.3. Dans le volet de contenu, sélectionnez le bouton en regard d’un groupe de journaux, puis choisissez

Créer un filtre de métriques.4. Dans l'écran Define Logs Metric Filter, pour Filter Pattern, tapez [ip, id, user, timestamp,

request, status_code, size].5. Pour tester votre modèle de filtre, pour Select Log Data to Test, sélectionnez le groupe de journaux sur

lequel tester le filtre de métrique, puis choisissez Test Pattern.6. Sous Results, CloudWatch Logs affiche un message indiquant le nombre d'occurrences du modèle de

filtre qui ont été trouvées dans le fichier journal.

Pour afficher les résultats détaillés, cliquez sur Show test results.7. Choisissez Assign Metric puis, dans l'écran Create Metric Filter and Assign a Metric, pour Filter Name,

tapez size.8. Sous Metric Details, pour Metric Namespace, tapez MyNameSpace.9. Dans Metric Name (Nom de la métrique), saisissez BytesTransferred.10. Choisissez Afficher les paramètres de métrique avancés et pour Valeur de métrique, tapez $size.11. Pour Valeur par défaut, saisissez 0 puis choisissez Créer un filtre.

Pour créer un filtre de métrique à l'aide de l'AWS CLI

A partir d'une invite de commande, exécutez la commande suivante :

aws logs put-metric-filter \

81

Amazon CloudWatch Logs Guide de l'utilisateurListe des filtres de métriques

--log-group-name MyApp/access.log \--filter-name BytesTransferred \--filter-pattern '[ip, id, user, timestamp, request, status_code=4*, size]' \--metric-transformations \metricName=BytesTransferred,metricNamespace=MyNamespace,metricValue=$size,defaultValue=0

Vous pouvez utiliser les données suivantes dans les appels PutLogEvents pour tester cette règle. Si vousn'avez pas supprimé la règle de surveillance de l'exemple précédent, vous allez générer deux métriquesdifférentes.

127.0.0.1 - - [24/Sep/2013:11:49:52 -0700] "GET /index.html HTTP/1.1" 404 287127.0.0.1 - - [24/Sep/2013:11:49:52 -0700] "GET /index.html HTTP/1.1" 404 287127.0.0.1 - - [24/Sep/2013:11:50:51 -0700] "GET /~test/ HTTP/1.1" 200 3127.0.0.1 - - [24/Sep/2013:11:50:51 -0700] "GET /favicon.ico HTTP/1.1" 404 308127.0.0.1 - - [24/Sep/2013:11:50:51 -0700] "GET /favicon.ico HTTP/1.1" 404 308127.0.0.1 - - [24/Sep/2013:11:51:34 -0700] "GET /~test/index.html HTTP/1.1" 200 3

Liste des filtres de métriquesVous pouvez lister tous les filtres de métriques d'un groupe de journaux.

Pour lister les filtres de métriques au moyen de la console CloudWatch

1. Ouvrez la console CloudWatch à l'adresse https://console.aws.amazon.com/cloudwatch/.2. Dans le volet de navigation, sélectionnez Groupes de journaux.3. Dans le volet de contenu, dans la liste des groupes de journaux, et plus précisément dans la colonne

Metric Filters, choisissez le nombre de filtres.

La fenêtre Log Groups > Filters for répertorie tous les filtres de métriques associés au groupe dejournaux.

Pour lister les filtres de métriques à l'aide de l'AWS CLI

A partir d'une invite de commande, exécutez la commande suivante :

aws logs describe-metric-filters --log-group-name MyApp/access.log

Voici un exemple de sortie :

{ "metricFilters": [ { "filterName": "HTTP404Errors", "metricTransformations": [ { "metricValue": "1", "metricNamespace": "MyNamespace", "metricName": "ApacheNotFoundErrorCount" } ], "creationTime": 1399277571078, "filterPattern": "[ip, id, user, timestamp, request, status_code=404, size]" } ]}

82

Amazon CloudWatch Logs Guide de l'utilisateurSuppression d'un filtre métrique

Suppression d'un filtre métriqueUne stratégie est identifiée par son nom et le groupe de journaux auquel elle appartient.

Pour supprimer un filtre de métrique au moyen de la console CloudWatch

1. Ouvrez la console CloudWatch à l'adresse https://console.aws.amazon.com/cloudwatch/.2. Dans le volet de navigation, sélectionnez Groupes de journaux.3. Dans le volet de contenu, dans la colonne Metric Filter, choisissez le filtre de métrique.4. Dans l'écran Logs Metric Filters, dans le filtre de métrique, choisissez Delete Filter.5. Lorsque vous êtes invité à confirmer l'opération, choisissez Oui, supprimer.

Pour supprimer un filtre de métrique à l'aide de l'AWS CLI

A partir d'une invite de commande, exécutez la commande suivante :

aws logs delete-metric-filter --log-group-name MyApp/access.log \ --filter-name MyFilterName

Recherche dans des données de journaux aumoyen de modèles de filtres

Vous pouvez effectuer une recherche dans les données de vos journaux en utilisant la Syntaxe de filtreet de modèle (p. 68). Vous pouvez effectuer une recherche dans tous les flux de journaux au seind'un groupe de journaux, ou rechercher des flux de journaux spécifiques à l'aide de l'AWS CLI. A chaqueexécution, la recherche renvoie la première page de données trouvées et un jeton pour récupérer la pagede données suivante ou pour continuer la recherche. Si aucun résultat n'est obtenu, vous pouvez continuerla recherche.

Vous pouvez définir la plage de temps que vous souhaitez interroger pour limiter la portée de votrerecherche. Vous pouvez commencer par une durée plus importante pour voir où se trouvent les lignes dejournaux qui vous intéressent, puis la réduire afin de consulter des journaux spécifiques de cette période.

Vous pouvez également transiter directement des métriques extraites de vos journaux aux journauxcorrespondants.

Recherche dans des entrées de journal à l'aide de laconsoleVous pouvez rechercher des entrées de journal qui correspondent à des critères spécifiés à partir de laconsole.

Pour effectuer une recherche dans vos journaux à l'aide de la console

1. Ouvrez la console CloudWatch à l'adresse https://console.aws.amazon.com/cloudwatch/.2. Dans le volet de navigation, sélectionnez Groupes de journaux.3. Pour Log Groups, choisissez le nom du groupe de journaux contenant le flux de journal devant faire

l'objet de la recherche.

83

Amazon CloudWatch Logs Guide de l'utilisateurRecherche dans des entrées

de journal à l'aide de l'AWS CLI

4. Pour Log Streams, choisissez le nom du flux de journal devant faire l'objet de la recherche.5. Pour Filter, tapez la syntaxe de filtre de métrique à utiliser, puis appuyez sur Entrée.

Pour effectuer une recherche dans toutes les entrées de journal pour une plage de temps donnéeà l'aide de la console

1. Ouvrez la console CloudWatch à l'adresse https://console.aws.amazon.com/cloudwatch/.2. Dans le volet de navigation, sélectionnez Groupes de journaux.3. Pour Log Groups, choisissez le nom du groupe de journaux contenant le flux de journal devant faire

l'objet de la recherche.4. Choisissez Search Events.5. Pour Filter, tapez la syntaxe de filtre de métrique à utiliser, sélectionnez la plage de dates et de temps,

puis appuyez sur Entrée.

Recherche dans des entrées de journal à l'aide del'AWS CLIVous pouvez rechercher les entrées de journal qui correspondent à des critères spécifiés à l'aide de l'AWSCLI.

Pour effectuer une recherche dans des entrées de journal à l'aide de l'AWS CLI

À partir d'une invite de commande, exécutez la commande filter-log-events suivante. Utilisez --filter-pattern pour limiter les résultats au modèle de filtre spécifié et --log-stream-names pour limiter lesrésultats au groupe de journaux spécifié.

aws logs filter-log-events --log-group-name my-group [--log-stream-names LIST_OF_STREAMS_TO_SEARCH] --filter-pattern VALID_METRIC_FILTER_PATTERN]

Pour effectuer une recherche dans des entrées de journal sur une plage de temps donnée à l'aide del'AWS CLI

À partir d'une invite de commande, exécutez la commande filter-log-events suivante :

aws logs filter-log-events --log-group-name my-group [--log-stream-names LIST_OF_STREAMS_TO_SEARCH] [--start-time 1482197400000] [--end-time 1482217558365] [--filter-pattern VALID_METRIC_FILTER_PATTERN]

Transition des métriques aux journauxVous pouvez accéder à des entrées de journal spécifiques à partir d'autres emplacements de la console.

Pour passer de widgets de tableau de bord à des journaux

1. Ouvrez la console CloudWatch à l'adresse https://console.aws.amazon.com/cloudwatch/.2. Dans le volet de navigation, choisissez Dashboards.3. Choisissez un tableau de bord.4. Sur le widget, choisissez l'icône View logs, puis choisissez View logs in this time range. S'il existe

plusieurs filtres de métriques, sélectionnez-en un dans la liste. Si le nombre de filtres de métriques estsupérieur au nombre de filtres pouvant être affichés dans la liste, choisissez More metric filters, puissélectionnez ou recherchez un filtre de métrique.

84

Amazon CloudWatch Logs Guide de l'utilisateurDépannage

Pour passer des métriques aux journaux

1. Ouvrez la console CloudWatch à l'adresse https://console.aws.amazon.com/cloudwatch/.2. Dans le volet de navigation, choisissez Metrics.3. Dans le champ de recherche situé sous l'onglet All metrics, tapez le nom de la métrique et appuyez sur

Entrée.4. Sélectionnez une ou plusieurs métriques dans les résultats de la recherche.5. Choisissez Actions, View logs. S'il existe plusieurs filtres de métriques, sélectionnez-en un dans la

liste. Si le nombre de filtres de métriques est supérieur au nombre de filtres pouvant être affichés dansla liste, choisissez More metric filters, puis sélectionnez ou recherchez un filtre de métrique.

DépannageLa recherche prend trop longtemps

Si vous avez beaucoup de données de journal, la recherche peut prendre beaucoup de temps. Afind'accélérer le processus, vous pouvez procéder comme indiqué ci-dessous :

• Si vous utilisez l'AWS CLI, vous pouvez restreindre la recherche aux flux de journaux qui vousintéressent. Par exemple, si votre groupe de journaux comporte 1 000 flux de journaux, mais queseuls trois vous intéressent pour leur pertinence, vous pouvez utiliser l'AWS CLI pour restreindre votrerecherche à ces trois flux au sein du groupe de journaux.

• Utilisez une période plus courte, à niveau de détail supérieur, ce qui réduit la quantité de données danslaquelle effectuer la recherche et accélère la requête.

85

Amazon CloudWatch Logs Guide de l'utilisateurConcepts

Traitement en temps réel desdonnées de journaux avec lesabonnements

Vous pouvez utiliser des abonnements pour accéder à un flux d'événements de journaux en tempsréel fourni par CloudWatch Logs et le transmettre à d'autres services tels qu'un flux Amazon Kinesis,un flux Amazon Kinesis Data Firehose ou AWS Lambda afin d'effectuer une analyse ou un traitementpersonnalisé, ou pour le charger dans d'autres systèmes. Pour commencer à s'abonner à des événementsde journaux, créez la source de réception, telle qu'un flux Kinesis, où les événements seront transférés.Un filtre d'abonnement définit le modèle de filtrage à utiliser pour filtrer les événements de journaux àtransférer à votre ressources AWS, ainsi que les informations sur la destination de ces événements.

Note

Si le service de destination renvoie une erreur réessayable, telle qu'une exception de limitationou une exception de service réessayable (HTTP 5xx par exemple), CloudWatch Logs continueà essayer la transmission pendant 24 heures maximum. CloudWatch Logs n'essaie pas deretransmettre si l'erreur est une erreur non réessayable, telle que AccessDeniedException ouResourceNotFoundException.

CloudWatch Logs produit également des métriques CloudWatch concernant le transfert des événementsde journaux vers les abonnements. Pour de plus amples informations, veuillez consulter Métriques etdimensions Amazon CloudWatch Logs.

Sommaire• Concepts (p. 86)• Utilisation des filtres d'abonnements CloudWatch Logs (p. 87)• Partage de données de journaux entre comptes avec les abonnements (p. 98)

ConceptsChaque filtre d'abonnement est composé des principaux éléments suivants :

log group name

Le groupe de journaux auquel associer le filtre d'abonnement. Tous les événements de journauxtéléchargés sur ce groupe de journaux sont soumis au filtre d'abonnement et transmis au flux Kinesischoisi, si le modèle de filtrage correspond aux événements de journaux.

filter pattern

Une description symbolique de la manière dont CloudWatch Logs doit interpréter les données dechaque événement de journal, avec les expressions de filtrage qui limitent le contenu remis à laressource AWS de destination. Pour plus d'informations sur la syntaxe des modèles de filtrage,consultez Syntaxe de filtre et de modèle (p. 68).

86

Amazon CloudWatch Logs Guide de l'utilisateurUtilisation de filtres d'abonnements

destination arn

L'Amazon Resource Name (ARN) du flux Kinesis, du flux Kinesis Data Firehose ou de la fonctionLambda que vous souhaitez utiliser comme destination du flux d'abonnement.

role arn

Un rôle IAM qui octroie à CloudWatch Logs les autorisations nécessaires pour placer des donnéesdans le flux Kinesis choisi. Ce rôle n'est pas nécessaire pour les destinations Lambda, car CloudWatchLogs peut obtenir les autorisations nécessaires à partir des paramètres de contrôle d'accès de lafonction Lambda elle-même.

distribution

Méthode utilisée pour distribuer les données de journaux à la destination, lorsque la destination est leflux Amazon Kinesis. Par défaut, les données des journaux sont regroupées par flux de journaux. Pourassurer une meilleure répartition de la distribution, vous pouvez regrouper les données des journauxde manière aléatoire.

Utilisation des filtres d'abonnements CloudWatchLogs

Vous pouvez utiliser un filtre d'abonnements avec Kinesis, Lambda ou Kinesis Data Firehose.

Exemples• Exemple 1 : Filtres d'abonnements avec Kinesis (p. 87)• Exemple 2 : Filtres d'abonnements avec AWS Lambda (p. 91)• Exemple 3 : Filtres d'abonnements avec Amazon Kinesis Data Firehose (p. 93)

Exemple 1 : Filtres d'abonnements avec KinesisL'exemple suivant associe un filtre d'abonnements à un groupe de journaux contenant des événementsAWS CloudTrail afin que toutes les activités enregistrées issues des informations d'identification « Root »AWS soient acheminées vers un flux Kinesis appelé « RootAccess ». Pour plus d'informations surl'envoi d'événements AWS CloudTrail à CloudWatch Logs, consultez Envoi d'événements CloudTrail àCloudWatch Logs dans le AWS CloudTrail User Guide.

Note

Avant de créer le flux Kinesis, calculez le volume de données de journaux qui sera généré.Assurez-vous de créer un flux Kinesis avec suffisamment de partitions pour gérer le volume. Si leflux n'a pas suffisamment de partitions, le flux de journaux sera limité. Pour plus d'informations surles limites de volume de flux Kinesis, consultez Limites de flux données Amazon Kinesis.

Pour créer un filtre d'abonnements pour Kinesis

1. Créez un flux Kinesis de destination à l'aide de la commande suivante :

$ C:\> aws kinesis create-stream --stream-name "RootAccess" --shard-count 1

2. Attendez que le flux Kinesis devienne actif (cela peut prendre une minute ou deux).Vous pouvez utiliser la commande Kinesis describe-stream pour vérifier la propriétéStreamDescription.StreamStatus. Par ailleurs, notez la valeur de StreamDescription.StreamARN, carvous en aurez besoin dans une étape ultérieure :

87

Amazon CloudWatch Logs Guide de l'utilisateurExemple 1 : Filtres d'abonnements avec Kinesis

aws kinesis describe-stream --stream-name "RootAccess"

Voici un exemple de sortie :

{ "StreamDescription": { "StreamStatus": "ACTIVE", "StreamName": "RootAccess", "StreamARN": "arn:aws:kinesis:us-east-1:123456789012:stream/RootAccess", "Shards": [ { "ShardId": "shardId-000000000000", "HashKeyRange": { "EndingHashKey": "340282366920938463463374607431768211455", "StartingHashKey": "0" }, "SequenceNumberRange": { "StartingSequenceNumber": "49551135218688818456679503831981458784591352702181572610" } } ] }}

3. Créez le rôle IAM qui accorde à CloudWatch Logs l'autorisation de placer des données dans votreflux Kinesis. Vous devrez tout d'abord créer une stratégie d'approbation dans un fichier (par exemple,~/TrustPolicyForCWL.json). Utilisez un éditeur de texte créer cette stratégie. N'utilisez pas laconsole IAM pour la créer.

{ "Statement": { "Effect": "Allow", "Principal": { "Service": "logs.region.amazonaws.com" }, "Action": "sts:AssumeRole" }}

4. Utilisez la commande create-role pour créer le rôle IAM, en spécifiant le fichier de stratégied'approbation. Notez la valeur retournée de Role.Arn, car vous en aurez aussi besoin ultérieurement :

aws iam create-role --role-name CWLtoKinesisRole --assume-role-policy-document file://~/TrustPolicyForCWL.json

{ "Role": { "AssumeRolePolicyDocument": { "Statement": { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": "logs.region.amazonaws.com" } } }, "RoleId": "AAOIIAH450GAB4HC5F431", "CreateDate": "2015-05-29T13:46:29.431Z", "RoleName": "CWLtoKinesisRole", "Path": "/", "Arn": "arn:aws:iam::123456789012:role/CWLtoKinesisRole"

88

Amazon CloudWatch Logs Guide de l'utilisateurExemple 1 : Filtres d'abonnements avec Kinesis

}}

5. Créez une stratégie d'autorisations pour définir les actions permises à CloudWatch Logs sur votrecompte. Vous allez tout d'abord créer une stratégie d'autorisations dans un fichier (par exemple, ~/PermissionsForCWL.json). Utilisez un éditeur de texte créer cette stratégie. N'utilisez pas laconsole IAM pour la créer.

{ "Statement": [ { "Effect": "Allow", "Action": "kinesis:PutRecord", "Resource": "arn:aws:kinesis:region:123456789012:stream/RootAccess" }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::123456789012:role/CWLtoKinesisRole" } ]}

6. Associez la stratégie d'autorisations au rôle à l'aide de la commande put-role-policy suivante :

aws iam put-role-policy --role-name CWLtoKinesisRole --policy-name Permissions-Policy-For-CWL --policy-document file://~/PermissionsForCWL.json

7. Lorsque le flux Kinesis est dans l'état Active et que vous avez créé le rôle IAM, vous pouvez créer lefiltre d'abonnement CloudWatch Logs. Le filtre d'abonnement lance immédiatement la transmission dedonnées de journaux en temps réel à partir du groupe de journaux choisi vers votre flux Kinesis :

aws logs put-subscription-filter \ --log-group-name "CloudTrail" \ --filter-name "RootAccess" \ --filter-pattern "{$.userIdentity.type = Root}" \ --destination-arn "arn:aws:kinesis:region:123456789012:stream/RootAccess" \ --role-arn "arn:aws:iam::123456789012:role/CWLtoKinesisRole"

8. Après avoir configuré le filtre d'abonnements, CloudWatch Logs transfère tous les événements dejournaux entrants qui correspondent au modèle de filtre à votre flux Kinesis. Vous pouvez vérifier quecela se produit en saisissant un itérateur de partition Kinesis et en utilisant la commande get-recordsd'Kinesis pour rechercher des enregistrements Kinesis :

aws kinesis get-shard-iterator --stream-name RootAccess --shard-id shardId-000000000000 --shard-iterator-type TRIM_HORIZON

{ "ShardIterator": "AAAAAAAAAAFGU/kLvNggvndHq2UIFOw5PZc6F01s3e3afsSscRM70JSbjIefg2ub07nk1y6CDxYR1UoGHJNP4m4NFUetzfL+wev+e2P4djJg4L9wmXKvQYoE+rMUiFq+p4Cn3IgvqOb5dRA0yybNdRcdzvnC35KQANoHzzahKdRGb9v4scv+3vaq+f+OIK8zM5My8ID+g6rMo7UKWeI4+IWiK2OSh0uP"}

aws kinesis get-records --limit 10 --shard-iterator "AAAAAAAAAAFGU/kLvNggvndHq2UIFOw5PZc6F01s3e3afsSscRM70JSbjIefg2ub07nk1y6CDxYR1UoGHJNP4m4NFUetzfL+wev+e2P4djJg4L9wmXKvQYoE+rMUiFq+p4Cn3IgvqOb5dRA0yybNdRcdzvnC35KQANoHzzahKdRGb9v4scv+3vaq+f+OIK8zM5My8ID+g6rMo7UKWeI4+IWiK2OSh0uP"

89

Amazon CloudWatch Logs Guide de l'utilisateurExemple 1 : Filtres d'abonnements avec Kinesis

Notez que vous serez peut-être amené à renouveler cet appel plusieurs fois avant que Kinesiscommence à retourner des données.

Vous devriez obtenir une réponse constituée d'un tableau d'enregistrements. L'attribut Data d'unenregistrement Kinesis est codé en Base64 et compressé au format gzip. Vous pouvez examiner lesdonnées brutes à partir de la ligne de commande au moyen des commandes Unix suivantes :

echo -n "<Content of Data>" | base64 -d | zcat

Les données Base64 décodées et décompressées sont formatées au format JSON avec la structuresuivante :

{ "owner": "111111111111", "logGroup": "CloudTrail", "logStream": "111111111111_CloudTrail_us-east-1", "subscriptionFilters": [ "Destination" ], "messageType": "DATA_MESSAGE", "logEvents": [ { "id": "31953106606966983378809025079804211143289615424298221568", "timestamp": 1432826855000, "message": "{\"eventVersion\":\"1.03\",\"userIdentity\":{\"type\":\"Root\"}" }, { "id": "31953106606966983378809025079804211143289615424298221569", "timestamp": 1432826855000, "message": "{\"eventVersion\":\"1.03\",\"userIdentity\":{\"type\":\"Root\"}" }, { "id": "31953106606966983378809025079804211143289615424298221570", "timestamp": 1432826855000, "message": "{\"eventVersion\":\"1.03\",\"userIdentity\":{\"type\":\"Root\"}" } ]}

Les éléments clés de la structure de données ci-dessus sont les suivants :

owner

L'ID de compte AWS des données de journaux source.logGroup

Le nom du groupe de journaux des données de journaux source.logStream

Le nom du flux de journaux des données de journaux source.subscriptionFilters

La liste des noms de filtres d'abonnements qui correspondaient aux données de journaux source.

90

Amazon CloudWatch Logs Guide de l'utilisateurExemple 2 : Filtres d'abonnements avec AWS Lambda

messageType

Les données de messages utiliseront le type « DATA_MESSAGE ». CloudWatch Logs peutparfois émettre des enregistrements Kinesis de type « CONTROL_MESSAGE », principalementpour vérifier si la destination est accessible.

logEvents

Les données de journaux réelles, représentées sous la forme d'un tableau d'enregistrementsd'événements de journaux. La propriété « id » est un identifiant unique pour chaque événement dejournal.

Exemple 2 : Filtres d'abonnements avec AWS LambdaDans cet exemple, vous allez créer un filtre d'abonnement CloudWatch Logs qui envoie des données dejournaux à votre fonction AWS Lambda.

Note

Avant de créer la fonction Lambda, calculez le volume de données de journaux qui sera généré.Veillez à créer une fonction qui peut gérer ce volume. Si la fonction n'a pas suffisamment devolume, le flux de journaux sera limité. Pour plus d'informations sur les limites de Lambda;,consultez Limites AWS Lambda.

Pour créer un filtre d'abonnements pour Lambda

1. Créez la fonction AWS Lambda.

Assurez-vous d'avoir configuré le rôle d'exécution Lambda. Pour plus d'informations, consultezÉtape 2.2 : Créer un rôle IAM (rôle d'exécution) dans le AWS Lambda Developer Guide.

2. Ouvrez un éditeur de texte et créez un fichier nommé helloWorld.js avec le contenu suivant :

var zlib = require('zlib');exports.handler = function(input, context) { var payload = Buffer.from(input.awslogs.data, 'base64'); zlib.gunzip(payload, function(e, result) { if (e) { context.fail(e); } else { result = JSON.parse(result.toString('ascii')); console.log("Event Data:", JSON.stringify(result, null, 2)); context.succeed(); } });};

3. Zippez le fichier helloWorld.js et enregistrez-le sous le nom helloWorld.zip.4. Utilisez la commande suivante, où le rôle correspond au rôle d'exécution Lambda que vous avez

configuré à la première étape :

aws lambda create-function \ --function-name helloworld \ --zip-file fileb://file-path/helloWorld.zip \ --role lambda-execution-role-arn \ --handler helloWorld.handler \ --runtime nodejs8.10

5. Accordez à CloudWatch Logs l'autorisation d'exécuter votre fonction. Utilisez la commande suivanteen remplaçant l'espace réservé au compte par votre propre compte et l'espace réservé au groupe dejournaux par le groupe de journaux à traiter :

91

Amazon CloudWatch Logs Guide de l'utilisateurExemple 2 : Filtres d'abonnements avec AWS Lambda

aws lambda add-permission \ --function-name "helloworld" \ --statement-id "helloworld" \ --principal "logs.region.amazonaws.com" \ --action "lambda:InvokeFunction" \ --source-arn "arn:aws:logs:region:123456789123:log-group:TestLambda:*" \ --source-account "123456789012"

6. Créez un filtre d'abonnements à l'aide de la commande suivante en remplaçant l'espace réservé aucompte par votre propre compte et l'espace réservé au groupe de journaux par le groupe de journauxà traiter :

aws logs put-subscription-filter \ --log-group-name myLogGroup \ --filter-name demo \ --filter-pattern "" \ --destination-arn arn:aws:lambda:region:123456789123:function:helloworld

7. (Facultatif) Testez au moyen d'un exemple d'événement de journal. A l'invite de commande, exécutezla commande suivante, qui mettra un message de journal simple dans le flux abonné.

Pour connaître l'issue de votre fonction Lambda, accédez à la fonction Lambda où vous verrez lerésultat sous /aws/lambda/helloworld :

aws logs put-log-events --log-group-name myLogGroup --log-stream-name stream1 --log-events "[{\"timestamp\":<CURRENT TIMESTAMP MILLIS> , \"message\": \"Simple Lambda Test\"}]"

Vous devriez voir une réponse comportant un tableau de Lambda. L'attribut Data de l'enregistrementLambda est codé en Base64 et compressé au format gzip. La charge utile réelle reçue par Lambdaest au format { "awslogs": {"data": "BASE64ENCODED_GZIP_COMPRESSED_DATA"} }suivant. Vous pouvez examiner les données brutes à partir de la ligne de commande au moyen descommandes Unix suivantes :

echo -n "<BASE64ENCODED_GZIP_COMPRESSED_DATA>" | base64 -d | zcat

Les données Base64 décodées et décompressées sont formatées au format JSON avec la structuresuivante :

{ "owner": "123456789012", "logGroup": "CloudTrail", "logStream": "123456789012_CloudTrail_us-east-1", "subscriptionFilters": [ "Destination" ], "messageType": "DATA_MESSAGE", "logEvents": [ { "id": "31953106606966983378809025079804211143289615424298221568", "timestamp": 1432826855000, "message": "{\"eventVersion\":\"1.03\",\"userIdentity\":{\"type\":\"Root\"}" }, { "id": "31953106606966983378809025079804211143289615424298221569", "timestamp": 1432826855000, "message": "{\"eventVersion\":\"1.03\",\"userIdentity\":{\"type\":\"Root\"}"

92

Amazon CloudWatch Logs Guide de l'utilisateurExemple 3 : Filtres d'abonnements

avec Amazon Kinesis Data Firehose

}, { "id": "31953106606966983378809025079804211143289615424298221570", "timestamp": 1432826855000, "message": "{\"eventVersion\":\"1.03\",\"userIdentity\":{\"type\":\"Root\"}" } ]}

Les éléments clés de la structure de données ci-dessus sont les suivants :

owner

L'ID de compte AWS des données de journaux source.logGroup

Le nom du groupe de journaux des données de journaux source.logStream

Le nom du flux de journaux des données de journaux source.subscriptionFilters

La liste des noms de filtres d'abonnements qui correspondaient aux données de journaux source.messageType

Les données de messages utiliseront le type « DATA_MESSAGE ». CloudWatch Logs peutparfois émettre des enregistrements Lambda de type « CONTROL_MESSAGE », principalementpour vérifier si la destination est accessible.

logEvents

Les données de journaux réelles, représentées sous la forme d'un tableau d'enregistrementsd'événements de journaux. La propriété « id » est un identifiant unique pour chaque événement dejournal.

Exemple 3 : Filtres d'abonnements avec AmazonKinesis Data FirehoseDans cet exemple, vous allez créer un abonnement CloudWatch Logs qui envoie à votre flux detransmission Amazon Kinesis Data Firehose tous les événements de journaux entrants qui correspondentà vos filtres définis. Les données envoyées de CloudWatch Logs à &AKFlong; Amazon Kinesis DataFirehose sont déjà compressées avec gzip de niveau 6. Vous n'avez donc pas besoin d'utiliser lacompression dans votre flux de transmission Kinesis Data Firehose.

Note

Avant de créer le flux Kinesis Data Firehose, calculez le volume de données de journaux quisera généré. Veillez à créer un flux Kinesis Data Firehose qui peut gérer ce volume. Si le flux nepeut pas traiter le volume, le flux de journaux sera limité. Pour plus d'informations sur les limitesde volume de flux Kinesis Data Firehose, consultez Limites de données Amazon Kinesis DataFirehose.

Pour créer un filtre d'abonnements pour Kinesis Data Firehose

1. Créez un compartiment Amazon Simple Storage Service (Amazon S3). Nous vous recommandonsd'utiliser un compartiment qui a été créé spécifiquement pour CloudWatch Logs. Toutefois, si voussouhaitez utiliser un compartiment existant, passez directement à l'étape 2.

93

Amazon CloudWatch Logs Guide de l'utilisateurExemple 3 : Filtres d'abonnements

avec Amazon Kinesis Data Firehose

Exécutez la commande suivante en remplaçant l'espace réservé à la région par la région que vousvoulez utiliser :

aws s3api create-bucket --bucket my-bucket --create-bucket-configuration LocationConstraint=region

Voici un exemple de sortie :

{ "Location": "/my-bucket"}

2. Créez le rôle IAM qui accorde à Amazon Kinesis Data Firehose l'autorisation de placer des donnéesdans votre compartiment Amazon S3.

Pour plus d'informations, consultez Contrôle de l'accès avec Amazon Kinesis Data Firehose dans leAmazon Kinesis Data Firehose Guide du développeur.

D'abord, utilisez un éditeur de texte pour créer une stratégie d'approbation dans un fichier ~/TrustPolicyForFirehose.json comme suit, en remplaçant account-id par l'ID de votre compteAWS :

{ "Statement": { "Effect": "Allow", "Principal": { "Service": "firehose.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId":"account-id" } } }}

3. Utilisez la commande create-role pour créer le rôle IAM, en spécifiant le fichier de stratégied'approbation. Notez la valeur retournée de Role.Arn, car vous en aurez besoin ultérieurement :

aws iam create-role \ --role-name FirehosetoS3Role \ --assume-role-policy-document file://~/TrustPolicyForFirehose.json

{ "Role": { "AssumeRolePolicyDocument": { "Statement": { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": "firehose.amazonaws.com" } } }, "RoleId": "AAOIIAH450GAB4HC5F431", "CreateDate": "2015-05-29T13:46:29.431Z", "RoleName": "FirehosetoS3Role", "Path": "/", "Arn": "arn:aws:iam::123456789012:role/FirehosetoS3Role" }}

4. Créez une stratégie d'autorisations pour définir les actions permises à Kinesis Data Firehose sur votrecompte. D'abord, utilisez un éditeur de texte pour créer une stratégie d'autorisations dans un fichier ~/PermissionsForFirehose.json :

94

Amazon CloudWatch Logs Guide de l'utilisateurExemple 3 : Filtres d'abonnements

avec Amazon Kinesis Data Firehose

{ "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::my-bucket", "arn:aws:s3:::my-bucket/*" ] } ]}

5. Associez la stratégie d'autorisations au rôle à l'aide de la commande put-role-policy suivante :

aws iam put-role-policy --role-name FirehosetoS3Role --policy-name Permissions-Policy-For-Firehose --policy-document file://~/PermissionsForFirehose.json

6. Créez un flux de transmission Kinesis Data Firehose de destination comme suit, en remplaçantl'espace réservé aux valeurs de RoleARN et BucketARN par les ARN de rôle et de compartiment quevous avez créés :

aws firehose create-delivery-stream \ --delivery-stream-name 'my-delivery-stream' \ --s3-destination-configuration \ '{"RoleARN": "arn:aws:iam::123456789012:role/FirehosetoS3Role", "BucketARN": "arn:aws:s3:::my-bucket"}'

Notez que Kinesis Data Firehoseutilise automatiquement un préfixe au format AAAA/MM/JJ/HH UTCpour les objets Amazon S3transmis. Vous pouvez spécifier un préfixe supplémentaire à ajouter devantle préfixe de format temporel. Si le préfixe se termine par une barre oblique (/), il apparaît comme undossier dans le compartiment Amazon S3.

7. Attendez que le flux devienne actif (cela peut prendre quelques minutes). Vous pouvezutiliser la commande Kinesis Data Firehose describe-delivery-stream pour vérifier lapropriété DeliveryStreamDescription.DeliveryStreamStatus. Par ailleurs, notez la valeur deDeliveryStreamDescription.DeliveryStreamARN, car vous en aurez besoin ultérieurement :

aws firehose describe-delivery-stream --delivery-stream-name "my-delivery-stream"{ "DeliveryStreamDescription": { "HasMoreDestinations": false, "VersionId": "1", "CreateTimestamp": 1446075815.822, "DeliveryStreamARN": "arn:aws:firehose:us-east-1:123456789012:deliverystream/my-delivery-stream", "DeliveryStreamStatus": "ACTIVE", "DeliveryStreamName": "my-delivery-stream", "Destinations": [ { "DestinationId": "destinationId-000000000001", "S3DestinationDescription": { "CompressionFormat": "UNCOMPRESSED", "EncryptionConfiguration": { "NoEncryptionConfig": "NoEncryption"

95

Amazon CloudWatch Logs Guide de l'utilisateurExemple 3 : Filtres d'abonnements

avec Amazon Kinesis Data Firehose

}, "RoleARN": "delivery-stream-role", "BucketARN": "arn:aws:s3:::my-bucket", "BufferingHints": { "IntervalInSeconds": 300, "SizeInMBs": 5 } } } ] }}

8. Créez le rôle IAM qui accordera à CloudWatch Logs l'autorisation de placer des données dans votreflux de diffusion Kinesis Data Firehose. D'abord, utilisez un éditeur de texte pour créer une stratégied'approbation dans un fichier ~/TrustPolicyForCWL.json :

{ "Statement": { "Effect": "Allow", "Principal": { "Service": "logs.region.amazonaws.com" }, "Action": "sts:AssumeRole" }}

9. Utilisez la commande create-role pour créer le rôle IAM, en spécifiant le fichier de stratégied'approbation. Notez la valeur retournée de Role.Arn, car vous en aurez besoin ultérieurement :

aws iam create-role \ --role-name CWLtoKinesisFirehoseRole \ --assume-role-policy-document file://~/TrustPolicyForCWL.json

{ "Role": { "AssumeRolePolicyDocument": { "Statement": { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": "logs.region.amazonaws.com" } } }, "RoleId": "AAOIIAH450GAB4HC5F431", "CreateDate": "2015-05-29T13:46:29.431Z", "RoleName": "CWLtoKinesisFirehoseRole", "Path": "/", "Arn": "arn:aws:iam::123456789012:role/CWLtoKinesisFirehoseRole" }}

10. Créez une stratégie d'autorisations pour définir les actions permises à CloudWatch Logs sur votrecompte. D'abord, utilisez un éditeur de texte pour créer une stratégie d'autorisations dans un fichier(par exemple, ~/PermissionsForCWL.json) :

{ "Statement":[ { "Effect":"Allow", "Action":["firehose:*"], "Resource":["arn:aws:firehose:region:123456789012:*"] }, {

96

Amazon CloudWatch Logs Guide de l'utilisateurExemple 3 : Filtres d'abonnements

avec Amazon Kinesis Data Firehose

"Effect":"Allow", "Action":["iam:PassRole"], "Resource":["arn:aws:iam::123456789012:role/CWLtoKinesisFirehoseRole"] } ]}

11. Associez la stratégie d'autorisations au rôle au moyen de la commande put-role-policy :

aws iam put-role-policy --role-name CWLtoKinesisFirehoseRole --policy-name Permissions-Policy-For-CWL --policy-document file://~/PermissionsForCWL.json

12. Lorsque le flux Amazon Kinesis Data Firehose est dans l'état Active et que vous avez créé le rôleIAM, vous pouvez créer le filtre d'abonnement CloudWatch Logs. Le filtre d'abonnement lanceimmédiatement la transmission de données de journaux en temps réel à partir du groupe de journauxchoisi vers votre flux Amazon Kinesis Data Firehose :

aws logs put-subscription-filter \ --log-group-name "CloudTrail" \ --filter-name "Destination" \ --filter-pattern "{$.userIdentity.type = Root}" \ --destination-arn "arn:aws:firehose:region:123456789012:deliverystream/my-delivery-stream" \ --role-arn "arn:aws:iam::123456789012:role/CWLtoKinesisFirehoseRole"

13. Après avoir configuré le filtre d'abonnement, CloudWatch Logs transmet tous les événements dejournaux entrants qui correspondent au modèle de filtrage à votre flux de diffusion Amazon KinesisData Firehose. Vos données commenceront à apparaître dans votre Amazon S3 en fonction del'intervalle de temps tampon configuré pour votre flux de diffusion Amazon Kinesis Data Firehose.Après un délai suffisant, vous pouvez consulter votre compartiment Amazon S3 pour vérifier vosdonnées.

aws s3api list-objects --bucket 'my-bucket' --prefix 'firehose/'{ "Contents": [ { "LastModified": "2015-10-29T00:01:25.000Z", "ETag": "\"a14589f8897f4089d3264d9e2d1f1610\"", "StorageClass": "STANDARD", "Key": "firehose/2015/10/29/00/my-delivery-stream-2015-10-29-00-01-21-a188030a-62d2-49e6-b7c2-b11f1a7ba250", "Owner": { "DisplayName": "cloudwatch-logs", "ID": "1ec9cf700ef6be062b19584e0b7d84ecc19237f87b5" }, "Size": 593 }, { "LastModified": "2015-10-29T00:35:41.000Z", "ETag": "\"a7035b65872bb2161388ffb63dd1aec5\"", "StorageClass": "STANDARD", "Key": "firehose/2015/10/29/00/my-delivery-stream-2015-10-29-00-35-40-7cc92023-7e66-49bc-9fd4-fc9819cc8ed3", "Owner": { "DisplayName": "cloudwatch-logs", "ID": "1ec9cf700ef6be062b19584e0b7d84ecc19237f87b6" }, "Size": 5752 } ]}

97

Amazon CloudWatch Logs Guide de l'utilisateurPartage de données de journaux

entre comptes avec les abonnements

aws s3api get-object --bucket 'my-bucket' --key 'firehose/2015/10/29/00/my-delivery-stream-2015-10-29-00-01-21-a188030a-62d2-49e6-b7c2-b11f1a7ba250' testfile.gz

{ "AcceptRanges": "bytes", "ContentType": "application/octet-stream", "LastModified": "Thu, 29 Oct 2015 00:07:06 GMT", "ContentLength": 593, "Metadata": {}}

Les données dans l'objet Amazon S3 sont comprimées au format gzip. Vous pouvez examiner lesdonnées brutes à partir de la ligne de commande au moyen de la commande Unix suivante :

zcat testfile.gz

Partage de données de journaux entre comptesavec les abonnements

Vous pouvez collaborer avec le propriétaire d'un autre compte AWS et recevoir ses événements dejournaux sur vos ressources AWS, telles qu'un flux Amazon Kinesis (c’est ce que l’on appelle le partagedes données entre comptes). Par exemple, ces données d'événements de journaux peuvent être lues àpartir d'un flux Amazon Kinesis centralisé pour effectuer un traitement et une analyse personnalisés. Letraitement personnalisé est particulièrement utile lorsque vous collaborez et analysez les données surplusieurs comptes. Par exemple, le groupe de sécurité des informations d'une société pourrait souhaiteranalyser des données relatives à la détection d'intrusions en temps réel ou aux comportements anormaux.Il peut donc procéder à une vérification des comptes de tous les services de la société en recueillantleurs journaux de production séparés afin de les traiter de manière centrale. Un flux en temps réel desdonnées d'événements sur ces comptes peut être assemblé et acheminé vers les groupes de sécurité desinformations qui peuvent utiliser Kinesis pour associer les données à leurs systèmes d'analyse de sécuritéexistants.

Les flux Kinesis constituent actuellement la seule ressource prise en charge en tant que destination pourles abonnements entre comptes.

Pour partager des données de journaux entre comptes, vous devez spécifier un expéditeur et undestinataire :

• L'expéditeur de données de journaux— obtient les informations de destination à partir du destinataireet signale à CloudWatch Logs qu'il est prêt à envoyer ses événements de journaux à la destinationspécifiée. Dans les procédures énoncées dans le reste de cette section, l'expéditeur des données dejournaux est indiqué par le numéro de compte AWS fictif 111111111111.

• Le destinataire de données de journaux — met en place une destination qui encapsule un flux Kinesiset signale à CloudWatch Logs qu'il souhaite recevoir des données de journaux. Le destinataire partageensuite les informations sur sa destination avec l'expéditeur. Dans les procédures énoncées dans lereste de cette section, le destinataire des données de journaux est indiqué par le numéro de compteAWS fictif 999999999999.

Pour commencer à recevoir des événements de journaux en provenance d'utilisateurs entre comptes, ledestinataire des données de journaux doit tout d'abord créer une destination CloudWatch Logs. Chaquedestination comprend les éléments clés suivants :

98

Amazon CloudWatch Logs Guide de l'utilisateurCréation d'une destination

Nom de destination

Le nom de la destination que vous souhaitez créer.ARN cible

Le nom de ressource Amazon (Amazon Resource Name ou ARN) de la ressource AWS que voussouhaitez utiliser comme destination du flux d'abonnement.

ARN de rôle

Un rôle AWS Identity and Access Management (IAM) qui accorde à CloudWatch Logs les autorisationsnécessaires afin de placer des données dans le flux Kinesis choisi.

Stratégie d'accès

Un document de stratégie IAM (au format JSON, écrit à l'aide de la syntaxe des stratégies IAM)régissant l'ensemble des utilisateurs qui sont autorisés à écrire à votre destination.

Le groupe de journaux et la destination doivent se trouver dans la même région AWS. Par contre, laressource AWS vers laquelle pointe la destination peut être située dans une autre région.

Rubriques• Création d'une destination (p. 99)• Création d'un filtre d'abonnement (p. 102)• Validation du flux des événements de journaux (p. 103)• Modification de l'adhésion à la destination au moment de l'exécution (p. 104)

Création d'une destinationImportant

Toutes les étapes de cette procédure doivent être réalisées dans le compte du destinataire desdonnées de journaux.

Dans cet exemple, le compte du destinataire des données de journaux porte l'ID de compteAWS 999999999999, tandis que l'expéditeur du compte AWS des données de journaux portel'ID 111111111111.

Cet exemple crée une destination au moyen d'un flux Kinesis appelé RecipientStream, ainsi qu’un rôle quipermet à CloudWatch Logs d'y écrire des données.

Pour créer une destination

1. Créez un flux de destination dans Kinesis. À l'invite de commande, entrez :

aws kinesis create-stream --stream-name "RecipientStream" --shard-count 1

2. Patientez jusqu'à ce que le flux Kinesis devienne actif. Vous pouvez utiliser la commande aws kinesisdescribe-stream pour vérifier la propriété StreamDescription.StreamStatus. De plus, notez la valeur deStreamDescription.StreamARN, qui sera ultérieurement transmise à CloudWatch Logs :

aws kinesis describe-stream --stream-name "RecipientStream"{ "StreamDescription": { "StreamStatus": "ACTIVE",

99

Amazon CloudWatch Logs Guide de l'utilisateurCréation d'une destination

"StreamName": "RecipientStream", "StreamARN": "arn:aws:kinesis:us-east-1:999999999999:stream/RecipientStream", "Shards": [ { "ShardId": "shardId-000000000000", "HashKeyRange": { "EndingHashKey": "34028236692093846346337460743176EXAMPLE", "StartingHashKey": "0" }, "SequenceNumberRange": { "StartingSequenceNumber": "4955113521868881845667950383198145878459135270218EXAMPLE" } } ] }}

Votre flux de données peut prendre une ou deux minutes avant d'apparaître avec le statut actif.3. Créez le rôle IAM qui accorde à CloudWatch Logs l'autorisation de placer des données dans

votre flux Kinesis. Vous devrez tout d'abord créer une stratégie d'approbation dans un fichier ~/TrustPolicyForCWL.json. Utilisez un éditeur de texte pour créer ce fichier de stratégie, n'utilisez pas laconsole IAM.

{ "Statement": { "Effect": "Allow", "Principal": { "Service": "logs.region.amazonaws.com" }, "Action": "sts:AssumeRole" }}

4. Utilisez la commande aws iam create-role pour créer le rôle IAM, en spécifiant le fichier de stratégied'approbation. Notez la valeur Role.Arn renvoyée, car elle sera aussi transmise ultérieurement àCloudWatch Logs :

aws iam create-role \ --role-name CWLtoKinesisRole \ --assume-role-policy-document file://~/TrustPolicyForCWL.json

{ "Role": { "AssumeRolePolicyDocument": { "Statement": { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": "logs.region.amazonaws.com" } } }, "RoleId": "AAOIIAH450GAB4HC5F431", "CreateDate": "2015-05-29T13:46:29.431Z", "RoleName": "CWLtoKinesisRole", "Path": "/", "Arn": "arn:aws:iam::999999999999:role/CWLtoKinesisRole" }}

5. Créez une stratégie d'autorisations pour définir les actions permises à CloudWatch Logs sur votrecompte. Vous devez tout d'abord utiliser un éditeur de texte pour créer une stratégie d'autorisationsdans un fichier (par exemple, ~/PermissionsForCWL.json) :

100

Amazon CloudWatch Logs Guide de l'utilisateurCréation d'une destination

{ "Statement": [ { "Effect": "Allow", "Action": "kinesis:PutRecord", "Resource": "arn:aws:kinesis:region:999999999999:stream/RecipientStream" }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::999999999999:role/CWLtoKinesisRole" } ]}

6. Associez la stratégie d'autorisations au rôle au moyen de la commande aws iam put-role-policy :

aws iam put-role-policy \ --role-name CWLtoKinesisRole \ --policy-name Permissions-Policy-For-CWL \ --policy-document file://~/PermissionsForCWL.json

7. Lorsque le flux Kinesis est passé en statut actif et que vous avez créé le rôle IAM, vous pouvez créerla destination CloudWatch Logs.

a. Cette étape n'associera pas de stratégie d'accès à votre destination. Il s'agit uniquement de lapremière de deux étapes pour créer une destination. Notez le nom DestinationArn qui est renvoyédans la charge utile :

aws logs put-destination \ --destination-name "testDestination" \ --target-arn "arn:aws:kinesis:region:999999999999:stream/RecipientStream" \ --role-arn "arn:aws:iam::999999999999:role/CWLtoKinesisRole"

{ "DestinationName" : "testDestination", "RoleArn" : "arn:aws:iam::999999999999:role/CWLtoKinesisRole", "DestinationArn" : "arn:aws:logs:us-east-1:999999999999:destination:testDestination", "TargetArn" : "arn:aws:kinesis:us-east-1:999999999999:stream/RecipientStream"}

b. Une fois l'étape 7a terminée, dans le compte du destinataire des données de journaux, associezune politique d'accès à la destination. Cette politique permet au compte de l'expéditeur desdonnées de journaux (111111111111) d'accéder à la destination dans le compte du destinatairedes données de journaux (999999999999). Vous pouvez utiliser un éditeur de texte pour placercette stratégie dans le fichier ~/AccessPolicy.json :

{ "Version" : "2012-10-17", "Statement" : [ { "Sid" : "", "Effect" : "Allow", "Principal" : { "AWS" : "111111111111" }, "Action" : "logs:PutSubscriptionFilter", "Resource" : "arn:aws:logs:region:999999999999:destination:testDestination" } ]

101

Amazon CloudWatch Logs Guide de l'utilisateurCréation d'un filtre d'abonnement

}

c. Cela crée une stratégie définissant qui a accès en écriture à la destination. Cette stratégie doitspécifier l'action logs:PutSubscriptionFilter pour accéder à la destination. Les utilisateurs entrecomptes emploieront l'action PutSubscriptionFilter pour envoyer des événements de journaux à ladestination :

aws logs put-destination-policy \ --destination-name "testDestination" \ --access-policy file://~/AccessPolicy.json

Cette stratégie d'accès permet à l'utilisateur racine du compte AWS avecID 111111111111 d'appeler PutSubscriptionFilter sur la destination avec l'ARNarn:aws:logs:region:999999999999:destination:testDestination. Toute tentative effectuée par unautre utilisateur d'appeler PutSubscriptionFilter par rapport à cette destination sera rejetée.

Afin de valider les privilèges d'un utilisateur par rapport à une stratégie d'accès, consultezUtilisation du programme de validation de stratégies dans le IAM Guide de l'utilisateur.

Création d'un filtre d'abonnementUne fois que vous avez créé une destination, le compte du destinataire des données de journaux peutpartager l'ARN de destination (arn:aws:logs:us-east-1:999999999999:destination:testDestination) avecd'autres comptes AWS afin qu'ils puissent envoyer des événements de journaux vers la même destination.Les utilisateurs des autres comptes d'expédition créent ensuite un filtre d'abonnement sur leurs groupesde journaux respectifs par rapport à cette destination. Ce filtre d'abonnement lance immédiatementla transmission de données de journaux en temps réel à partir du groupe de journaux choisi vers ladestination spécifiée.

Dans l'exemple suivant, un filtre d'abonnement est créé dans le compte d'envoi. Le filtre est associé à ungroupe de journaux contenant des événements AWS CloudTrail afin que toutes les activités enregistrées,effectuées par les informations d'identification AWS « Root » soient fournies à la destination que vousavez préalablement créée. Cette destination encapsule un flux Kinesis appelé « RecipientStream ».Pour plus d'informations sur l'envoi d'événements AWS CloudTrail à CloudWatch Logs, consultez Envoid'événements CloudTrail à CloudWatch Logs dans le AWS CloudTrail User Guide.

aws logs put-subscription-filter \ --log-group-name "CloudTrail" \ --filter-name "RecipientStream" \ --filter-pattern "{$.userIdentity.type = Root}" \ --destination-arn "arn:aws:logs:region:999999999999:destination:testDestination" --role-arn "arn:aws:iam::123456789012:role/my-subscription-role"

Le groupe de journaux et la destination doivent se trouver dans la même région AWS. Par contre, ladestination peut pointer vers une ressource AWS, comme un flux Kinesis, qui est située dans une autrerégion.

Note

Contrairement à l'exemple d'abonnements Traitement en temps réel des données de journauxavec les abonnements (p. 86), dans cet exemple, vous n'avez pas à fournir de role-arn. C'estparce que role-arn est nécessaire pour la personnification lors de l'écriture dans un flux Kinesis, cequi a déjà été fourni par le propriétaire de la destination pendant la création de cette dernière.

102

Amazon CloudWatch Logs Guide de l'utilisateurValidation du flux des événements de journaux

Validation du flux des événements de journauxUne fois que vous créez le filtre d'abonnement, CloudWatch Logs transmet tous les événements dejournaux entrants qui correspondent au modèle de filtre vers le flux Kinesis qui est encapsulé dans le fluxde destination appelé RecipientStream. Le propriétaire de la destination peut vérifier le déroulement desopérations au moyen de la commande aws kinesis get-shard-iterator pour saisir une partition Kinesis, et aumoyen de la commande aws kinesis get-records pour extraire certains enregistrements Kinesis :

aws kinesis get-shard-iterator \ --stream-name RecipientStream \ --shard-id shardId-000000000000 \ --shard-iterator-type TRIM_HORIZON

{ "ShardIterator": "AAAAAAAAAAFGU/kLvNggvndHq2UIFOw5PZc6F01s3e3afsSscRM70JSbjIefg2ub07nk1y6CDxYR1UoGHJNP4m4NFUetzfL+wev+e2P4djJg4L9wmXKvQYoE+rMUiFq+p4Cn3IgvqOb5dRA0yybNdRcdzvnC35KQANoHzzahKdRGb9v4scv+3vaq+f+OIK8zM5My8ID+g6rMo7UKWeI4+IWiKEXAMPLE"}

aws kinesis get-records \ --limit 10 \ --shard-iterator "AAAAAAAAAAFGU/kLvNggvndHq2UIFOw5PZc6F01s3e3afsSscRM70JSbjIefg2ub07nk1y6CDxYR1UoGHJNP4m4NFUetzfL+wev+e2P4djJg4L9wmXKvQYoE+rMUiFq+p4Cn3IgvqOb5dRA0yybNdRcdzvnC35KQANoHzzahKdRGb9v4scv+3vaq+f+OIK8zM5My8ID+g6rMo7UKWeI4+IWiKEXAMPLE"

Note

Vous devrez peut-être exécuter plusieurs fois la commande get-records avant qu'Kinesis necommence à renvoyer des données.

Vous devriez voir une réponse comportant un tableau d'enregistrements Kinesis. L'attribut de données del'enregistrement Kinesis est compressé au format gzip, puis codé en Base64. Vous pouvez examiner lesdonnées brutes à partir de la ligne de commande au moyen de la commande Unix suivante :

echo -n "<Content of Data>" | base64 -d | zcat

Les données Base64 décodées et décompressées sont formatées au format JSON avec la structuresuivante :

{ "owner": "111111111111", "logGroup": "CloudTrail", "logStream": "111111111111_CloudTrail_us-east-1", "subscriptionFilters": [ "RecipientStream" ], "messageType": "DATA_MESSAGE", "logEvents": [ { "id": "3195310660696698337880902507980421114328961542429EXAMPLE", "timestamp": 1432826855000, "message": "{\"eventVersion\":\"1.03\",\"userIdentity\":{\"type\":\"Root\"}" }, { "id": "3195310660696698337880902507980421114328961542429EXAMPLE", "timestamp": 1432826855000,

103

Amazon CloudWatch Logs Guide de l'utilisateurModification de l'adhésion à la

destination au moment de l'exécution

"message": "{\"eventVersion\":\"1.03\",\"userIdentity\":{\"type\":\"Root\"}" }, { "id": "3195310660696698337880902507980421114328961542429EXAMPLE", "timestamp": 1432826855000, "message": "{\"eventVersion\":\"1.03\",\"userIdentity\":{\"type\":\"Root\"}" } ]}

Les éléments clés de cette structure de données sont les suivants :

owner

L'ID de compte AWS des données de journaux source.logGroup

Le nom du groupe de journaux des données de journaux source.logStream

Le nom du flux de journaux des données de journaux source.subscriptionFilters

La liste des noms de filtres d'abonnements qui correspondaient aux données de journaux source.messageType

Les données de messages utiliseront le type « DATA_MESSAGE ». CloudWatch Logs peut parfoisémettre des enregistrements Kinesis de type « CONTROL_MESSAGE », principalement pour vérifier sila destination est accessible.

logEvents

Les données de journaux réelles, représentées sous la forme d'un tableau d'enregistrementsd'événements de journaux. La propriété ID est un identifiant unique pour chaque événement dejournal.

Modification de l'adhésion à la destination au momentde l'exécutionVous pouvez rencontrer des situations où vous devez ajouter ou supprimer l'adhésion de certainsutilisateurs pour l'une de vos destinations. Vous pouvez utiliser l'action PutDestinationPolicy sur votredestination avec la nouvelle stratégie d'accès. Dans l'exemple suivant, un compte précédemment ajouté111111111111 est écarté de l'envoi de données de journaux supplémentaires, et le compte 222222222222est activé.

1. Recherchez la stratégie qui est actuellement associée à la destination testDestination et notez leparamètre AccessPolicy :

aws logs describe-destinations \ --destination-name-prefix "testDestination"

{ "Destinations": [ { "DestinationName": "testDestination", "RoleArn": "arn:aws:iam::123456789012:role/CWLtoKinesisRole", "DestinationArn": "arn:aws:logs:region:123456789012:destination:testDestination", "TargetArn": "arn:aws:kinesis:region:123456789012:stream/RecipientStream",

104

Amazon CloudWatch Logs Guide de l'utilisateurModification de l'adhésion à la

destination au moment de l'exécution

"AccessPolicy": "{\"Version\": \"2012-10-17\", \"Statement\": [{\"Sid\": \"\", \"Effect\": \"Allow\", \"Principal\": {\"AWS\": \"111111111111\"}, \"Action\": \"logs:PutSubscriptionFilter\", \"Resource\": \"arn:aws:logs:region:123456789012:destination:testDestination\"}] }" } ]}

2. Mettez à jour la stratégie de façon à refléter l'arrêt du compte 111111111111 et l'activation du compte222222222222. Placez cette stratégie dans le fichier ~/NewAccessPolicy.json :

{ "Version" : "2012-10-17", "Statement" : [ { "Sid" : "", "Effect" : "Allow", "Principal" : { "AWS" : "222222222222" }, "Action" : "logs:PutSubscriptionFilter", "Resource" : "arn:aws:logs:region:123456789012:destination:testDestination" } ]}

3. Appelez PutDestinationPolicy pour associer la stratégie définie dans le fichier NewAccessPolicy.json àla destination :

aws logs put-destination-policy \--destination-name "testDestination" \--access-policy file://~/NewAccessPolicy.json

Cela finira par désactiver les événements de journaux à partir de l'ID de compte 111111111111. Lesévénements de journaux de l'ID de compte 222222222222 commencent à passer à la destinationdès que le propriétaire du compte 222222222222 crée un filtre d'abonnement au moyen dePutSubscriptionFilter.

105

Amazon CloudWatch Logs Guide de l'utilisateur

Envoi de journaux directement àAmazon S3

Certains services AWS peuvent publier leurs journaux directement sur Amazon S3. De cette façon, si votreprincipale exigence par rapport aux journaux est le stockage dans Amazon S3, vous pouvez facilementfaire en sorte que le service produisant les journaux les envoie directement à Amazon S3 sans configurerune infrastructure supplémentaire.

Les journaux publiés sur Amazon S3 le sont dans un compartiment existant que vous spécifiez. Un ouplusieurs fichiers journaux sont créés toutes les cinq minutes dans le compartiment spécifié.

Même lorsque les journaux sont publiés directement dans un compartiment S3, les frais CloudWatch Logss'appliquent. Pour plus d'informations, consultez la section relative à la diffusion de journaux dans S3 dansTarification Amazon CloudWatch.

Les journaux de flux peuvent être publiés directement dans Amazon S3 :

• Journaux de flux VPC. Pour plus d'informations, consultez Publication des journaux de flux dans AmazonS3 dans le Amazon VPC Guide de l'utilisateur.

• Journaux de flux d'AWS Global Accelerator. Pour plus d'informations, consultez Publication de journauxde flux sur Amazon S3 dans le Guide du développeur AWS Global Accelerator.

106

Amazon CloudWatch Logs Guide de l'utilisateurConcepts

Exportation de données de journalvers Amazon S3

Vous pouvez exporter les données des journaux de vos groupes de journaux vers un compartimentAmazon S3 et utilisez ces données pour procéder à une analyse et un traitement personnalisés, ou pourles charger dans d'autres systèmes.

Pour lancer le processus d'exportation, vous devez créer un compartiment S3 pour stocker les donnéesde journal exportées. Vous pouvez enregistrer les fichiers exportés dans votre compartiment Amazon S3et définir des règles du cycle de vie Amazon S3 pour archiver ou supprimer automatiquement les fichiersexportés.

L’exportation vers les compartiments S3 chiffrés avec AES-256 est prise en charge. L’exportation vers lescompartiments S3 chiffrés avec SSE-KMS n'est pas prise en charge. Pour plus d'informations, consultezComment activer le chiffrement par défaut pour un compartiment S3 ?.

Vous pouvez exporter les journaux de plusieurs groupes de journaux ou de plusieurs plages de temps dansle même compartiment S3. Pour séparer les données de journal pour chaque tâche d'exportation, vouspouvez spécifier un préfixe qui sera utilisé comme préfixe de clé Amazon S3 pour tous les objets exportés.

Un délai de 12 h peut s'avérer nécessaire pour que les données des journaux deviennent disponibles pourl'exportation. Pour procéder à une analyse quasiment en temps réel des données des journaux, consultezplutôt Analyse des données de journal avec CloudWatch Logs Insights (p. 35) ou Traitement en temps réeldes données de journaux avec les abonnements (p. 86).

Note

À partir du 15 février 2019, la fonctionnalité d'exportation à Amazon S3 nécessitera desmandataires pour disposer d'un accès s3:PutObject au compartiment de destination.

Sommaire• Concepts (p. 107)• Exportation de données de journal vers Amazon S3 à l'aide de la console (p. 108)• Exportation des données de journal vers Amazon S3 à l'aide de l'AWS CLI (p. 111)

ConceptsAvant de commencer, familiarisez-vous avec les concepts d'exportation suivants :

nom du groupe de journaux

Nom du groupe de journaux associé à une tâche d'exportation. Les données dans ce groupe dejournaux seront exportées dans le compartiment Amazon S3 spécifié.

de (horodatage)

Horodatage requis (en nombre de millisecondes) depuis le 1er janvier 1970 00:00:00 UTC. Tous lesévénements de journaux du groupe de journaux consignés après cette heure seront exportés.

à (horodatage)

Horodatage requis (en nombre de millisecondes) depuis le 1er janvier 1970 00:00:00 UTC. Tous lesévénements de journal du groupe de journaux consignés avant cette heure seront exportés.

107

Amazon CloudWatch Logs Guide de l'utilisateurExportation de données de journal

vers Amazon S3 à l'aide de la console

compartiment de destination

Nom du compartiment Amazon S3 associé à une tâche d'exportation. Ce compartiment est utilisé pourexporter les données de journaux du groupe de journaux spécifié.

préfixe de destination

Attribut facultatif utilisé comme préfixe de clé S3 pour tous les objets exportés. Cela permet de créerune organisation de type dossier dans votre compartiment.

Exportation de données de journal vers Amazon S3à l'aide de la console

Dans l'exemple suivant, vous allez utiliser la console Amazon CloudWatch pour exporter toutesles données d'un groupe de journaux Amazon CloudWatch Logs nommé my-log-group vers uncompartiment Amazon S3 nommé my-exported-logs.

Étape 1 : Créer un compartiment Amazon S3Nous vous recommandons d'utiliser un compartiment qui a été créé spécifiquement pour CloudWatch Logs.Cependant, si vous souhaitez utiliser un compartiment existant, vous pouvez passer à l'étape 2.

Note

Le compartiment Amazon S3 doit résider dans la même région que les données de journalà exporter. CloudWatch Logs ne prend pas en charge l'exportation de données vers lescompartiments Amazon S3 d'une autre région.

Pour créer un compartiment Amazon S3

1. Ouvrez la console Amazon S3 à l'adresse https://console.aws.amazon.com/s3/.2. Si nécessaire, changez la région. Dans la barre de navigation, choisissez la région où résident vos

données CloudWatch Logs.3. Choisissez Créer un compartiment.4. Dans Bucket Name (Nom de compartiment), attribuez un nom au compartiment.5. Pour Region (Région), sélectionnez la région où résident vos données CloudWatch Logs.6. Sélectionnez Create (Créer).

Étape 2 : Créer un utilisateur IAM avec l'accès completà Amazon S3 et CloudWatch LogsDans la procédure suivante, vous créez l'utilisateur IAM avec les autorisations nécessaires.

Pour créer l'utilisateur IAM nécessaire

1. Ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/.2. Choisissez Utilisateurs, Ajouter des utilisateurs.3. Saisissez un nom d'utilisateur, par exemple CWLExportUser.4. Sélectionnez Programmatic access (Accès programmatique) et AWS Management Console access

(Accès à la AWS Management Console).5. Choisissez Autogenerated password (Mot de passe généré automatiquement) ou Custom password

(Mot de passe personnalisé).

108

Amazon CloudWatch Logs Guide de l'utilisateurÉtape 3 : Définir les autorisationssur un compartiment Amazon S3

6. Choisissez Next: Permissions (Suivant : Autorisations).7. Choisissez Attach existing policies directly (Attacher directement les stratégies existantes) et attachez

les stratégies CloudWatchLogsFullAccess et AmazonS3FullAccess à l'utilisateur. Vous pouvezutiliser le champ de recherche pour trouver les stratégies.

8. Choisissez Suivant : Balises, Suivant : Vérification, puis Créer un utilisateur.

Étape 3 : Définir les autorisations sur un compartimentAmazon S3Par défaut, tous les objets et les compartiments Amazon S3 sont privés. Seul le propriétaire de laressource, le compte AWS ayant créé le compartiment, peut accéder au compartiment et aux objetsqu'il contient. Le propriétaire de la ressource peut toutefois accorder des autorisations d'accès à d'autresressources et à d'autres utilisateurs en créant une stratégie d'accès.

Lorsque vous définissez la stratégie, nous vous recommandons d'inclure une chaîne générée de façonaléatoire comme préfixe pour le compartiment, afin que seuls les flux de journaux prévus soient exportésvers le compartiment.

Pour définir des autorisations sur un compartiment Amazon S3

1. Dans la console Amazon S3, choisissez le compartiment que vous avez créé à l'étape 1.2. Choisissez Permissions, Bucket policy.3. Ajoutez une des stratégies suivantes dans la fenêtre Bucket Policy Editor (Éditeur de stratégie de

compartiment) : Modifiez my-exported-logs au nom de votre compartiment S3 et random-stringà une chaîne de caractères générée aléatoirement. Assurez-vous de spécifier le point de terminaisonde région correct pour Principal.

• Si le compartiment est dans votre compte, ajoutez la stratégie suivante.

{ "Version": "2012-10-17", "Statement": [ { "Action": "s3:GetBucketAcl", "Effect": "Allow", "Resource": "arn:aws:s3:::my-exported-logs", "Principal": { "Service": "logs.us-west-2.amazonaws.com" } }, { "Action": "s3:PutObject" , "Effect": "Allow", "Resource": "arn:aws:s3:::my-exported-logs/random-string/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } }, "Principal": { "Service": "logs.us-west-2.amazonaws.com" } } ]}

• Si le compartiment est dans un compte différent, utilisez plutôt la stratégie suivante. Il inclut unedéclaration supplémentaire qui emploie l'utilisateur IAM que vous avez créé à l'étape précédente.

{ "Version": "2012-10-17", "Statement": [ { "Action": "s3:GetBucketAcl",

109

Amazon CloudWatch Logs Guide de l'utilisateurÉtape 4 : Créer une tâche d'exportation

"Effect": "Allow", "Resource": "arn:aws:s3:::my-exported-logs", "Principal": { "Service": "logs.us-west-2.amazonaws.com" } }, { "Action": "s3:PutObject" , "Effect": "Allow", "Resource": "arn:aws:s3:::my-exported-logs/random-string/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } }, "Principal": { "Service": "logs.us-west-2.amazonaws.com" } }, { "Action": "s3:PutObject" , "Effect": "Allow", "Resource": "arn:aws:s3:::my-exported-logs/random-string/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } }, "Principal": { "AWS": "arn:aws:iam::SendingAccountID:user/CWLExportUser" } } ]}

4. Choisissez Save pour définir la stratégie que vous venez d'ajouter en tant que stratégie d'accès à votrecompartiment. Cette stratégie permet à CloudWatch Logs d'exporter les données des journaux versvotre compartiment Amazon S3. Le propriétaire du compartiment dispose des autorisations d'accèscomplet à tous les objets exportés.

Warning

Si le compartiment existant dispose déjà d'une ou plusieurs stratégies qui lui sont attachées,ajoutez les instructions pour qu'CloudWatch Logs y accède. Nous vous recommandonsd'évaluer le jeu d'autorisations obtenu pour vérifier son adéquation pour les utilisateursappelés à accéder au compartiment.

Étape 4 : Créer une tâche d'exportationDans cette étape, vous créez la tâche d'exportation pour exporter des journaux d'un groupe de journaux.

Pour exporter les données vers Amazon S3 à l'aide de la console CloudWatch

1. Connectez-vous en tant qu'utilisateur IAM que vous avez créé à l'Étape 2 : Créer un utilisateur IAMavec l'accès complet à Amazon S3 et CloudWatch Logs.

2. Ouvrez la console CloudWatch à l'adresse https://console.aws.amazon.com/cloudwatch/.3. Dans le volet de navigation, sélectionnez Groupes de journaux.4. Dans l'écran Log Groups (Groupes de journaux), sélectionnez le bouton à côté d'un groupe de

journaux, puis choisissez Actions, Export data to Amazon S3 (Exporter les données vers S3).5. Dans l'écran Export data toAmazon S3, sous Define data to export, définissez la plage de temps pour

les données à exporter à l'aide des champs From et To.6. Si votre groupe de journaux a plusieurs flux de journal, vous pouvez indiquer un préfixe de flux de

journal pour limiter les données du groupe de journaux à un flux spécifique. Choisissez Advanced(Avancé), puis indiquez le préfixe de flux de journal dans Stream prefix (Préfixe de flux).

7. Sous Choose S3 bucket, choisissez le compte associé au compartiment Amazon S3.8. Pour S3 bucket name, choisissez un compartiment Amazon S3.9. Choisissez Advanced (Avancé), puis pour S3 Bucket prefix (Préfixe de compartiment S3), indiquez la

chaîne générée de façon aléatoire que vous avez spécifiée dans la stratégie de compartiment.10. Choisissez Export data pour exporter les données de journal vers Amazon S3.

110

Amazon CloudWatch Logs Guide de l'utilisateurExportation des données de journal

vers Amazon S3 à l'aide de l'AWS CLI

11. Pour afficher l'état des données de journal que vous avez exportées vers Amazon S3, choisissezActions, puis View all exports to Amazon S3 (Afficher tous les exports vers S3).

Exportation des données de journal vers AmazonS3 à l'aide de l'AWS CLI

Dans l'exemple suivant, vous utilisez une tâche d'exportation pour exporter toutes les données d'un groupede journaux CloudWatch Logs nommé my-log-group vers un compartiment Amazon S3 nommé my-exported-logs. Cet exemple suppose que vous avez déjà créé un groupe de journaux appelé my-log-group.

Étape 1 : Créer un compartiment Amazon S3Nous vous recommandons d'utiliser un compartiment qui a été créé spécifiquement pour CloudWatch Logs.Cependant, si vous souhaitez utiliser un compartiment existant, vous pouvez passer à l'étape 2.

Note

Le compartiment Amazon S3 doit résider dans la même région que les données de journalà exporter. CloudWatch Logs ne prend pas en charge l'exportation de données vers lescompartiments Amazon S3 d'une autre région.

Pour créer un compartiment Amazon S3 à l'aide de l'AWS CLI

À partir d'une invite de commande, exécutez la commande create-bucket suivante, oùLocationConstraint correspond à la région dans laquelle vous exportez les données de journal.

aws s3api create-bucket --bucket my-exported-logs --create-bucket-configuration LocationConstraint=us-east-2

Voici un exemple de sortie.

{ "Location": "/my-exported-logs"}

Étape 2 : Créer un utilisateur IAM avec l'accès completà Amazon S3 et CloudWatch LogsDans la procédure suivante, vous créez l'utilisateur IAM avec les autorisations nécessaires.

Pour créer l'utilisateur et lui attribuer des autorisations

1. Créez l'utilisateur IAM en saisissant la commande suivante.

aws iam create-user --user-name CWLExportUser

2. Attachez les stratégies gérées IAM à l'utilisateur IAM que vous venez de créer.

export S3POLICYARN=$(aws iam list-policies --query 'Policies[?PolicyName==`AmazonS3FullAccess`].{ARN:Arn}' --output text)

111

Amazon CloudWatch Logs Guide de l'utilisateurÉtape 3 : Définir les autorisationssur un compartiment Amazon S3

export CWLPOLICYARN=$( aws iam list-policies --query 'Policies[?PolicyName==`CloudWatchLogsFullAccess`].{ARN:Arn}' --output text)

aws iam attach-user-policy --user-name CWLExportUser --policy-arn $S3POLICYARN

aws iam attach-user-policy --user-name CWLExportUser --policy-arn $CWLPOLICYARN

3. Confirmez que les deux stratégies gérées sont attachées.

aws iam list-attached-user-policies --user-name CWLExportUser

4. Configurez votre AWS CLI pour inclure les informations d'identification IAM de l'utilisateur IAMCWLExportUser. Pour plus d'informations, consultez Configuration de l'AWS CLI.

Étape 3 : Définir les autorisations sur un compartimentAmazon S3Par défaut, tous les objets et les compartiments Amazon S3 sont privés. Seul le propriétaire de laressource, le compte ayant créé le compartiment, peut accéder au compartiment et aux objets qu'ilcontient. Le propriétaire de la ressource peut toutefois accorder des autorisations d'accès à d'autresressources et à d'autres utilisateurs en créant une stratégie d'accès.

Pour définir des autorisations sur un compartiment Amazon S3

1. Créez un fichier sous le nom policy.json et ajoutez la stratégie d'accès suivante, en affectant àResource le nom de votre compartiment S3 et à Principal le point de terminaison de la régiondans laquelle vous exportez les données de journal. Utilisez un éditeur de texte créer ce fichier destratégie. N'utilisez pas la console IAM.

• Si le compartiment est dans votre compte, utilisez la stratégie suivante.

{ "Version": "2012-10-17", "Statement": [ { "Action": "s3:GetBucketAcl", "Effect": "Allow", "Resource": "arn:aws:s3:::my-exported-logs", "Principal": { "Service": "logs.us-west-2.amazonaws.com" } }, { "Action": "s3:PutObject" , "Effect": "Allow", "Resource": "arn:aws:s3:::my-exported-logs/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } }, "Principal": { "Service": "logs.us-west-2.amazonaws.com" } } ]}

• Si le compartiment est dans un compte différent, utilisez plutôt la stratégie suivante. Il inclut unedéclaration supplémentaire qui emploie l'utilisateur IAM que vous avez créé à l'étape précédente.

{

112

Amazon CloudWatch Logs Guide de l'utilisateurÉtape 3 : Définir les autorisationssur un compartiment Amazon S3

"Version": "2012-10-17", "Statement": [ { "Action": "s3:GetBucketAcl", "Effect": "Allow", "Resource": "arn:aws:s3:::my-exported-logs", "Principal": { "Service": "logs.us-west-2.amazonaws.com" } }, { "Action": "s3:PutObject" , "Effect": "Allow", "Resource": "arn:aws:s3:::my-exported-logs/random-string/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } }, "Principal": { "Service": "logs.us-west-2.amazonaws.com" } }, { "Action": "s3:PutObject" , "Effect": "Allow", "Resource": "arn:aws:s3:::my-exported-logs/random-string/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } }, "Principal": { "AWS": "arn:aws:iam::SendingAccountID:user/CWLExportUser" } } ]}

• Si le compartiment est dans un autre compte et que vous utilisez un rôle IAM au lieu d'un utilisateurIAM, utilisez plutôt la stratégie suivante.

{ "Version": "2012-10-17", "Statement": [ { "Action": "s3:GetBucketAcl", "Effect": "Allow", "Resource": "arn:aws:s3:::my-exported-logs", "Principal": { "Service": "logs.us-west-2.amazonaws.com" } }, { "Action": "s3:PutObject" , "Effect": "Allow", "Resource": "arn:aws:s3:::my-exported-logs/random-string/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } }, "Principal": { "Service": "logs.us-west-2.amazonaws.com" } }, { "Action": "s3:PutObject" , "Effect": "Allow", "Resource": "arn:aws:s3:::my-exported-logs/random-string/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } }, "Principal": { "AWS": "arn:aws:iam::SendingAccountID:role/CWLExportUser" } } ]}

2. Définissez la stratégie que vous venez d'ajouter en tant que stratégie d'accès à votre compartimentà l'aide de la commande put-bucket-policy. Cette stratégie permet à CloudWatch Logs d'exporter lesdonnées des journaux vers votre compartiment Amazon S3. Le propriétaire du compartiment disposerades autorisations d'accès complet à tous les objets exportés.

113

Amazon CloudWatch Logs Guide de l'utilisateurÉtape 4 : Créer une tâche d'exportation

aws s3api put-bucket-policy --bucket my-exported-logs --policy file://policy.json

Warning

Si le compartiment existant dispose déjà d'une ou plusieurs stratégies qui lui sont attachées,ajoutez les instructions pour qu'CloudWatch Logs y accède. Nous vous recommandonsd'évaluer le jeu d'autorisations obtenu pour vérifier son adéquation pour les utilisateursappelés à accéder au compartiment.

Étape 4 : Créer une tâche d'exportationDès lors que vous avez créé la tâche d'exportation en vue d'exporter les journaux d'un groupe de journaux,la durée de la tâche d'exportation peut varier de quelques secondes à plusieurs heures, selon la taille desdonnées à exporter.

Pour créer une tâche d'exportation à l'aide de l'AWS CLI

À partir d'une invite de commande, utilisez la commande create-export-task suivante pour créer la tâched'exportation.

aws logs create-export-task --profile CWLExportUser --task-name "my-log-group-09-10-2015" --log-group-name "my-log-group" --from 1441490400000 --to 1441494000000 --destination "my-exported-logs" --destination-prefix "export-task-output"

Voici un exemple de sortie.

{ "taskId": "cda45419-90ea-4db5-9833-aade86253e66"}

Étape 5 : Décrire les tâches d'exportationUne fois que vous avez créé une tâche d'exportation, vous pouvez en obtenir le statut actuel.

Pour décrire les tâches d'exportation à l'aide de l'AWS CLI

À partir d'une invite de commande, utilisez la commande describe-export-tasks suivante.

aws logs --profile CWLExportUser describe-export-tasks --task-id "cda45419-90ea-4db5-9833-aade86253e66"

Voici un exemple de sortie.

{ "exportTasks": [ { "destination": "my-exported-logs", "destinationPrefix": "export-task-output", "executionInfo": { "creationTime": 1441495400000 }, "from": 1441490400000, "logGroupName": "my-log-group", "status": {

114

Amazon CloudWatch Logs Guide de l'utilisateurÉtape 6 : Annuler une tâche d'exportation

"code": "RUNNING", "message": "Started Successfully" }, "taskId": "cda45419-90ea-4db5-9833-aade86253e66", "taskName": "my-log-group-09-10-2015", "tTo": 1441494000000 }]}

Vous pouvez utiliser la commande describe-export-tasks de trois façons :

• Sans filtres : répertorie toutes vos tâches d'exportation, dans l'ordre inverse de leur création.• Filtrer en fonction de l'ID de la tâche : affiche la tâche d'exportation correspondant à l'ID spécifié, s'il

existe.• Filtre en fonction du statut de la tâche : répertorie les tâches d'exportation correspondant au statut

spécifié.

Par exemple, utilisez la commande suivante pour filtrer sur le statut FAILED.

aws logs --profile CWLExportUser describe-export-tasks --status-code "FAILED"

Voici un exemple de sortie.

{ "exportTasks": [ { "destination": "my-exported-logs", "destinationPrefix": "export-task-output", "executionInfo": { "completionTime": 1441498600000 "creationTime": 1441495400000 }, "from": 1441490400000, "logGroupName": "my-log-group", "status": { "code": "FAILED", "message": "FAILED" }, "taskId": "cda45419-90ea-4db5-9833-aade86253e66", "taskName": "my-log-group-09-10-2015", "to": 1441494000000 }]}

Étape 6 : Annuler une tâche d'exportationVous pouvez annuler une tâche d'exportation dont l'état est PENDING ou RUNNING.

Pour annuler une tâche d'exportation à l'aide de l'AWS CLI

À partir d'une invite de commande, utilisez la commande cancel-export-task suivante :

aws logs --profile CWLExportUser cancel-export-task --task-id "cda45419-90ea-4db5-9833-aade86253e66"

Vous pouvez utiliser la commande describe-export-tasks pour vérifier que la tâche a bien été annulée.

115

Amazon CloudWatch Logs Guide de l'utilisateurPrérequis

Diffusion de données CloudWatchLogs vers Amazon ElasticsearchService

Vous pouvez configurer un groupe de journaux CloudWatch Logs pour diffuser en continu les donnéesreçues sur votre cluster Amazon Elasticsearch Service (Amazon ES) quasiment en temps réel via unabonnement CloudWatch Logs. Pour plus d'informations, consultez Traitement en temps réel des donnéesde journaux avec les abonnements (p. 86).

En fonction de la quantité de données de journal, il se peut que vous souhaitiez définir sur la fonction unelimite des exécutions simultanées au niveau de la fonction. Pour plus d'informations, consultez Limite desexécutions simultanées au niveau de la fonction.

Note

La diffusion en continu de grandes quantités de données CloudWatch Logs vers Amazon ES peutengendrer des frais d'utilisation élevés. Nous vous recommandons de créer un budget dans laconsole Billing and Cost Management. Pour plus d'informations, consultez Gestion des coûts avecles budgets.

PrérequisAvant de commencer, créez un domaine Amazon ES. Le domaine Amazon ES peut avoir un accès publicou un accès VPC, mais vous ne pouvez pas modifier le type d'accès une fois le domaine créé. Vouspourrez éventuellement revoir par la suite vos paramètres de domaine Amazon ES et modifier votreconfiguration de cluster en fonction de la quantité de données traitées par votre cluster.

Pour plus d'informations sur Amazon ES, consultez le Amazon Elasticsearch Service Guide dudéveloppeur.

Pour créer un domaine Amazon ES

À partir d'une invite de commande, utilisez la commande create-elasticsearch-domain suivante :

aws es create-elasticsearch-domain --domain-name my-domain

Souscription d'un groupe de journaux à Amazon ESVous pouvez utiliser la console CloudWatch pour souscrire un groupe de journaux auprès d'Amazon ES.

Pour souscrire un groupe de journaux à Amazon ES

1. Ouvrez la console CloudWatch à l'adresse https://console.aws.amazon.com/cloudwatch/.2. Dans le volet de navigation, sélectionnez Groupes de journaux.3. Sélectionnez le bouton en regard du groupe de journaux auquel vous abonner.

116

Amazon CloudWatch Logs Guide de l'utilisateurSouscription d'un groupe de journaux à Amazon ES

4. Choisissez Actions, Stream to Amazon Elasticsearch Service.5. Dans l'écran Start Streaming toAmazon Elasticsearch Service, pour Amazon ES cluster, choisissez le

cluster que vous avez créé à l'étape précédente, puis choisissez Next.6. Sous Lambda Function, pour Lambda IAM Execution Role, choisissez le rôle IAM que Lambda doit

utiliser pour exécuter les appels à destination d'Amazon ES, puis choisissez Next.

Le rôle IAM que vous choisissez doit répondre à ces exigences :

• Il doit avoir lambda.amazonaws.com dans la relation d'approbation.• Il doit inclure la stratégie suivante :

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "es:*" ], "Effect": "Allow", "Resource": "arn:aws:es:region:account-id:domain/target-domain-name/*" } ]}

• Si le domaine Amazon ES cible utilise un accès VPC, la stratégieAWSLambdaVPCAccessExecutionRole doit être attachée au rôle. Cette stratégie gérée par Amazonaccorde un accès Lambda au VPC du client, ce qui permet à Lambda d'écrire dans le point determinaison Amazon ES du VPC.

7. Dans l'écran Configure Log Format and Filters, pour Log Format, choisissez un format de journal.8. Sous Subscription Filter Pattern, tapez les termes ou le modèle à retrouver dans les événements de

vos journaux. Vous êtes ainsi assuré d'envoyer à votre cluster Amazon ES uniquement les donnéesqui vous intéressent. Pour plus d'informations, consultez Recherche et filtrage des données dejournaux (p. 67).

9. (Facultatif) Sous Select Log Data to Test, sélectionnez un flux de journal, puis cliquez sur Test Patternpour vérifier que votre filtre de recherche retourne les résultats attendus.

10. Choisissez Suivant, puis dans l'écran Vérifier et démarrer le streaming vers Amazon ElasticsearchService, vérifiez vos choix et sélectionnez Suivant. Choisissez ensuite Démarrer le streaming.

117

Amazon CloudWatch Logs Guide de l'utilisateur

Services AWS qui publient desjournaux dans CloudWatch Logs

Les services AWS suivants publient des métriques dans CloudWatch Logs. Pour plus d'informations sur lesjournaux envoyés par ces services, consultez la documentation liée.

Service Documentation

Amazon API Gateway Configuration de la journalisation de l'APICloudWatchdans API Gateway

Amazon Aurora MySQL Publication de journaux Amazon Aurora MySQLdans Amazon CloudWatch Logs

AWS CloudHSM Surveillance des journaux d'audit AWS CloudHSMdans Amazon CloudWatch Logs

AWS CloudTrail Surveillance des fichiers journaux CloudTrail avecAmazon CloudWatch Logs

Amazon Cognito Création du rôle IAM CloudWatch Logs

Amazon Connect Journalisation et surveillance Amazon Connect

AWS DataSync Autoriser DataSync à charger les journaux dans lesgroupes de journaux Amazon CloudWatch

AWS Elastic Beanstalk Utilisation d'un Elastic Beanstalk avec AmazonCloudWatch Logs

Amazon Elastic Container Service Utilisation de CloudWatch Logs avec les instancesde conteneur

Amazon Elastic Kubernetes Service Journalisation de plan de contrôle Amazon AmazonElastic Kubernetes Service

AWS Fargate Utilisation du pilote du journal awslogs

AWS Glue Journalisation continue des tâches AWS Glue

AWS IoT Surveillance avec CloudWatch Logs

AWS Lambda Accès à Amazon CloudWatch Logs pour AWSLambda

Amazon MQ Configuration d’Amazon MQ afin de publier lesjournaux de type général et audit dans AmazonCloudWatch Logs

AWS OpsWorks Utilisation d'Amazon CloudWatch Logs avec despiles AWS OpsWorks

Amazon Relational Database Service Publication de journaux PostgreSQL dansCloudWatch Logs

118

Amazon CloudWatch Logs Guide de l'utilisateur

Service Documentation

AWS RoboMaker Noeuds CloudWatch ROS d’AWS RoboMaker avecprise en charge hors connexion

Amazon Route 53 Journalisation et surveillance dans Amazon Route53

Amazon SageMaker Journalisation d'événements AmazonSageMakeravec Amazon CloudWatch

Amazon Simple Notification Service Affichage de CloudWatch Logs

Amazon VPC Journaux de flux VPC

119

Amazon CloudWatch Logs Guide de l'utilisateurProtection des données

Sécurité dans Amazon CloudWatchLogs

Chez AWS, la sécurité dans le cloud est notre priorité numéro 1. En tant que client AWS, vousbénéficiez d'un centre de données et d'une architecture réseau conçus pour répondre aux exigences desorganisations les plus pointilleuses en termes de sécurité.

La sécurité est une responsabilité partagée entre AWS et vous-même. Le modèle de responsabilitépartagéede décrit ceci comme la sécurité du cloud et la sécurité dans le cloud :

• La sécurité du cloud – AWS est responsable de la protection de l'infrastructure qui exécute des servicesAWS dans le cloud AWS. AWS vous fournit également les services que vous pouvez utiliser en toutesécurité. Des auditeurs tiers testent et vérifient régulièrement l'efficacité de notre sécurité dans lecadre des programmes de conformité AWS. Pour en savoir plus sur les programmes de conformitéqui s'appliquent à Amazon WorkSpaces, consultez Services AWS concernés par le programme deconformité.

• Sécurité dans le cloud – Votre responsabilité est déterminée par le service AWS que vous utilisez. Vousêtes également responsable d'autres facteurs, y compris la sensibilité de vos données, les exigences devotre entreprise,et la législation et la réglementation applicables.

Cette documentation vous aide à comprendre comment appliquer le modèle de responsabilité partagéelors de l'utilisation d'Amazon CloudWatch Logs. Elle vous montre comment configurer Amazon CloudWatchLogs pour atteindre vos objectifs en matière de sécurité et de conformité. Vous pouvez égalementapprendre à utiliser d'autres services AWS qui vous aident à surveiller et sécuriser vos ressourcesCloudWatch Logs.

Table des matières• Protection des données dans Amazon CloudWatch Logs (p. 120)• Gestion des identités et des accès pour Amazon CloudWatch Logs (p. 121)• Validation de la conformité pour Amazon CloudWatch Logs (p. 135)• Résilience dans Amazon CloudWatch Logs (p. 135)• Sécurité de l'infrastructure dans Amazon CloudWatch Logs (p. 135)• Utilisation de CloudWatch Logs avec les points de terminaison de VPC d'interface (p. 136)

Protection des données dans Amazon CloudWatchLogs

Amazon CloudWatch Logs se conforme au modèle de responsabilité partagée AWS, qui inclut desdirectives et des régulations pour la protection des données. AWS est responsable de la protectionde l'infrastructure globale qui exécute tous les services AWS. AWS conserve le contrôle des donnéeshébergées sur cette infrastructure, y compris les contrôles de configuration de sécurité pour traiter lecontenu et les données personnelles des clients. Les clients AWS et les partenaires d'APN, qu'ils agissenten tant que contrôleurs ou responsables du traitement des données, sont responsables de toutes lesdonnées personnelles qu'ils mettent sur le cloud AWS.

120

Amazon CloudWatch Logs Guide de l'utilisateurChiffrement au repos

Pour des raisons de protection des données, nous vous recommandons de protéger vos identifiantsde compte AWS et de configurer des comptes utilisateurs individuels avec AWS Identity and AccessManagement (IAM), afin que chaque utilisateur reçoive uniquement les permissions nécessaires pouraccomplir ses tâches. Nous vous recommandons également de sécuriser vos données comme indiqué ci-dessous :

• Utilisez l'authentification multi-facteurs (MFA) avec chaque compte.• Utilisez TLS pour communiquer avec des ressources AWS.• Configurez l'API et la consignation des activités utilisateur avec AWS CloudTrail.• Utilisez des solutions de chiffrement AWS, ainsi que tous les contrôles de sécurité par défaut au sein des

services AWS.• Utilisez des services de sécurité gérés comme Amazon Macie, qui contribue à la découverte et à la

sécurisation des données personnelles stockées dans Amazon S3.

Nous vous recommandons vivement de ne jamais placer d'informations identifiables sensibles, telles queles numéros de compte de vos clients, dans des champs de formulaire ou des métadonnées comme lesnoms de fonction et les balises. Toutes les données que vous entrez dans les métadonnées peuvent êtrerécupérées pour être insérées dans les journaux de diagnostic. Lorsque vous fournissez une URL à unserveur externe, n'incluez pas les informations d'identification non chiffrées dans l'URL pour valider votredemande adressée au serveur.

Pour en savoir plus sur la protection des données, consultez le billet de blog Modèle de responsabilitépartagée AWS et RGPD sur le Blog sur la sécurité d’AWS.

Chiffrement au reposCloudWatch Logs protège les données au repos à l'aide du chiffrement. Le service CloudWatch Logs gèreles clés de chiffrement côté serveur.

Pour gérer les clés utilisées pour chiffrer et déchiffrer vos journaux, utilisez les clés principales client (CMK)à partir de AWS Key Management Service. Pour plus d’informations, consultez Chiffrement des donnéesde journal dans CloudWatch Logs avec AWS KMS (p. 62).

Chiffrement en transitCloudWatch Logs utilise le chiffrement de bout en bout des données en transit. Le service CloudWatchLogs gère les clés de chiffrement côté serveur.

Gestion des identités et des accès pour AmazonCloudWatch Logs

L'accès à Amazon CloudWatch Logs requiert des informations d'identification qu'AWS peut utiliser pourauthentifier vos demandes. Ces informations d'identification doivent avoir des autorisations d'accès auxressources AWS, comme par exemple pour extraire les données CloudWatch Logs sur vos ressources duCloud. Les sections suivantes fournissent des détails sur la façon dont vous pouvez utiliser AWS Identityand Access Management (IAM) et CloudWatch Logs pour sécuriser vos ressources en contrôlant qui peut yaccéder :

• Authentification (p. 122)• Contrôle d'accès (p. 123)

121

Amazon CloudWatch Logs Guide de l'utilisateurAuthentification

AuthentificationVous pouvez utiliser les types d'identité suivants pour accéder à AWS :

• Utilisateur racine du compte AWS – Lorsque vous vous inscrivez à AWS, vous fournissez une adressede messagerie et un mot de passe qui sont associés à votre compte AWS. Il s'agit de vos informationsd'identification racine et elles fournissent un accès complet à l'ensemble de vos ressources AWS.

Important

Pour des raisons de sécurité, nous vous conseillons d'utiliser les informations d'identificationracine uniquement pour créer un utilisateur administrateur, qui est un utilisateur IAM disposantdes autorisations complètes sur votre compte AWS. Vous pouvez ensuite utiliser cet utilisateuradministrateur pour créer d'autres rôles et utilisateurs IAM dotés d'autorisations limitées. Pourplus d'informations, consultez Bonnes pratiques IAM et Création d'un utilisateur et groupeadministrateur dans le IAM Guide de l'utilisateur.

• Utilisateur IAM – Un utilisateur IAM est simplement une identité au sein de votre compte AWS quidispose d'autorisations personnalisées spécifiques (par exemple, des autorisations pour afficher lesmétriques dans CloudWatch Logs). Vous pouvez utiliser un nom d'utilisateur IAM et un mot de passepour vous connecter aux pages web AWS sécurisées telles que AWS Management Console, aux forumsde discussion AWS ou au AWS Support Center.

 

En plus d'un nom d'utilisateur et d'un mot de passe, vous pouvez générer des clés d'accès pour chaqueutilisateur. Vous pouvez utiliser ces clés lorsque vous accédez aux services AWS par programmation,que ce soit par le biais d'un kit SDK ou de l'AWS Command Line Interface (AWS CLI). Les outilsde l'interface de ligne de commande et les kits SDK utilisent les clés d'accès pour signer de façoncryptographique votre demande. Si vous n'utilisez pas les outils AWS, vous devez signer la demandevous-même. CloudWatch Logs supports Signature Version 4, protocole permettant l'authentificationdes demandes d'API entrantes. Pour plus d'informations sur l'authentification des demandes, consultezProcessus de signature Signature Version 4 dans le document AWS General Reference.

 • Rôle IAM – Un rôle IAM est une autre identité IAM que vous pouvez créer dans votre compte et qui

dispose d'autorisations spécifiques. Le concept ressemble à celui d'un utilisateur IAM, mais ce rôlen'est pas associé à une personne en particulier. Un rôle IAM vous permet d'obtenir des clés d'accèstemporaires que vous pouvez utiliser pour accéder aux ressources et services AWS. Les rôles IAM avecdes informations d'identification temporaires sont utiles dans les cas suivants :

 • Accès par des utilisateurs fédérés – Au lieu de créer un utilisateur IAM, vous pouvez utiliser des

identités d'utilisateur préexistantes provenant de AWS Directory Service, de votre répertoire utilisateurd'entreprise ou d'un fournisseur d'identité web. Ces derniers sont appelés utilisateurs fédérés. AWSattribue un rôle à un utilisateur fédéré lorsque l'accès est demandé via un fournisseur d'identité. Pourplus d'informations sur les utilisateurs fédérés, consultez Utilisateurs et rôles fédérés dans le IAMGuide de l'utilisateur.

 • Accès entre comptes – Vous pouvez utiliser un rôle IAM de votre compte pour autoriser un autre

compte AWS à accéder aux ressources de votre compte. Pour obtenir un exemple, consultezDidacticiel : Déléguer l'accès entre comptes AWS à l'aide de rôles IAM dans le IAM Guide del'utilisateur.

 • Accès au service AWS – Vous pouvez utiliser un rôle IAM de votre compte pour autoriser un service

AWS à accéder aux ressources de votre compte. Par exemple, vous pouvez créer un rôle qui permet à

122

Amazon CloudWatch Logs Guide de l'utilisateurContrôle d'accès

Amazon Redshift d'accéder à un compartiment Amazon S3 en votre nom, puis de charger les donnéesstockées dans le compartiment dans un cluster Amazon Redshift. Pour plus d'informations, consultezCréation d'un rôle pour déléguer des autorisations à un service AWS dans le IAM Guide de l'utilisateur.

 • Applications qui s'exécutent sur Amazon EC2 – Au lieu de stocker les clés d'accès au sein de

l'instance AWS afin qu'elles soient utilisées par les applications s'exécutant sur l'instance et émettantdes demandes d'API, vous pouvez utiliser un rôle IAM afin de gérer les informations d'identificationtemporaires pour ces applications. Pour attribuer un rôle AWS à une instance EC2 et le rendredisponible pour toutes ses applications, vous pouvez créer un profil d'instance attaché à l'instance. Unprofil d'instance contient le rôle et permet aux programmes qui s'exécutent sur l'instance EC2 d'obtenirdes informations d'identification temporaires. Pour plus d'informations, consultez Utilisation de rôlespour des applications s'exécutant sur Amazon EC2 dans le IAM Guide de l'utilisateur.

Contrôle d'accèsVous pouvez avoir des informations d'identification valides pour authentifier vos demandes, mais à moinsd'avoir les autorisations requises, vous ne pouvez pas créer de ressources CloudWatch Logs ni accéderà de telles ressources. Par exemple, vous devez disposer d'autorisations pour créer des flux de journaux,des groupes de journaux et ainsi de suite.

Les sections suivantes décrivent comment gérer les autorisations pour CloudWatch Logs. Nous vousrecommandons de commencer par lire la présentation.

• Présentation de la gestion des autorisations d'accès à vos ressources CloudWatch Logs (p. 123)• Utilisation des stratégies basées sur une identité (stratégies IAM) pour CloudWatch Logs (p. 127)• Référence des autorisations CloudWatch Logs (p. 132)

Présentation de la gestion des autorisations d'accès àvos ressources CloudWatch LogsChaque ressource AWS appartient à un compte AWS et les autorisations de créer des ressources et d'yaccéder sont régies par des stratégies d'autorisation. Un administrateur de compte peut attacher desstratégies d'autorisation aux identités IAM (c'est-à-dire aux utilisateurs, groupes et rôles), et certainsservices (tels que AWS Lambda) prennent également en charge l'attachement de stratégies d'autorisationaux ressources.

Note

Un administrateur de compte (ou utilisateur administrateur IAM) est un utilisateur doté desprivilèges d'administrateur. Pour plus d'informations, consultez Bonnes pratiques IAM dans le IAMGuide de l'utilisateur.

Lorsque vous accordez des autorisations, vous décidez qui doit les obtenir, à quelles ressources cesautorisations s'appliquent et les actions spécifiques que vous souhaitez autoriser sur ces ressources.

Rubriques• Ressources et opérations CloudWatch Logs (p. 124)• Présentation de la propriété des ressources (p. 124)• Gestion de l'accès aux ressources (p. 124)• Spécification des éléments d'une stratégie : actions, effets et mandataires (p. 126)• Spécification de conditions dans une stratégie (p. 127)

123

Amazon CloudWatch Logs Guide de l'utilisateurPrésentation de la gestion des accès

Ressources et opérations CloudWatch LogsDans CloudWatch Logs les ressources principales sont les groupes de journaux, les flux de journaux et lesdestinations. CloudWatch Logs ne prend pas en charge les sous-ressources (d'autres ressources pour êtreutilisées avec la ressource principale).

Ces ressources et sous-ressources ont des noms ARN (Amazon Resource Name) uniques associés,comme cela est illustré dans le tableau suivant.

Type de ressource Format ARN

Groupe de journaux arn:aws:logs:region:account-id:log-group:log_group_name

Flux de journaux arn:aws:logs:region:account-id:log-group:log_group_name:log-stream:log-stream-name

Destination arn:aws:logs:region:account-id:destination:destination_name

Pour plus d'informations sur les ARN, consultez ARN dans le IAM Guide de l'utilisateur. Pour plusd'informations sur les ARN CloudWatch Logs, consultez Amazon Resource Name (ARN) et espaces denoms AWS dans le document Référence générale d'Amazon Web Services. Pour un exemple de stratégiequi couvre CloudWatch Logs, consultez Utilisation des stratégies basées sur une identité (stratégies IAM)pour CloudWatch Logs (p. 127).

CloudWatch Logs fournit un ensemble d'opérations à utiliser avec les ressources CloudWatch Logs.Pour obtenir la liste des opérations disponibles, consultez Référence des autorisations CloudWatchLogs (p. 132).

Présentation de la propriété des ressourcesLe compte AWS possède les ressources qui sont créés dans le compte, indépendamment de la personnequi a créé les ressources. Plus spécifiquement, le propriétaire des ressources est le compte AWS del'entité principale (à savoir, le compte racine, un utilisateur IAM ou un rôle IAM) qui authentifie la demandede création des ressources. Les exemples suivants illustrent comment cela fonctionne :

• Si vous utilisez les informations d'identification de compte racine de votre compte AWS pour créer ungroupe de journaux, votre compte AWS est le propriétaire de la ressource CloudWatch Logs.

• Si vous créez un utilisateur IAM dans votre compte AWS et autorisez cet utilisateur à créer uneressource CloudWatch Logs, il peut créer une ressource CloudWatch Logs. Toutefois, votre compteAWS, auquel appartient l'utilisateur, détient les ressources CloudWatch Logs.

• Si vous créez un rôle IAM dans votre compte AWS et que vous l'autorisez à créer des ressourcesCloudWatch Logs, toute personne capable d'assumer le rôle peut créer des ressources CloudWatchLogs. Votre compte AWS, auquel appartient le rôle, détient les ressources CloudWatch Logs.

Gestion de l'accès aux ressourcesUne stratégie d'autorisation décrit qui a accès à quoi. La section suivante explique les options disponiblespour créer des stratégies d'autorisation.

Note

Cette section décrit l'utilisation d'IAM dans le contexte d'CloudWatch Logs. Elle ne fournit pasd'informations détaillées sur le service IAM. Pour accéder à la documentation complète d'IAM,

124

Amazon CloudWatch Logs Guide de l'utilisateurPrésentation de la gestion des accès

consultez Qu'est-ce qu'IAM ? dans le IAM Guide de l'utilisateur. Pour plus d'informations sur lasyntaxe et les descriptions des stratégies IAM, consultez Référence des stratégies IAM dans leIAM Guide de l'utilisateur.

Les stratégies attachées à une identité IAM sont qualifiées de stratégies basées sur une entité(stratégies IAM) et les stratégies attachées à une ressource sont qualifiées de stratégies basées sur uneressource. CloudWatch Logs prend uniquement en charge les stratégies basées sur une identité et lesstratégies basées sur une ressource. pour les destinations utilisées pour activer les abonnements entrecomptes. Pour plus d'informations, consultez Partage de données de journaux entre comptes avec lesabonnements (p. 98).

Rubriques• Stratégies basées sur une identité (stratégies IAM) (p. 125)• Stratégies basées sur une ressource (p. 126)

Stratégies basées sur une identité (stratégies IAM)Vous pouvez attacher des stratégies à des identités IAM. Par exemple, vous pouvez effectuer lesopérations suivantes :

• Lier une stratégie d'autorisations à un utilisateur ou à un groupe de votre compte – pour accorder uneautorisation d'utilisateur relative à l'affichage des journaux dans la console CloudWatch Logs, vouspouvez lier une stratégie d'autorisations à un utilisateur ou à un groupe auquel l'utilisateur appartient.

• Attacher une stratégie d'autorisation à un rôle (accorder des autorisations entre comptes) – Vous pouvezattacher une stratégie d'autorisation basée sur une identité à un rôle IAM pour accorder des autorisationsentre comptes. Par exemple, l'administrateur dans le Compte A peut créer un rôle pour accorder desautorisations entre comptes à un autre compte AWS (par exemple, le Compte B) ou à un service AWScomme suit :1. L'administrateur du Compte A crée un rôle IAM et attache une stratégie d'autorisation à ce rôle qui

accorde des autorisations sur les ressources dans le Compte A.2. L'administrateur du Compte A attache une stratégie d'approbation au rôle identifiant le Compte B

comme mandataire pouvant assumer ce rôle.3. L'administrateur du Compte B peut alors déléguer des autorisations pour assumer le rôle à tous les

utilisateurs figurant dans le Compte B. Les utilisateurs du Compte B sont ainsi autorisés à créer desressources ou à y accéder dans le Compte A. Le mandataire dans la stratégie d'approbation peutégalement être un mandataire de service AWS si vous souhaitez accorder à un service AWS desautorisations pour assumer ce rôle.

Pour plus d'informations sur l'utilisation d'IAM pour déléguer des autorisations, consultez Gestion d'accèsdans le IAM Guide de l'utilisateur.

Voici un exemple de stratégie qui accorde les autorisations requises pour les actionslogs:PutLogEvents,logs:CreateLogGroup et logs:CreateLogStream au niveau de toutesles ressources dans us-east-1. Pour les groupes de journaux, CloudWatch Logs prend en chargel'identification des ressources spécifiques au moyen des ARN de ressources (également appeléspermissions de niveau ressources) pour certaines actions d'API. Si vous souhaitez inclure tous les groupesde journaux, vous devez spécifier le caractère générique (*).

{ "Version":"2012-10-17", "Statement":[ { "Sid":"", "Effect":"Allow", "Action":[ "logs:PutLogEvents",

125

Amazon CloudWatch Logs Guide de l'utilisateurPrésentation de la gestion des accès

"logs:CreateLogGroup", "logs:CreateLogStream" ], "Resource":"arn:aws:logs:us-east-1:*:*" } ]}

Pour plus d'informations sur l'utilisation des stratégies basées sur une identité avec CloudWatchLogs, consultez Utilisation des stratégies basées sur une identité (stratégies IAM) pour CloudWatchLogs (p. 127). Pour plus d'informations sur les utilisateurs, les groupes, les rôles et les autorisations,consultez Identités (utilisateurs, groupes et rôles) dans le manuel IAM Guide de l'utilisateur.

Stratégies basées sur une ressourceCloudWatch Logs prend en charge des stratégies basées sur les ressources pour les destinations,que vous pouvez utiliser afin d'activer les abonnements entre comptes. Pour plus d'informations,consultez Création d'une destination (p. 99). Vous pouvez créer des destinations à l'aide del'API PutDestination, et vous pouvez aussi ajouter une stratégie de ressources à la destinationà l'aide de l'API PutDestination. L'exemple suivant permet à un autre compte AWS avec l'ID decompte 111122223333 d'abonner ses groupes de journaux à la destination arn:aws:logs:us-east-1:123456789012:destination:testDestination.

{ "Version" : "2012-10-17", "Statement" : [ { "Sid" : "", "Effect" : "Allow", "Principal" : { "AWS" : "111122223333" }, "Action" : "logs:PutSubscriptionFilter", "Resource" : "arn:aws:logs:us-east-1:123456789012:destination:testDestination" } ]}

Spécification des éléments d'une stratégie : actions, effets etmandatairesPour chaque ressource CloudWatch Logs, le service définit un ensemble d'opérations d'API. Pour accorderdes autorisations pour ces opérations d'API, CloudWatch Logs définit un ensemble d'actions que vouspouvez spécifier dans une stratégie. Certaines opérations d'API peuvent exiger des autorisations pourplusieurs actions afin de réaliser l'opération d'API. Pour plus d'informations sur les ressources et lesopérations de l'API, consultez Ressources et opérations CloudWatch Logs (p. 124) et Référence desautorisations CloudWatch Logs (p. 132).

Voici les éléments de base d'une stratégie :

• Ressource – Vous utilisez un nom Amazon Resource Name (ARN) pour identifier la ressource à laquelles'applique la stratégie. Pour plus d'informations, consultez Ressources et opérations CloudWatchLogs (p. 124).

• Action – Vous utilisez des mots clés d'action pour identifier les opérations de ressource que vous voulezaccorder ou refuser. Par exemple, l'autorisation logs.DescribeLogGroups permet à l'utilisateurd'effectuer l'opération DescribeLogGroups.

• Effet – Vous spécifiez l'effet produit, soit un accord ou un refus, lorsque l'utilisateur demande l'actionspécifique. Si vous n'accordez pas explicitement l'accès pour (autoriser) une ressource, l'accès est

126

Amazon CloudWatch Logs Guide de l'utilisateurUtilisation des stratégies baséessur une identité (stratégies IAM)

implicitement refusé. Vous pouvez aussi explicitement refuser l'accès à une ressource, ce que vouspouvez faire afin de vous assurer qu'un utilisateur n'y a pas accès, même si une stratégie différenteaccorde l'accès.

• Mandataire – Dans les stratégies basées sur une identité (stratégies IAM), l'utilisateur auquel la stratégieest attachée est le mandataire implicite. Pour les stratégies basées sur une ressource, vous spécifiezl'utilisateur, le compte, le service ou une autre entité qui doit recevoir les autorisations (s'appliqueuniquement aux stratégies basées sur une ressource). CloudWatch Logs ne prend pas en charge lesstratégies basées sur une ressource pour les destinations.

Pour en savoir plus sur la syntaxe et les descriptions des stratégies IAM, consultez Référence de stratégieAWS IAM dans le IAM Guide de l'utilisateur.

Pour visualiser un tableau répertoriant toutes les actions d'API d'CloudWatch Logs, ainsi que lesressources auxquelles elles s'appliquent, consultez Référence des autorisations CloudWatchLogs (p. 132).

Spécification de conditions dans une stratégieLorsque vous accordez des autorisations, vous pouvez utiliser le langage d'access policy pour spécifier lesconditions définissant quand une stratégie doit prendre effet. Par exemple, il est possible d'appliquer unestratégie après seulement une date spécifique. Pour plus d'informations sur la spécification de conditionsdans un langage de stratégie, consultez Condition dans le IAM Guide de l'utilisateur.

Pour exprimer des conditions, vous utilisez des clés de condition prédéfinies. Pour obtenir la liste desclés de contexte prises en charge par chaque service AWS et la liste des clés de stratégie à l'échelled'AWS, consultez Actions et clés de contexte de condition de service AWS et Clés de contexte de conditionglobales et IAM dans le IAM Guide de l'utilisateur.

Utilisation des stratégies basées sur une identité(stratégies IAM) pour CloudWatch LogsCette rubrique fournit des exemples de stratégies basées sur une identité dans lesquelles un administrateurde compte peut attacher des stratégies d'autorisation aux identités IAM (c'est-à-dire aux utilisateurs,groupes et rôles).

Important

Nous vous recommandons tout d'abord d'examiner les rubriques de présentation qui détaillentles concepts de base et les options disponibles pour gérer l'accès à vos ressources CloudWatchLogs. Pour plus d'informations, consultez Présentation de la gestion des autorisations d'accès àvos ressources CloudWatch Logs (p. 123).

Cette rubrique aborde les points suivants :

• Autorisations requises pour utiliser la console CloudWatch (p. 128)• Stratégies gérées par AWS (prédéfinies) pour CloudWatch Logs (p. 129)• Exemples de stratégies gérées par le client (p. 130)

Un exemple de stratégie d'autorisation est exposé ci-dessous :

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [

127

Amazon CloudWatch Logs Guide de l'utilisateurUtilisation des stratégies baséessur une identité (stratégies IAM)

"logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:*:*:*" ] } ]}

Cette stratégie comporte une instruction qui accorde des autorisations pour créer des groupes et des fluxde journaux, pour télécharger des événements de journaux et pour répertorier des détails sur les flux dejournaux.

Le caractère générique (*) à la fin de la valeur Resource signifie que l'instruction permet l'autorisationdes actions logs:CreateLogGroup, logs:CreateLogStream, logs:PutLogEvents etlogs:DescribeLogStreams sur tout groupe de journaux. Pour limiter cette autorisation à un groupe dejournaux spécifique, remplacez le caractère générique (*) de l'ARN de la ressource par l'ARN du groupe dejournaux spécifique. Pour plus d'informations sur les éléments d'une déclaration de stratégieIAM , consultezRéférences des éléments de stratégie IAM dans le IAM Guide de l'utilisateur. Pour une liste de toutes lesactions CloudWatch Logs, consultez Référence des autorisations CloudWatch Logs (p. 132).

Autorisations requises pour utiliser la console CloudWatchPour qu'un utilisateur puisse travailler avec CloudWatch Logs dans la console CloudWatch, il doit disposerd'un ensemble minimal d'autorisations qui lui permet de décrire d'autres ressources AWS de son compteAWS. Afin d'utiliser CloudWatch Logs dans la console CloudWatch, vous devez disposer des autorisationsdes services suivants :

• CloudWatch• CloudWatch Logs• Amazon ES• IAM• Kinesis• Lambda• Amazon S3

Si vous créez une stratégie IAM plus restrictive que les autorisations minimales requises, la console nefonctionnera pas comme prévu pour les utilisateurs dotés de cette stratégie IAM. Pour garantir que cesutilisateurs pourront continuer à utiliser la console CloudWatch, attachez également la stratégie géréeCloudWatchReadOnlyAccess à l'utilisateur, comme décrit dans Stratégies gérées par AWS (prédéfinies)pour CloudWatch Logs (p. 129).

Vous n'avez pas besoin d'accorder les autorisations minimales de console pour les utilisateurs quieffectuent des appels uniquement au AWS CLI ou à l'API CloudWatch Logs.

Voici l'ensemble complet d'autorisations requises par la console CloudWatch pour un utilisateur qui ne sesert pas de la console pour gérer les abonnements aux journaux :

• cloudwatch:getMetricData• cloudwatch:listMetrics• logs:cancelExportTask• logs:createExportTask• logs:createLogGroup

128

Amazon CloudWatch Logs Guide de l'utilisateurUtilisation des stratégies baséessur une identité (stratégies IAM)

• logs:createLogStream• logs:deleteLogGroup• logs:deleteLogStream• logs:deleteMetricFilter• logs:deleteRetentionPolicy• logs:deleteSubscriptionFilter• logs:describeExportTasks• logs:describeLogGroups• logs:describeLogStreams• logs:describeMetricFilters• logs:describeSubscriptionFilters• logs:filterLogEvents• logs:getLogEvents• logs:putMetricFilter• logs:putRetentionPolicy• logs:putSubscriptionFilter• logs:testMetricFilter

Pour un utilisateur qui se servira également de la console pour gérer les abonnements aux journaux, lesautorisations suivantes sont requises :

• es:describeElasticsearchDomain• es:listDomainNames• iam:attachRolePolicy• iam:createRole• iam:getPolicy• iam:getPolicyVersion• iam:getRole• iam:listAttachedRolePolicies• iam:listRoles• kinesis:describeStreams• kinesis:listStreams• lambda:addPermission• lambda:createFunction• lambda:getFunctionConfiguration• lambda:listAliases• lambda:listFunctions• lambda:listVersionsByFunction• lambda:removePermission• s3:listBuckets

Stratégies gérées par AWS (prédéfinies) pour CloudWatch LogsAWS peut remédier à de nombreux cas d'utilisation courants en fournissant des stratégies IAM autonomesqui sont créées et administrées par AWS. Les stratégies gérées octroient les autorisations requises dansles cas d'utilisation courants et vous évitent d'avoir à réfléchir aux autorisations qui sont requises. Pour plusd'informations, consultez Stratégies gérées par AWS dans le IAM Guide de l'utilisateur.

129

Amazon CloudWatch Logs Guide de l'utilisateurUtilisation des stratégies baséessur une identité (stratégies IAM)

Les stratégies suivantes gérées par AWS, que vous pouvez attacher aux utilisateurs dans votre compte,sont spécifiques à CloudWatch Logs :

• CloudWatchLogsFullAccess – Accorde un accès complet à CloudWatch Logs.• CloudWatchLogsReadOnlyAccess –Accorde l'accès en lecture seule à CloudWatch Logs.

Note

Vous pouvez consulter ces stratégies d'autorisations en vous connectant à la console IAM et en yrecherchant des stratégies spécifiques.

Vous pouvez également créer vos propres stratégies IAM personnalisées afin d'accorder des autorisationspour des actions et des ressources CloudWatch Logs. Vous pouvez attacher ces stratégies personnaliséesaux utilisateurs ou groupes IAM qui nécessitent ces autorisations.

Exemples de stratégies gérées par le clientDans cette section, vous trouverez des exemples de stratégies utilisateur qui accordent des autorisationspour diverses actions CloudWatch Logs. Ces stratégies fonctionnent lorsque vous utilisez l'API CloudWatchLogs, les kits SDK AWS ou l'AWS CLI.

Exemples• Exemple 1 : Autoriser l'accès complet à CloudWatch Logs (p. 130)• Exemple 2 : Autoriser l'accès en lecture seule à CloudWatch Logs (p. 130)• Exemple 3 : Autoriser l'accès à un groupe de journaux (p. 131)

Exemple 1 : Autoriser l'accès complet à CloudWatch LogsLa stratégie suivante permet à un utilisateur d'accéder à toutes les actions CloudWatch Logs.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "logs:*" ], "Effect": "Allow", "Resource": "*" } ]}

Exemple 2 : Autoriser l'accès en lecture seule à CloudWatch LogsLa stratégie suivante autorise l'utilisateur à accéder en lecture seule aux données CloudWatch Logs.

{ "Version":"2012-10-17", "Statement":[ { "Action":[ "logs:Describe*", "logs:Get*", "logs:TestMetricFilter", "logs:FilterLogEvents" ],

130

Amazon CloudWatch Logs Guide de l'utilisateurUtilisation des stratégies baséessur une identité (stratégies IAM)

"Effect":"Allow", "Resource":"*" } ]}

Exemple 3 : Autoriser l'accès à un groupe de journaux

La stratégie suivante permet à un utilisateur de lire et d'écrire des événements de journaux dans un groupede journaux spécifié.

{ "Version":"2012-10-17", "Statement":[ { "Action": [ "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:PutLogEvents", "logs:GetLogEvents" ], "Effect": "Allow", "Resource": "arn:aws:logs:us-west-2:123456789012:log-group:SampleLogGroupName:*" } ]}

Utilisation du balisage et des stratégies IAM pour le contrôle auniveau du groupe de journauxVous pouvez accorder aux utilisateurs l'accès à certains groupes de journaux tout en leur empêchantd'accéder à d'autres groupes de journaux. Pour ce faire, balisez vos groupes de journaux et utilisez lesstratégies IAM qui font référence à ces balises.

Pour plus d'informations sur le balisage des groupes de journaux, consultez Balisage des groupes dejournaux dans Amazon CloudWatch Logs (p. 59).

Lorsque vous balisez les groupes de journaux, vous pouvez ensuite accorder une stratégie IAM à unutilisateur pour autoriser l’accès uniquement aux groupes de journaux associés à une balise particulière.Par exemple, la déclaration de stratégie suivante accorde l'accès uniquement aux groupes de journauxavec la valeur de Green pour la clé de balise Team.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "logs:*" ], "Effect": "Allow", "Resource": "*", "Condition": { "StringLike": { "logs:ResourceTag/Team": "Green" } } } ]}

131

Amazon CloudWatch Logs Guide de l'utilisateurRéférence des autorisations CloudWatch Logs

Pour plus d'informations sur l'utilisation des déclarations de stratégie IAM, consultez Contrôle de l'accès àl'aide de stratégies dans le IAM Guide de l'utilisateur.

Référence des autorisations CloudWatch LogsLorsque vous configurez Contrôle d'accès (p. 123) et les stratégies d'autorisation d'écriture que vouspouvez attacher à une identité IAM (stratégies basées sur une identité), vous pouvez utiliser le tableau ci-dessous comme référence. Ce tableau répertorie chaque opération d'API CloudWatch Logs et les actionscorrespondantes pour lesquelles vous pouvez accorder des autorisations. Vous spécifiez les actions dansle champ Action de la stratégie. Pour le champ Resource, vous pouvez spécifier l'ARN d'un groupe dejournaux ou d'un flux de journaux, ou spécifier * pour représenter toutes les ressources CloudWatch Logs.

Vous pouvez utiliser des clés de condition à l'échelle d'AWS dans les stratégies CloudWatch Logs pourexprimer des conditions. Pour obtenir la liste complète des clés à l'échelle d'AWS, consultez AWSClés decontexte de condition globales et IAM dans le IAM Guide de l'utilisateur.

Note

Pour spécifier une action, utilisez le préfixe logs: suivi du nom de l'opération d'API. Par exemple :logs:CreateLogGroup, logs:CreateLogStream ou logs:* (pour toutes les actionsCloudWatch Logs).

Opérations d'API CloudWatch Logs et autorisations requises pour les actions

CloudWatch LogsOpérations d'API Autorisations requises (actions d'API)

CancelExportTask logs:CancelExportTask

Exigé pour annuler une tâche d'exportation enattente ou en cours d'exécution.

CreateExportTask logs:CreateExportTask

Exigé pour exporter des données d'un groupe dejournaux vers un compartiment Amazon S3.

CreateLogGroup logs:CreateLogGroup

Exigé pour créer un nouveau groupe de journaux.

CreateLogStream logs:CreateLogStream

Exigé pour créer un nouveau flux de journaux dansun groupe de journaux.

DeleteDestination logs:DeleteDestination

Exigé pour supprimer une destination de journal etdésactiver tous les filtres d'abonnement connexes.

DeleteLogGroup logs:DeleteLogGroup

Exigé pour supprimer un groupe de journauxet tous les événements de journaux archivésassociés.

DeleteLogStream logs:DeleteLogStream

Exigé pour supprimer un flux de journaux et tousles événements de journaux archivés associés.

132

Amazon CloudWatch Logs Guide de l'utilisateurRéférence des autorisations CloudWatch Logs

CloudWatch LogsOpérations d'API Autorisations requises (actions d'API)

DeleteMetricFilter logs:DeleteMetricFilter

Exigé pour supprimer un filtre de métrique associéà un groupe de journaux.

DeleteResourcePolicy logs:DeleteResourcePolicy

Obligatoire pour supprimer une stratégie deressource CloudWatch Logs.

DeleteRetentionPolicy logs:DeleteRetentionPolicy

Exigé pour supprimer la stratégie de rétention d'ungroupe de journaux.

DeleteSubscriptionFilter logs:DeleteSubscriptionFilter

Exigé pour supprimer le filtre d'abonnementassocié à un groupe de journaux.

DescribeDestinations logs:DescribeDestinations

Exigé pour afficher toutes les destinationsassociées au compte.

DescribeExportTasks logs:DescribeExportTasks

Exigé pour afficher toutes les tâches d'exportationassociées au compte.

DescribeLogGroups logs:DescribeLogGroups

Exigé pour afficher tous les groupes de journauxassociés au compte.

DescribeLogStreams logs:DescribeLogStreams

Exigé pour afficher tous les flux de journauxassociés à un groupe de journaux.

DescribeMetricFilters logs:DescribeMetricFilters

Exigé pour afficher toutes les métriques associéesà un groupe de journaux.

DescribeResourcePolicies logs:DescribeResourcePolicies

Obligatoire pour afficher la liste des stratégies deressource CloudWatch Logs.

DescribeSubscriptionFilters logs:DescribeSubscriptionFilters

Exigé pour afficher tous les filtres d'abonnementassociés à un groupe de journaux.

FilterLogEvents logs:FilterLogEvents

Exigé pour trier les événements des journaux parmodèle de filtre de groupes de journaux.

133

Amazon CloudWatch Logs Guide de l'utilisateurRéférence des autorisations CloudWatch Logs

CloudWatch LogsOpérations d'API Autorisations requises (actions d'API)

GetLogEvents logs:GetLogEvents

Exigé pour récupérer les événements des journauxà partir d'un flux de journaux.

ListTagsLogGroup logs:ListTagsLogGroup

Exigé pour afficher toutes les balises associées àun groupe de journaux.

PutDestination logs:PutDestination

Exigé pour créer ou mettre à jour un flux dejournaux de destination (comme un flux Kinesis).

PutDestinationPolicy logs:PutDestinationPolicy

Exigé pour créer ou mettre à jour une stratégied'accès associée à une destination de journalexistante.

PutLogEvents logs:PutLogEvents

Exigé pour charger un lot d'événements dejournaux dans un flux de journaux.

PutMetricFilter logs:PutMetricFilter

Exigé pour créer ou mettre à jour un filtre demétrique et l'associer à un groupe de journaux.

PutResourcePolicy logs:PutResourcePolicy

Obligatoire pour créer une stratégie de ressourceCloudWatch Logs.

PutRetentionPolicy logs:PutRetentionPolicy

Exigé pour définir le nombre de jours deconservation des événements de journaux(rétention) dans un groupe de journaux.

PutSubscriptionFilter logs:PutSubscriptionFilter

Exigé pour créer ou mettre à jour un filtred'abonnement et l'associer à un groupe dejournaux.

TagLogGroup logs:TagLogGroup

Exigé pour ajouter ou mettre à jour des balises degroupe de journaux.

TestMetricFilter logs:TestMetricFilter

Exigé pour tester un modèle de filtre par rapport àun échantillonnage de messages d'événements dejournaux.

134

Amazon CloudWatch Logs Guide de l'utilisateurValidation de la conformité

Validation de la conformité pour AmazonCloudWatch Logs

Les auditeurs tiers évaluent la sécurité et la conformité de Amazon CloudWatch Logs dans le cadre deplusieurs programmes de conformité AWS. Il s'agit notamment des certifications SOC, PCI, FedRAMP,HIPAA et autres.

Pour obtenir la liste des services AWS relevant de programmes de conformité spécifiques, veuillezconsulter Services AWS dans Scope by Compliance Program. Pour obtenir des renseignements généraux,consultez Programmes de conformitéAWS .

Vous pouvez télécharger les rapports de l'audit externe avec AWS Artifact. Pour plus d'informations, voirTéléchargement de rapports dans AWS Artifact.

Votre responsabilité en matière de conformité lors de l'utilisation d'Amazon CloudWatch Logs estdéterminée par la sensibilité de vos données, les objectifs de conformité de l'entreprise, ainsi que lalégislation et la réglementation applicables. AWS fournit les ressources suivantes pour faciliter le respect dela conformité :

• Guides de démarrage rapide de la sécurité et de la conformité – Ces guides de déploiement proposentdes considérations architecturales et fournissent des étapes pour déployer des environnements deréférence centrés sur la sécurité et la conformité sur AWS.

• Livre blanc sur l'architecture pour la sécurité et la conformité HIPAA – Le livre blanc décrit comment lesentreprises peuvent utiliser AWS pour créer des applications conformes à la loi HIPAA.

• Ressources de conformité AWS – Cet ensemble de manuels et de guides peut s'appliquer à votresecteur et à votre emplacement.

• Évaluation des ressources à l'aide de règles dans le AWS Config Developer Guide – AWS Configévalue dans quelle mesure vos configurations de ressources sont conformes aux pratiques internes, auxdirectives sectorielles et aux réglementations.

• AWS Security Hub – Ce service AWS fournit une vue complète de votre état de sécurité au sein d'AWSqui vous permet de vérifier votre conformité aux normes du secteur et aux bonnes pratiques de sécurité.

Résilience dans Amazon CloudWatch LogsL'infrastructure mondiale d’AWS repose sur des régions et des zones de disponibilité AWS. Les régionsfournissent plusieurs zones de disponibilité physiquement séparées et isolées, reliées par un réseau àlatence faible, à débit élevé et à forte redondance. Avec les zones de disponibilité, vous pouvez concevoiret exploiter des applications et des bases de données qui basculent automatiquement d'une zone à l'autresans interruption. Les zones de disponibilité sont plus hautement disponibles, tolérantes aux pannes etévolutives que les infrastructures traditionnelles à un ou plusieurs centres de données.

Pour plus d'informations sur les régions et les zones de disponibilité AWS, consultez Infrastructuremondiale AWS.

Sécurité de l'infrastructure dans AmazonCloudWatch Logs

En tant que service géré, Amazon CloudWatch Logs est protégé par les procédures de sécurité du réseaumondial AWS qui sont décrites dans le livre blanc Amazon Web Services : Présentation des procédures desécurité.

135

Amazon CloudWatch Logs Guide de l'utilisateurPoints de terminaison de VPC d'interface

Vous utilisez les appels d'API publiés AWS pour accéder à Amazon CloudWatch Logs via le réseau. Lesclients doivent prendre en charge le protocole TLS (Transport Layer Security) 1.0 ou version ultérieure.Nous recommandons TLS 1.2 ou version ultérieure. Les clients doivent également prendre en charge lessuites de chiffrement PFS (Perfect Forward Secrecy) comme Ephemeral Diffie-Hellman (DHE) ou EllipticCurve Ephemeral Diffie-Hellman (ECDHE) La plupart des systèmes modernes telles que Java 7 et versionsultérieures prennent en charge ces modes.

En outre, les demandes doivent être signées à l'aide d'un ID de clé d'accès et d'une clé d'accès secrèteassociée à un mandataire IAM. Vous pouvez également utiliser AWS Security Token Service (AWS STS)pour générer des informations d'identification de sécurité temporaires et signer les demandes.

Utilisation de CloudWatch Logs avec les points determinaison de VPC d'interface

Si vous utilisez Amazon Virtual Private Cloud (Amazon VPC) pour héberger vos ressources AWS, vouspouvez établir une connexion privée entre votre VPC et CloudWatch Logs. Vous pouvez utiliser cetteconnexion pour envoyer des journaux à CloudWatch Logs sans les envoyer via Internet.

Amazon VPC est un service AWS que vous pouvez utiliser pour lancer des ressources AWS dans unréseau virtuel que vous définissez. Avec un VPC, vous contrôlez des paramètres réseau, tels que la plaged'adresses IP, les sous-réseaux, les tables de routage et les passerelles réseau. Pour connecter votre VPCà CloudWatch Logs, vous définissez un point de terminaison de VPC d'interface pour CloudWatch Logs.Ce type de point de terminaison vous permet de connecter votre VPC à des services AWS. Le point determinaison assure une connectivité scalable et fiable à CloudWatch Logs, sans qu'une passerelle Internet,une instance NAT (Network Address Translation) ou une connexion VPN ne soit nécessaire. Pour plusd'informations, consultez Qu'est-ce qu'Amazon VPC dans le Amazon VPC Guide de l'utilisateur.

Les points de terminaison de VPC d'interface reposent sur AWS PrivateLink, une technologie AWS quiactive une communication privée entre les services AWS à l'aide d'une interface réseau Elastic avec desadresses IP privées. Pour plus d'informations, consultez Nouveauté - AWS PrivateLink pour les servicesAWS.

Les étapes suivantes s'adressent aux utilisateurs de Amazon VPC. Pour plus d'informations, consultezMise en route dans le Amazon VPC Guide de l'utilisateur.

DisponibilitéCloudWatch Logs prend actuellement en charge les points de terminaison de VPC dans les régionssuivantes :

• USA Est (Ohio)• USA Est (Virginie du Nord)• USA Ouest (Californie du Nord)• USA Ouest (Oregon)• Asie-Pacifique (Mumbai)• Asie-Pacifique (Séoul)• Asie-Pacifique (Singapour)• Asie-Pacifique (Sydney)• Asie-Pacifique (Tokyo)• Canada (Centre)• Europe (Francfort)• Europe (Irlande)

136

Amazon CloudWatch Logs Guide de l'utilisateurCréation d'un point de terminaison

de VPC pour CloudWatch Logs

• Europe (Londres)• Europe (Paris)• Amérique du Sud (São Paulo)• AWS GovCloud (US-East)• AWS GovCloud (US-West)

Création d'un point de terminaison de VPC pourCloudWatch LogsPour commencer à utiliser CloudWatch Logs avec votre VPC, créez un point de terminaison de VPCd'interface pour CloudWatch Logs. Le service à choisir est com.amazonaws.Region.logs. Pour plusd'informations, consultez Création d'un point de terminaison d'interface dans le Amazon VPC Guide del'utilisateur.

Vous n'avez pas besoin de modifier les paramètres pour CloudWatch Logs. CloudWatch Logs appelled'autres services AWS à l'aide de points de terminaison publics ou de points de terminaison de VPCd'interface privés, selon ceux utilisés. Par exemple, si vous créez un point de terminaison d'un VPCd'interface pour CloudWatch Logs et que vous avez déjà un filtre d'abonnement CloudWatch Logs pourKinesis Data Streams et un point de terminaison d'un VPC d'interface pour Kinesis Data Streams, lesappels entre CloudWatch Logs et Kinesis Data Streams commencent à transiter via le point de terminaisonVPC d'interface.

Test de la connexion entre votre VPC et CloudWatchLogsUne fois que vous avez créé le point de terminaison, vous pouvez tester la connexion.

Pour tester la connexion entre votre VPC et votre point de terminaison CloudWatch Logs

1. Connectez-vous à une instance Amazon EC2 qui se trouve dans votre VPC. Pour plus d'informationssur la connexion, consultez la section Connexion à votre instance Linux ou Connexion à votre instanceWindows dans la documentation Amazon EC2.

2. Depuis l'instance, utilisez l'AWS CLI pour créer une entrée de journal dans l'un de vos groupes dejournaux. existants.

Commencez par créer un fichier JSON avec un événement de journal. Horodatage requis (en nombrede millisecondes) depuis le 1er janvier 1970 00:00:00 UTC.

[ { "timestamp": 1533854071310, "message": "VPC Connection Test" }]

Utilisez ensuite la commande put-log-events pour créer une entrée de journal :

aws logs put-log-events --log-group-name LogGroupName --log-stream-name LogStreamName --log-events file://JSONFileName

Si la réponse à la commande inclut nextSequenceToken, cela signifie que la commande a réussi etque votre point de terminaison de VPC fonctionne.

137

Amazon CloudWatch Logs Guide de l'utilisateurContrôle de l'accès à votre point de

terminaison de VPC CloudWatch Logs

Contrôle de l'accès à votre point de terminaison deVPC CloudWatch LogsUne stratégie de point de terminaison de VPC est une stratégie de ressource IAM que vous attachez àun point de terminaison quand vous créez ou modifiez le point de terminaison. Si vous n'attachez pas destratégie quand vous créez un point de terminaison, nous lui attachons une stratégie par défaut pour vousqui autorise un accès total au service. Une stratégie de point de terminaison n'annule pas et ne remplacepas les stratégies utilisateur IAM ou les stratégies propres au service. Il s'agit d'une stratégie distincte quicontrôle l'accès depuis le point de terminaison jusqu'au service spécifié.

Les stratégies de point de terminaison doivent être écrites au format JSON.

Pour de plus amples informations, veuillez consulter Contrôle de l'accès aux services avec des points determinaison de VPC dans le Amazon VPC Guide de l'utilisateur.

Voici un exemple de stratégie de point de terminaison pour CloudWatch Logs. Cette stratégie permet auxutilisateurs de se connecter à CloudWatch Logs via le VPC pour créer des flux de journaux et envoyer desjournaux à CloudWatch Logs. Elle les empêche d’effectuer d'autres actions CloudWatch Logs.

{ "Statement": [ { "Sid": "PutOnly", "Principal": "*", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Effect": "Allow", "Resource": "*" } ]}

Pour modifier la stratégie de point de terminaison de VPC pour CloudWatch Logs

1. Ouvrez la console Amazon VPC à l'adresse https://console.aws.amazon.com/vpc/.2. Dans le volet de navigation, choisissez Endpoints (Points de terminaison).3. Si vous n'avez pas encore créé le point de terminaison pour CloudWatch Logs, choisissez Create

Endpoint (Créer un point de terminaison). Ensuite, sélectionnez com.amazonaws.Region.logs etchoisissez Create endpoint (Créer un point de terminaison).

4. Sélectionnez le point de terminaison com.amazonaws.Region.logs, puis l’onglet Policy (Stratégie)dans la partie inférieure de l’écran.

5. Choisissez Edit Policy (Modifier la stratégie), puis apportez les modifications voulues à la stratégie.

Prise en charge des clés de contexte de VPCCloudWatch Logs prend en charge les clés de contexte aws:SourceVpce et aws:SourceVpc, quipermettent de limiter l'accès à des VPC ou à des points de terminaison de VPC spécifiques. Ces clésfonctionnent uniquement lorsque l'utilisateur utilise des points de terminaison d'un VPC. Pour plusd’informations, consultez Clés disponibles pour certains services dans le IAM Guide de l'utilisateur.

138

Amazon CloudWatch Logs Guide de l'utilisateurInformations CloudWatch Logs dans CloudTrail

Journalisation des appels d'APIAmazon CloudWatch Logs dansAWS CloudTrail

Amazon CloudWatch Logs est intégré à AWS CloudTrail, service qui fournit un enregistrement des actionsréalisées par un utilisateur, un rôle ou un service AWS dans CloudWatch Logs. CloudTrail capture tousles appels d'API effectués par vous-même ou au nom de votre compte AWS. Les appels capturés incluentles appels de la console CloudWatch et les appels de code vers les opérations d'API CloudWatch Logs.Si vous créez un journal de suivi, vous pouvez diffuser en continu les événements CloudTrail sur uncompartiment Amazon S3, y compris les événements pour CloudWatch Logs. Si vous ne configurez pas dejournal de suivi, vous pouvez toujours afficher les événements les plus récents dans la console CloudTraildans Event history (Historique des événements). À l'aide des informations collectées par CloudTrail, vouspouvez déterminer la demande qui a été envoyée à CloudWatch Logs, l'adresse IP source à partir delaquelle la demande a été effectuée, l'auteur de la demande et la date de la demande, ainsi que d'autresinformations.

Pour en savoir plus sur CloudTrail, y compris la façon de le configurer et de l'activer, consultez le manuelAWS CloudTrail User Guide.

Rubriques• Informations CloudWatch Logs dans CloudTrail (p. 139)• Présentation des entrées des fichiers journaux (p. 140)

Informations CloudWatch Logs dans CloudTrailCloudTrail est activé sur votre compte AWS lorsque vous créez le compte. Quand une activité d'événementprise en charge a lieu dans CloudWatch Logs, elle est enregistrée dans un événement CloudTrailavec d'autres événements de services AWS dans Event history (Historique des événements). Vouspouvez afficher, rechercher et télécharger les événements récents dans votre compte AWS. Pour plusd'informations, consultez Affichage des événements avec l'historique des événements CloudTrail.

Pour un enregistrement continu des événements dans votre compte AWS, y compris les événementspour CloudWatch Logs, créez un journal de suivi. Une journal de suivi permet à CloudTrail de livrer lesfichiers journaux dans un compartiment Amazon S3. Par défaut, lorsque vous créez un journal de suividans la console, il s'applique à toutes les régions AWS. Le journal de suivi consigne les événements detoutes les régions dans la partition AWS et livre les fichiers journaux dans le compartiment Amazon S3 devotre choix. En outre, vous pouvez configurer d'autres services AWS pour analyser plus en profondeur lesdonnées d'événement collectées dans les journaux CloudTrail et agir sur celles-ci. Pour plus d'informations,consultez les ressources suivantes :

• Présentation de la création d'un journal de suivi• Intégrations et services pris en charge par CloudTrail• Configuration des Notifications de Amazon SNS pour CloudTrail• Réception de fichiers journaux CloudTrail de plusieurs régions et Réception de fichiers journaux

CloudTrail de plusieurs comptes

CloudWatch Logs prend en charge la journalisation des actions suivantes en tant qu'événements dans lesfichiers journaux CloudTrail :

139

Amazon CloudWatch Logs Guide de l'utilisateurPrésentation des entrées des fichiers journaux

• CancelExportTask• CreateExportTask• CreateLogGroup• CreateLogStream• DeleteDestination• DeleteLogGroup• DeleteLogStream• DeleteMetricFilter• DeleteRetentionPolicy• DeleteSubscriptionFilter• PutDestination• PutDestinationPolicy• PutMetricFilter• PutRetentionPolicy• PutSubscriptionFilter• StartQuery• StopQuery• TestMetricFilter

Seuls les éléments de demande sont enregistrés dans CloudTrail pour ces actions d'API CloudWatchLogs :

• DescribeDestinations• DescribeExportTasks• DescribeLogGroups• DescribeLogStreams• DescribeMetricFilters• DescribeQueries• DescribeSubscriptionFilters• GetLogGroupFields• GetLogRecord

Chaque événement ou entrée du journal contient des informations sur la personne qui a généré lademande. Les informations relatives à l'identité permettent de déterminer les éléments suivants :

• Si la demande a été effectuée avec les informations d'identification racine ou utilisateur AWS Identity andAccess Management (IAM).

• Si la demande a été effectuée avec des informations d'identification de sécurité temporaires pour un rôleou un utilisateur fédéré.

• Si la requête a été effectuée par un autre service AWS.

Pour plus d'informations, consultez la section Élément userIdentity CloudTrail.

Présentation des entrées des fichiers journauxUn journal de suivi est une configuration qui active la livraison d'événements en tant que fichiers journauxà un compartiment Amazon S3 que vous spécifiez. Les fichiers journaux CloudTrail contiennent une ou

140

Amazon CloudWatch Logs Guide de l'utilisateurPrésentation des entrées des fichiers journaux

plusieurs entrées de journal. Un événement représente une demande individuelle à partir d'une sourcequelconque et comprend des informations sur l'action demandée, sur tous les paramètres, les paramètresde la demande, etc. Les fichiers journaux CloudTrail ne sont pas des séries ordonnées retraçant les appelsd'API publics. Ils ne suivent aucun ordre précis.

L'entrée du fichier journal suivante montre qu'un utilisateur a appelé l'action CloudWatch LogsCreateExportTask.

{ "eventVersion": "1.03", "userIdentity": { "type": "IAMUser", "principalId": "EX_PRINCIPAL_ID", "arn": "arn:aws:iam::123456789012:user/someuser", "accountId": "123456789012", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName": "someuser" }, "eventTime": "2016-02-08T06:35:14Z", "eventSource": "logs.amazonaws.com", "eventName": "CreateExportTask", "awsRegion": "us-east-1", "sourceIPAddress": "127.0.0.1", "userAgent": "aws-sdk-ruby2/2.0.0.rc4 ruby/1.9.3 x86_64-linux Seahorse/0.1.0", "requestParameters": { "destination": "yourdestination", "logGroupName": "yourloggroup", "to": 123456789012, "from": 0, "taskName": "yourtask" }, "responseElements": { "taskId": "15e5e534-9548-44ab-a221-64d9d2b27b9b" }, "requestID": "1cd74c1c-ce2e-12e6-99a9-8dbb26bd06c9", "eventID": "fd072859-bd7c-4865-9e76-8e364e89307c", "eventType": "AwsApiCall", "apiVersion": "20140328", "recipientAccountId": "123456789012"}

141

Amazon CloudWatch Logs Guide de l'utilisateurFichier de configuration de l'agent

CloudWatch LogsRéférence del'agent

L'agent CloudWatch Logs permet d'envoyer de façon automatisée des données de journal à CloudWatchLogs à partir d'instances Amazon EC2. L’agent comprend les éléments suivants :

• Plug-in pour l'AWS CLI qui effectue une transmission de type push des données de journal versCloudWatch Logs.

• Script (démon) qui lance le processus d'envoi de données push vers CloudWatch Logs.• Une tâche cron qui garantit que le programme démon s'exécute en permanence.

Fichier de configuration de l'agentLe fichier de configuration de l'agent CloudWatch Logs décrit les informations nécessaires à l'agentCloudWatch Logs. La section [general] du fichier de configuration de l'agent définit les configurationscourantes qui s'appliquent à tous les flux de journaux. La section [logstream] définit les informationsnécessaires pour envoyer un fichier local à un flux de journaux à distance. Vous pouvez avoir plusieurssections [logstream], mais chacune doit porter un nom unique dans le fichier de configuration, par exemple[logstream1], [logstream2] et ainsi de suite. La valeur [logstream], ainsi que la première ligne de donnéesdu fichier journal, définissent l'identités du fichier journal.

[general]state_file = valuelogging_config_file = valueuse_gzip_http_content_encoding = [true | false]

[logstream1]log_group_name = valuelog_stream_name = valuedatetime_format = valuetime_zone = [LOCAL|UTC]file = valuefile_fingerprint_lines = integer | integer-integermulti_line_start_pattern = regex | {datetime_format}initial_position = [start_of_file | end_of_file]encoding = [ascii|utf_8|..]buffer_duration = integerbatch_count = integerbatch_size = integer

[logstream2]...

state_file

Spécifie l'emplacement où est stocké le fichier d'état.logging_config_file

(Facultatif) Spécifie l'emplacement du fichier de configuration de la journalisation de l'agent. Sivous ne spécifiez pas de fichier de configuration de la journalisation de l'agent ici, le fichier pardéfaut awslogs.conf est utilisé. L'emplacement du fichier par défaut est /var/awslogs/etc/

142

Amazon CloudWatch Logs Guide de l'utilisateurFichier de configuration de l'agent

awslogs.conf si vous avez installé l'agent à l'aide d'un script, et /etc/awslogs/awslogs.conf sivous avez installé l'agent avec rpm. Le fichier est au format de fichier de configuration Python (https://docs.python.org/2/library/logging.config.html#logging-config-fileformat). Il est possible de personnaliserles enregistreurs suivants.

cwlogs.pushcwlogs.push.readercwlogs.push.publishercwlogs.push.eventcwlogs.push.batchcwlogs.push.streamcwlogs.push.watcher

L'exemple ci-dessous fait passer le niveau du lecteur et de l'éditeur à WARNING, alors que la valeurpar défaut est INFO.

[loggers]keys=root,cwlogs,reader,publisher [handlers]keys=consoleHandler [formatters]keys=simpleFormatter [logger_root]level=INFOhandlers=consoleHandler [logger_cwlogs]level=INFOhandlers=consoleHandlerqualname=cwlogs.pushpropagate=0 [logger_reader]level=WARNINGhandlers=consoleHandlerqualname=cwlogs.push.readerpropagate=0 [logger_publisher]level=WARNINGhandlers=consoleHandlerqualname=cwlogs.push.publisherpropagate=0 [handler_consoleHandler]class=logging.StreamHandlerlevel=INFOformatter=simpleFormatterargs=(sys.stderr,) [formatter_simpleFormatter]format=%(asctime)s - %(name)s - %(levelname)s - %(process)d - %(threadName)s - %(message)s

use_gzip_http_content_encoding

Lorsque la valeur est définie sur true (valeur par défaut), l'encodage de contenu http gzip peut envoyerdes charges utiles compressés à CloudWatch Logs. Cela entraîne une diminution de l'utilisation del'UC, réduit les sorties réseau et diminue la latence de Put. Pour désactiver cette fonctionnalité, ajoutez

143

Amazon CloudWatch Logs Guide de l'utilisateurFichier de configuration de l'agent

use_gzip_http_content_encoding = false à la section [general] du fichier de configuration de l'agentCloudWatch Logs, puis redémarrez l'agent.

Note

Ce paramètre est uniquement disponible pour la version awscli-cwlogs 1.3.3 et les versionsultérieures.

log_group_name

Spécifie le groupe de journaux de destination. Un groupe de journaux est créé automatiquement s'iln'en existe pas déjà. Les noms des groupes de journaux peuvent comporter entre 1 et 512 caractères.Les caractères autorisés sont : a-z, A-Z, 0-9, « _ » (trait de soulignement), « - » (tiret), « / » (barreoblique) et « . » (point).

log_stream_name

Spécifie le flux de journaux de destination. Vous pouvez définir un nom de flux de journal à l'aided'une chaîne littérale, de variables prédéfinies ({instance_id}, {hostname} et {ip_address}), ou d'unecombinaison de celles-ci. Un flux de journaux est créé automatiquement s'il n'en existe pas déjà.

datetime_format

Spécifie la façon dont l'horodatage est extrait des journaux. L'horodatage est utilisé pour récupérerles événements de journaux et générer des métriques. L'heure actuelle est utilisée pour chaqueévénement de journal si datetime_format n'est pas fourni. Si la valeur datetime_format fournie n'estpas valide pour un message de journal donné, l'horodatage du dernier événement de journal dontl'horodatage a été analysé avec succès sera utilisé. En cas d'absence d'événements de journauxprécédents, l'heure actuelle est utilisée.

Les codes datetime_format courants sont répertoriées ci-dessous. Vous pouvez également utilisern'importe quel code datetime_format pris en charge par Python, datetime.strptime(). Le décalagehoraire (%z) est également pris en charge, même s'il n'est pas pris en charge par les versionsantérieures ou égales à Python 3.2, [+-]HHMM deux points(:). Pour plus d'informations, consultezstrftime() and strptime() Behavior.

%y : année sans siècle sous forme de nombre décimal auquel est ajouté un zéro. 00, 01, ..., 99

%Y : année avec siècle sous forme de nombre décimal.1970, 1988, 2001, 2013

%b : mois sous forme du nom abrégé dans la langue locale. jan, fév, ..., déc (fr_FR);

%B : mois sous forme du nom complet dans la langue locale. janvier, février, ..., décembre (fr_FR);

%m : mois sous forme de nombre décimal auquel est ajouté un zéro. 01, 02, ..., 12

%d : jour du mois sous forme de nombre décimal auquel est ajouté un zéro. 01, 02, ..., 31

%H : heure (au format 24 heures) sous forme de nombre décimal auquel est ajouté un zéro. 00, 01, ...,23

%I : heure (au format 12 heures) sous forme de nombre décimal auquel est ajouté un zéro. 01, 02, ...,12

%p : équivalent de AM ou PM dans les paramètres régionaux.

%M : minute sous forme de nombre décimal auquel est ajouté un zéro. 00, 01, ..., 59

%S : seconde sous forme de nombre décimal auquel est ajouté un zéro. 00, 01, ..., 59

%f : microseconde sous forme de nombre décimal auquel est ajouté un zéro, à gauche. 000000, ...,999999

144

Amazon CloudWatch Logs Guide de l'utilisateurFichier de configuration de l'agent

%z : décalage UTC sous la forme +HHMM ou -HHMM. +0000, -0400, +1030

Exemples de formats :

Syslog: '%b %d %H:%M:%S', e.g. Jan 23 20:59:29

Log4j: '%d %b %Y %H:%M:%S', e.g. 24 Jan 2014 05:00:00

ISO8601: '%Y-%m-%dT%H:%M:%S%z', e.g. 2014-02-20T05:20:20+0000

time_zone

Spécifie le fuseau horaire de l'horodatage de l'événement de journal. Les deux valeurs prises encharge sont UTC et LOCAL. La valeur par défaut est LOCAL. Elle est utilisée s'il n'est pas possible dedéduire le fuseau horaire d'après datetime_format.

file

Spécifie les fichiers journaux que vous souhaitez transférer à CloudWatch Logs. file peut pointervers un fichier spécifique ou plusieurs fichiers (à l'aide de caractères génériques tels que /var/log/system.log*). Seul le dernier fichier est transmis à CloudWatch Logs, selon l'heure de modificationdu fichier. Nous vous recommandons d'utiliser des caractères génériques pour spécifier une sériede fichiers du même type, comme access_log.2014-06-01-01, access_log.2014-06-01-02 et ainside suite, mais pas pour différents types de fichiers, comme access_log_80 et access_log_443. Pourspécifier plusieurs types de fichiers, ajoutez une autre entrée de flux de journaux dans le fichier deconfiguration, afin que chaque type de fichier journal soit envoyé dans un flux de journal différent. Lesfichiers zippés ne sont pas pris en charge.

file_fingerprint_lines

Spécifie la plage de lignes pour identifier un fichier. Les valeurs valides sont soit un nombre, soit deuxnombres séparés par un tiret, par exemple, « 1 », « 2-5 ». La valeur par défaut est « 1 ». La premièreligne est utilisée pour calculer l'empreinte. Les lignes d'empreinte ne sont pas envoyées à CloudWatchLogs, sauf si toutes les lignes spécifiées sont disponibles.

multi_line_start_pattern

Spécifie le modèle pour identifier le début d'un message de journal. Un message de journalest composé de plusieurs lignes : une ligne correspondant au modèle et les lignes suivantesqui ne correspondent pas au modèle. Les valeurs valides sont les expressions régulières ou{datetime_format}. Lorsque vous utilisez {datetime_format}, l'option datetime_format doit être spécifiée.La valeur par défaut est « ^[^\s] ». Ainsi, toute ligne commençant par un caractère autre qu'un espaceferme le message de journal précédent et commence un nouveau message de journal.

initial_position

Spécifie l'endroit où commencer à lire les données (start_of_file ou end_of_file). La valeur par défautest start_of_file. Utilisé uniquement si aucun état n'est conservé pour ce flux de journaux.

encoding

Spécifie l'encodage du fichier journal pour que le fichier puisse être lu correctement. La valeur pardéfaut est utf_8. L'encodage pris en charge par Python codecs.decode() peut être utilisé ici.

Warning

Le fait de spécifier un encodage incorrect peut entraîner une perte de données, car lescaractères qui ne peuvent pas être décodés seront remplacés par un autre caractère.

Voici une liste d'encodages courants :

ascii, big5, big5hkscs, cp037, cp424, cp437, cp500, cp720, cp737, cp775,cp850, cp852, cp855, cp856, cp857, cp858, cp860, cp861, cp862, cp863, cp864,cp865, cp866, cp869, cp874, cp875, cp932, cp949, cp950, cp1006, cp1026,cp1140, cp1250, cp1251, cp1252, cp1253, cp1254, cp1255, cp1256, cp1257,

145

Amazon CloudWatch Logs Guide de l'utilisateurUtilisation de l'agent CloudWatch

Logs avec les proxys HTTP

cp1258, euc_jp, euc_jis_2004, euc_jisx0213, euc_kr, gb2312, gbk, gb18030,hz, iso2022_jp, iso2022_jp_1, iso2022_jp_2, iso2022_jp_2004, iso2022_jp_3,iso2022_jp_ext, iso2022_kr, latin_1, iso8859_2, iso8859_3, iso8859_4,iso8859_5, iso8859_6, iso8859_7, iso8859_8, iso8859_9, iso8859_10,iso8859_13, iso8859_14, iso8859_15, iso8859_16, johab, koi8_r, koi8_u,mac_cyrillic, mac_greek, mac_iceland, mac_latin2, mac_roman, mac_turkish,ptcp154, shift_jis, shift_jis_2004, shift_jisx0213, utf_32, utf_32_be,utf_32_le, utf_16, utf_16_be, utf_16_le, utf_7, utf_8, utf_8_sig

buffer_duration

Spécifie la durée du regroupement des événements de journaux. La valeur minimale est 5 000 m et lavaleur par défaut est 5 000 ms.

batch_count

Spécifie le nombre maximal d'événements de journaux dans un lot. La valeur maximale est 10 000. Lavaleur par défaut est 10 000.

batch_size

Spécifie la taille maximale des événements de journaux dans un lot, en octets. La taille maximale est1 048 576 octets. La valeur par défaut est 1 048 576 octets. Cette taille est calculée comme étant lasomme de tous les messages d'événement au format UTF-8, plus 26 octets pour chaque événementde journal.

Utilisation de l'agent CloudWatch Logs avec lesproxys HTTP

Vous pouvez utiliser l'agent CloudWatch Logs avec les proxys HTTP.Note

Les proxys HTTP sont pris en charge dans les versions awslogs-agent-setup.py 1.3.8 ouultérieures.

Pour utiliser l'agent CloudWatch Logs avec les proxys HTTP

1. Effectuez l'une des actions suivantes :

a. S'il s'agit d'une nouvelle installation de l'agent CloudWatch Logs, exécutez les commandessuivantes :

curl https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py -O

sudo python awslogs-agent-setup.py --region us-east-1 --http-proxy http://your/proxy --https-proxy http://your/proxy --no-proxy 169.254.169.254

Pour conserver l'accès au service de métadonnées Amazon EC2 sur les instances EC2, utilisez--no-proxy 169.254.169.254 (recommandé). Pour plus d'informations, consultez Métadonnéesd'instance et données utilisateur dans le Amazon EC2 Guide de l'utilisateur pour les instancesLinux.

Dans les valeurs pour http-proxy et https-proxy, vous spécifiez la totalité de l'URL.b. S'il s'agit d'une installation existante de l'agent CloudWatch Logs, modifiez /var/awslogs/etc/

proxy.conf et ajoutez vos proxys :

146

Amazon CloudWatch Logs Guide de l'utilisateurCloisonnement des fichiers de

configuration de l'agent CloudWatch Logs

HTTP_PROXY=HTTPS_PROXY=NO_PROXY=

2. Redémarrez l'agent pour que les modifications prennent effet :

sudo service awslogs restart

Si vous utilisez Amazon Linux 2, utilisez la commande suivante pour redémarrer l'agent :

sudo service awslogsd restart

Cloisonnement des fichiers de configuration del'agent CloudWatch Logs

Si vous utilisez awslogs-agent-setup.py version 1.3.8 ou ultérieure avec awscli-cwlogs version 1.3.3ou ultérieure, vous pouvez importer différentes configurations de flux pour différents composantsindépendamment les uns des autres en créant des fichiers de configuration supplémentaires dans lerépertoire /var/awslogs/etc/config/. Lorsque l'agent CloudWatch Logs démarre, il inclut les configurationsde flux dans ces fichiers de configuration supplémentaires. Les propriétés de configuration de la section[general] doivent être définies dans le fichier de configuration principal (/var/awslogs/etc/awslogs.conf)et seront ignorées dans les fichiers de configuration supplémentaires enregistrés dans le répertoire /var/awslogs/etc/config/.

Si vous n'avez pas de répertoire /var/awslogs/etc/config/ car vous avez installé l'agent avec rpm, vouspouvez utiliser le répertoire /etc/awslogs/config/ à la place.

Redémarrez l'agent pour que les modifications prennent effet :

sudo service awslogs restart

Si vous utilisez Amazon Linux 2, utilisez la commande suivante pour redémarrer l'agent :

sudo service awslogsd restart

FAQ sur l'agent CloudWatch LogsQuels sont les types de rotations de fichier pris en charge ?

Les mécanismes de rotation de fichier suivants sont pris en charge :• Ajout d'un suffixe numérique aux noms des fichiers journaux existants, puis recréation du fichier

journal vide d'origine. Par exemple, /var/log/syslog.log est renommé /var/log/syslog.log.1. Si /var/log/syslog.log.1 existe déjà d'une rotation précédente, il est renommé /var/log/syslog.log.2.

• Troncation du fichier journal d'origine après la création d'une copie. Par exemple, /var/log/syslog.logest copié dans /var/log/syslog.log.1 et /var/log/syslog.log est tronqué. Cela peut entraîner une pertede données. Soyez prudent lors de l'utilisation de ce mécanisme de rotation de fichier.

• Création d'un fichier avec un modèle commun à l'ancien. Par exemple, /var/log/syslog.log.2014-01-01 est conservé et /var/log/syslog.log.2014-01-02 est créé.

147

Amazon CloudWatch Logs Guide de l'utilisateurFAQ sur l'agent CloudWatch Logs

L'empreinte (ID de la source) du fichier est calculée en hachant la clé du flux de journal et la premièreligne du contenu du fichier. Pour remplacer ce comportement, l'option file_fingerprint_lines peut êtreutilisée. Lorsque la rotation de fichier se produit, le nouveau fichier doit comporter le nouveau contenuet aucun contenu ne doit être ajouté à l'ancien fichier. L'agent transfère le nouveau fichier une fois qu'ila terminé de lire l'ancien.

Comment déterminer la version de l'agent que j'utilise ?

Si vous avez utilisé le script d'installation pour installer l'agent CloudWatch Logs vous pouvez utiliser /var/awslogs/bin/awslogs-version.sh pour vérifier la version de l'agent que vous utilisez. Vous pouvezainsi afficher la version de l'agent et ses principales dépendances. Si vous avez utilisé yum pourinstaller l'agent CloudWatch Logs, vous pouvez utiliser « yum info awslogs » et « yum info aws-cli-plugin-cloudwatch-logs » pour vérifier la version de l'agent CloudWatch Logs et le plug-in.

Comment les entrées de journaux sont-elles converties en événements de journaux ?

Les événements de journaux contiennent deux propriétés : l'horodatage du moment où l'événements'est produit et le message brut du journal. Par défaut toute ligne commençant par un caractèreautre qu'un espace ferme le message de journal précédent, le cas échéant, et commence unnouveau message de journal. Pour remplacer ce comportement, multi_line_start_pattern peutêtre utilisé et n'importe quelle ligne correspondant au modèle commence un nouveau messagede journal. Le modèle peut être n'importe quelle expression régulière ou « {datetime_format} ».Par exemple, si la première ligne de chaque message de journal contient un horodatage comme« 2014-01-02T13:13:01Z », multi_line_start_pattern peut être défini sur « \d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z ». Pour simplifier la configuration, la variable « {datetime_format} » peut être utiliséesi l'option datetime_format a été spécifiée. Pour le même exemple, si l'option datetime_format estdéfinie sur « %Y-%m-%dT%H:%M:%S%z », alors multi_line_start_pattern peut simplement être« {datetime_format} ».

L'heure actuelle est utilisée pour chaque événement de journal si datetime_format n'est pas fourni.Si la valeur datetime_format fournie n'est pas valide pour un message de journal donné, l'horodatagedu dernier événement de journal dont l'horodatage a été analysé avec succès sera utilisé. Encas d'absence d'événements de journaux précédents, l'heure actuelle est utilisée. Un messaged'avertissement est enregistré lorsqu'un événement de journal utilise l'heure actuelle ou l'heure del'événement de journal précédent.

Les horodatages sont utilisés pour récupérer les événements de journaux et générer des métriques.Ainsi, si vous spécifiez un format incorrect, les événements des journaux peuvent ne plus êtrerécupérables et générer des métriques incorrectes.

Comment les événements de journaux sont-ils regroupés par lot ?

Lorsque l'une des conditions suivantes est remplie, un lot devient plein et est publié :1. La durée buffer_duration s'est écoulée depuis l'ajout du premier événement de journal.2. Moins de batch_size d'événements de journaux ont été accumulés, mais l'ajout du nouvel

événement de journal entraîne le dépassement défini par batch_size.3. Le nombre d'événements de journaux a atteint la valeur définie dans batch_count.4. Les événements de journaux du lot ne s'étendent pas sur plus de 24 heures, mais l'ajout du nouvel

événement de journal entraîne le dépasse la limite de 24 heures.Pour quelle raison des entrées de journal, des événements de journaux ou des lots seraient-ils ignorés outronqués ?

Pour respecter la contrainte de l'opération PutLogEvents, un événement de journal ou un lot peutêtre ignoré à cause des problèmes suivants.

Note

L'agent CloudWatch Logs écrit un avertissement dans le journal lorsque des données sontignorées.

1. Si la taille d'un événement de journal dépasse 256 Ko, ce dernier sera complètement ignoré.

148

Amazon CloudWatch Logs Guide de l'utilisateurFAQ sur l'agent CloudWatch Logs

2. Si l'horodatage d'un événement de journal est supérieur à 2 heures par rapport à l'heure actuelle,l'événement de journal est ignoré.

3. Si l'horodatage d'un événement de journal est antérieur de plus de 14 jours au jour actuel,l'événement de journal est ignoré.

4. Si un événement de journal est antérieur à la période de conservation du groupe de journaux,l'ensemble du lot est ignoré.

5. Si le lot des événements de journaux d'une seule requête PutLogEvents s'étend sur plus de24 heures, l'opération PutLogEvents échoue.

L'arrêt de l'agent entraîne-t-il la perte ou la duplication de données ?

Non, à condition que le fichier d'état soit disponible et qu'aucune rotation de fichier ne se soit produitedepuis la dernière exécution. L'agent CloudWatch Logs peut reprendre là où il s'est arrêté et continuerà transmettre les données.

Puis-je pointer différents fichiers journaux depuis un seul ou plusieurs hôtes vers le même flux dejournaux ?

La configuration de plusieurs sources de journal pour envoyer des données dans un flux de journalunique n'est pas prise en charge.

Quels appels d'API l'agent effectue-t-il (ou quelles actions dois-je ajouter à ma stratégie IAM) ?

L'agent CloudWatch Logs requiert les opérations CreateLogGroup, CreateLogStream,DescribeLogStreams et PutLogEvents. Si vous utilisez le dernier agent, DescribeLogStreamsn'est pas nécessaire. Consultez l'exemple de stratégie IAM ci-dessous.

{"Version": "2012-10-17","Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:*:*:*" ] } ]}

Je ne souhaite pas que l'agent CloudWatch Logs crée automatiquement des groupes de journaux ou desflux de journaux. Comment puis-je empêcher l'agent de recréer des groupes de journaux et des flux dejournaux ?

Dans votre stratégie IAM, vous pouvez limiter l'agent afin qu'il puisse uniquement effectuer lesopérations suivantes : DescribeLogStreams, PutLogEvents.

Avant de révoquer les autorisations CreateLogStream et CreateLogGroup à partir de l'agent,veillez à créer à la fois les groupes de journaux et les flux de journaux que vous souhaitez que l'agentutilise. L'agent de journaux ne peut pas créer de flux de journaux dans un groupe de journaux quevous avez créé, sauf s’il dispose des autorisations CreateLogGroup et CreateLogStream.

Quels journaux consulter pour résoudre les problèmes ?

Le journal d'installation de l'agent est enregistré à l'adresse /var/log/awslogs-agent-setup.loget le journal de l'agent à l'adresse /var/log/awslogs.log.

149

Amazon CloudWatch Logs Guide de l'utilisateurIndicateurs CloudWatch Logs

Surveillance de l'utilisation avec desmétriques CloudWatch

CloudWatch Logs envoie les métriques à Amazon CloudWatch toutes les minutes.

Indicateurs CloudWatch LogsL'espace de noms AWS/Logs inclut les métriques suivantes.

Métrique Description

IncomingBytes Volume des événements de journal en octets décompressés téléchargés versCloudWatch Logs. Lorsqu'il est utilisé avec la dimension LogGroupName,il s'agit du volume des événements de journal en octets décompressés ettéléchargés vers le groupe de journaux.

Dimensions valides : LogGroupName

Statistique valide : somme

Unités : octets

IncomingLogEvents Nombre d’événements journaux téléchargés sur CloudWatch Logs.Lorsqu'il est utilisé avec la dimension LogGroupName, il s'agit du nombred’événements de journal téléchargés vers le groupe de journaux.

Dimensions valides : LogGroupName

Statistique valide : somme

Unités : aucune

ForwardedBytes Volume des événements de journal en octets compressés transférés vers ladestination de l'abonnement.

Dimensions valides : LogGroupName, DestinationType, FilterName

Statistique valide : somme

Unités : octets

ForwardedLogEvents Nombre d’événements de journaux envoyés à destination de l'abonnement.

Dimensions valides : LogGroupName, DestinationType, FilterName

Statistique valide : somme

Unités : aucune

150

Amazon CloudWatch Logs Guide de l'utilisateurDimensions pour les métriques CloudWatch Logs

Métrique Description

DeliveryErrors Nombre d’événements de journal pour lequel CloudWatch Logs a rencontréune erreur lors de la transmission des données dans la destinationd'abonnement.

Dimensions valides : LogGroupName, DestinationType, FilterName

Statistique valide : somme

Unités : aucune

DeliveryThrottling Nombre d’événements de journal pour lequel CloudWatch Logs a été restreintlors de la transmission des données dans la destination d'abonnement.

Dimensions valides : LogGroupName, DestinationType, FilterName

Statistique valide : somme

Unités : aucune

Dimensions pour les métriques CloudWatch LogsLes dimensions que vous pouvez utiliser avec les métriques CloudWatch Logs figurent ci-dessous.

Dimension Description

LogGroupName Nom du groupe de journaux CloudWatch Logs pour lequel afficherles métriques.

DestinationType Destination d'abonnement des données CloudWatch Logs, pouvantêtre AWS Lambda, Amazon Kinesis Data Streams ou AmazonKinesis Data Firehose.

FilterName Nom du filtre d'abonnement qui transfère des données du groupede journaux vers la destination. Le nom du filtre d'abonnementest automatiquement converti par CloudWatch au format ASCIIet les caractères non pris en charge sont remplacés par un pointd'interrogation ( ?).

151

Amazon CloudWatch Logs Guide de l'utilisateur

Quotas CloudWatch LogsCloudWatch Logs présente les quotas suivants :

Ressource Quota par défaut

Taille de lot 1 Mo (maximum). Ce quota ne peut pas être modifié.

Archivage des données Jusqu'à 5 Go d'archivage de données gratuits. Ce quota nepeut pas être modifié.

CreateLogStream 50 transactions par seconde (TPS/compte/région), après quoiles transactions sont limitées. Vous pouvez demander uneaugmentation de quota.

DescribeLogGroups 5 transactions par seconde (TPS/compte/région). Vouspouvez demander une augmentation de quota.

DescribeLogStreams 5 transactions par seconde (TPS/compte/région). Vouspouvez demander une augmentation de quota.

Champs de journal détectés CloudWatch Logs Insights peuvent détecter 1 000 champsd'événement de journal au maximum dans un groupe dejournaux. Ce quota ne peut pas être modifié.

Pour plus d'informations, consultez Champs de journaux etdétectés pris en charge (p. 35).

Champs de journal extraits dans lesjournaux JSON

CloudWatch Logs Insights permet d'extraire un maximum de100 champs d'événements de journal à partir d'un journalJSON. Ce quota ne peut pas être modifié.

Pour plus d'informations, consultez Champs de journaux etdétectés pris en charge (p. 35).

Taille de l'événement 256 Ko (maximum). Ce quota ne peut pas être modifié.

Tâche d'exportation Une tâche d'exportation active (en attente ou en coursd'exécution) à la fois, par compte. Ce quota ne peut pas êtremodifié.

FilterLogEvents 5 transactions par seconde (TPS)/compte/région. Ce quota nepeut pas être modifié.

GetLogEvents 10 demandes par seconde par compte et par région. Ce quotane peut pas être modifié.

Nous vous recommandons des abonnements si vous traitezen permanence de nouvelles données. Si vous avez besoinde données d'historique, nous vous recommandons d'exportervos données vers Amazon S3.

Données entrantes Jusqu'à 5 Go de données entrantes gratuits. Ce quota ne peutpas être modifié.

152

Amazon CloudWatch Logs Guide de l'utilisateur

Ressource Quota par défaut

Groupes de journaux 20 000 groupes de journaux par compte et par région. Vouspouvez demander une augmentation de quota.

Le nombre de flux de journaux pouvant appartenir à ungroupe de journaux est illimité.

Filtres de métriques 100 par groupe de journaux. Ce quota ne peut pas êtremodifié.

Métriques de format de métriqueintégrées

100 métriques par événement de journal et 9 dimensions parmétrique. Pour plus d'informations sur le format des métriquesintégrées, voir les informations relative à la spécification duformat des métriques intégrées dans le Guide de l'utilisateurAmazon CloudWatch.

PutLogEvents 5 demandes par seconde et par flux de journal. Les autresdemandes sont bloquées. Ce quota ne peut pas être modifié.

La taille maximale de lot d'une demande de PutLogEvents estde 1 Mo.

1 500 transactions par seconde par compte et par région, saufpour les régions suivantes où le quota est de 800 transactionspar seconde par compte et par région : USA Est (Ohio), USAOuest (Californie du Nord), Afrique (Le Cap), Asie-Pacifique(Hong Kong), Asie-Pacifique (Mumbai) Asie-Pacifique (Osaka-Local), Asie-Pacifique (Séoul), Asie-Pacifique (Singapour),Asie-Pacifique (Sydney), Asie-Pacifique (Tokyo), Canada(Centre), Europe (Francfort), Europe (Londres), Moyen-Orient(Bahreïn) et Amérique du Sud (São Paulo). Vous pouvezdemander une augmentation de quota.

Délai d'exécution de la requête Les requêtes dans Insights CloudWatch Logs expirent après15 minutes. Cette limite de temps ne peut pas être modifiée.

Groupes de journaux interrogés 20 groupes de journaux au maximum peuvent être interrogésdans une seule requête CloudWatch Logs Insights. Ce quotane peut pas être modifié.

Simultanéité des requêtes 4 requêtes CloudWatch Logs Insights simultanées aumaximum, y compris des requêtes ajoutés aux tableaux debord. Vous pouvez demander une augmentation de quota.

Disponibilité des résultats de la requête Les résultats d'une requête peuvent être récupérés pendant7 jours. Ce temps de disponibilité ne peut pas être modifié.

Résultats de la requête affichés dans laconsole

Par défaut, jusqu'à 1 000 lignes de résultats de requête sontaffichées sur la console. Vous pouvez utiliser la commandelimit dans une requête pour augmenter ce nombre jusqu'à10 000 lignes. Pour plus d'informations, consultez Syntaxe derequête CloudWatch Logs Insights (p. 41).

Filtres d'abonnements 1 par groupe de journaux. Ce quota ne peut pas être modifié.

153

Amazon CloudWatch Logs Guide de l'utilisateur

Historique du documentLe tableau ci-après décrit les modifications importantes apportées dans chaque version du guide del'utilisateur CloudWatch Logs à partir de juin 2018. Pour recevoir les notifications des mises à jour de cettedocumentation, abonnez-vous à un flux RSS.

update-history-change update-history-description update-history-date

Publication de CloudWatch LogsInsights (p. 154)

Vous pouvez utiliser CloudWatchLogs Insights pour rechercheret analyser de façon interactivevos données de journaux. Pourplus d’informations, consultezAnalyser vos données dejournaux avec CloudWatchLogs Insights dans le AmazonCloudWatch Logs User Guide

November 27, 2018

Prise en charge des pointsde terminaison AmazonVPC (p. 154)

Vous pouvez maintenant établirune connexion privée entre votreVPC et CloudWatch Logs. Pourplus d'informations, consultezUtilisation de CloudWatch Logsavec les points de terminaison deVPC d'interface dans le AmazonCloudWatch Logs User Guide.

June 28, 2018

Le tableau suivant décrit les modifications importantes apportées au Guide de l'utilisateur AmazonCloudWatch Logs.

Modification Description Date de parution

Points determinaison deVPC d'interface

Dans certaines régions, vous pouvez utiliser unpoint de terminaison d'un VPC d'interface pourempêcher que le trafic entre votre Amazon VPCet CloudWatch Logs ne quitte le réseau Amazon.Pour plus d'informations, consultez Utilisation deCloudWatch Logs avec les points de terminaison deVPC d'interface (p. 136).

7 mars 2018

Journaux derequêtes DNSRoute 53

Vous pouvez utiliser CloudWatch Logs pour stockerdes journaux concernant les requêtes DNS reçuespar Route 53. Pour plus d'informations, consultezPrésentation de Amazon CloudWatch Logs (p. 1) ouJournalisation des requêtes DNS dans le AmazonRoute 53 Manuel du développeur.

7 septembre 2017

Balisage desgroupes dejournaux

Vous pouvez utiliser des balises pour classer vosgroupes de journaux par catégories. Pour plusd'informations, consultez Balisage des groupes dejournaux dans Amazon CloudWatch Logs (p. 59).

13 décembre 2016

154

Amazon CloudWatch Logs Guide de l'utilisateur

Modification Description Date de parution

Améliorationsapportées à laconsole

A partir des graphiques de métriques, vous pouvezaccéder aux groupes de journaux associés. Pour plusd'informations, consultez Transition des métriques auxjournaux (p. 84).

7 novembre 2016

Amélioration de lafacilité d'utilisationde la console

Nous avons amélioré l'environnement afin de faciliterla recherche, les filtres et le dépannage. Par exemple,vous pouvez maintenant filtrer vos données de journalen fonction d'une plage de dates et d'heures. Pour plusd'informations, consultez Affichage des données dejournal envoyées à CloudWatch Logs (p. 58).

29 août 2016

Ajout de laprise en charged'AWS CloudTrailpour AmazonCloudWatchLogs et nouvellesmétriquesCloudWatch Logs

Ajout de la prise en charge d'AWS CloudTrail pourCloudWatch Logs. Pour plus d'informations, consultezJournalisation des appels d'API Amazon CloudWatchLogs dans AWS CloudTrail (p. 139).

10 mars 2016

Ajout de la priseen charge del'exportationCloudWatch Logsvers Amazon S3

Ajout de la prise en charge de l'exportation desdonnées CloudWatch Logs vers Amazon S3. Pour plusd'informations, consultez Exportation de données dejournal vers Amazon S3 (p. 107).

7 décembre 2015

Ajout de la priseen charge de lajournalisationd'événementsAWS CloudTraildans AmazonCloudWatch Logs.

Vous pouvez créer des alarmes dans CloudWatch etrecevoir des notifications d'une activité API particulièretelle que capturée par CloudTrail, puis utiliser cesnotifications à des fins de dépannage.

10 novembre 2014

Ajout de la prise encharge de AmazonCloudWatch Logs

Vous pouvez utiliser Amazon CloudWatch Logs poursurveiller, stocker et atteindre vos fichiers journauxsystème, application et personnalisés, à partir devos instances Amazon Elastic Compute Cloud(Amazon EC2) ou autres sources. Vous pouvez alorsextraire les données de journaux associées à partirde CloudWatch Logs à l'aide de la console AmazonCloudWatch, des commandes CloudWatch Logs del'interface de ligne de commande AWS ou du SDKCloudWatch Logs. Pour plus d'informations, consultezPrésentation de Amazon CloudWatch Logs (p. 1).

10 juillet 2014

155

Amazon CloudWatch Logs Guide de l'utilisateur

Glossaire AWSPour la terminologie AWS la plus récente, consultez le Glossaire AWS dans le document AWS GeneralReference.

156