TawaKnow
AWSDevOpsContribuer

© 2025 TawaKnow. Tous droits réservés.

Mentions LégalesPolitique de confidentialitéContribuer
Retour au cours

AWS Logs

Progression du cours0%

Événement de log (Log Event)

Un événement de log est un enregistrement d'une activité effectuée par une application ou une ressource surveillée. Dans CloudWatch Logs, un événement de log est composé de deux propriétés principales :

  1. Horodatage (Timestamp) : La date et l'heure auxquelles l'événement s'est produit.
  2. Message brut (Raw Event Message) : Le contenu de l'événement, qui doit être encodé en UTF-8.

Exemple de message brut

Voici un exemple de message brut provenant d'un serveur Apache, structuré dans un format de journalisation lisible :

{
  "time": "2023-10-01T12:00:00Z",
  "remoteIP": "192.168.1.1",
  "host": "example.com",
  "method": "GET",
  "path": "/home",
  "protocol": "HTTP/1.1",
  "query": "search=cloudwatch",
  "status": 200,
  "userAgent": "Mozilla/5.0",
  "referer": "https://www.google.com"
}

Détails des champs

  • time : Horodatage de la requête.
  • remoteIP : Adresse IP du client.
  • host : Nom d'hôte du serveur.
  • request : Détails de la requête HTTP.
  • query : Paramètres de la requête (le cas échéant).
  • method : Méthode HTTP utilisée (GET, POST, etc.).
  • status : Code de statut HTTP renvoyé (par exemple, 200 pour une requête réussie).
  • userAgent : Navigateur ou client utilisé pour la requête.
  • referer : URL de la page d'où provient la requête.

Pourquoi structurer les logs ?

  • Facilité d'analyse : Les logs structurés (comme JSON) permettent une extraction et une analyse plus simples des données.
  • Compatibilité avec CloudWatch : CloudWatch Logs peut facilement interpréter et indexer les logs structurés, ce qui facilite la recherche et la création de métriques.
  • Dépannage : Les logs structurés fournissent des informations détaillées pour identifier et résoudre les problèmes.

Utilisation dans CloudWatch Logs

  1. Collecte des logs : Les logs sont envoyés à CloudWatch Logs, où ils sont stockés dans des flux de logs (log streams) au sein de groupes de logs (log groups).
  2. Filtrage et recherche : Vous pouvez utiliser des filtres pour rechercher des événements spécifiques (par exemple, toutes les requêtes avec un code de statut 500).
  3. Création de métriques : Vous pouvez transformer des événements de log en métriques CloudWatch pour surveiller des indicateurs clés (par exemple, le nombre d'erreurs 500 par minute).

Exemple de cas d'utilisation

Imaginez que vous surveillez un serveur web Apache :

  • Vous collectez des logs structurés contenant des informations sur chaque requête.
  • Vous créez une métrique dans CloudWatch pour compter les requêtes ayant un code de statut 500 (erreur serveur).
  • Vous configurez une alerte pour être notifié si le nombre d'erreurs 500 dépasse un certain seuil.

En résumé, un événement de log est un enregistrement essentiel pour surveiller et analyser les activités de vos applications et ressources. Avec des logs structurés et CloudWatch Logs, vous pouvez transformer ces événements en informations exploitables pour améliorer la performance et la fiabilité de vos systèmes.

Flux de logs (Log Stream)

Un flux de logs (log stream) est une séquence d'événements de logs qui partagent la même source. Plus précisément, un flux de logs représente généralement la séquence d'événements provenant d'une instance d'application ou d'une ressource surveillée.


Exemple de flux de logs

Prenons l'exemple d'un journal d'accès Apache (Apache access log) sur un hôte spécifique. Voici ce que vous pourriez voir dans un flux de logs :

2023-10-01T12:00:00Z 192.168.1.1 GET /home HTTP/1.1 200 Mozilla/5.0
2023-10-01T12:00:01Z 192.168.1.2 GET /about HTTP/1.1 404 curl/7.64.1
2023-10-01T12:00:02Z 192.168.1.3 POST /submit HTTP/1.1 500 Chrome/91.0

Détails des champs

  • Horodatage (Timestamp) : La date et l'heure de l'événement.
  • Adresse IP (remoteIP) : L'adresse IP du client.
  • Méthode HTTP (method) : La méthode HTTP utilisée (GET, POST, etc.).
  • Chemin de la requête (request) : Le chemin de la ressource demandée.
  • Protocole HTTP (protocol) : La version du protocole HTTP.
  • Code de statut (status) : Le code de statut HTTP renvoyé (par exemple, 200 pour une requête réussie).
  • Agent utilisateur (userAgent) : Le navigateur ou le client utilisé pour la requête.

Caractéristiques d'un flux de logs

  1. Source unique : Un flux de logs est associé à une seule source, comme une instance d'application ou un serveur spécifique.
  2. Séquence chronologique : Les événements sont enregistrés dans l'ordre où ils se produisent.
  3. Répétition des informations : Des champs comme l'horodatage et le message apparaissent de manière répétée dans chaque événement.

Utilisation dans CloudWatch Logs

  1. Groupes de logs (Log Groups) : Les flux de logs sont regroupés dans des groupes de logs, qui organisent les logs par application, service ou ressource.
  2. Surveillance et analyse : Vous pouvez surveiller les flux de logs en temps réel, appliquer des filtres pour rechercher des événements spécifiques, ou créer des métriques basées sur les logs.
  3. Exemple concret :
    • Si vous avez plusieurs serveurs Apache, chaque serveur peut avoir son propre flux de logs.
    • Vous pouvez regrouper tous ces flux dans un seul groupe de logs appelé ApacheAccessLogs.
    • Ensuite, vous pouvez créer des métriques pour surveiller le nombre de requêtes par minute ou le taux d'erreurs.

Pourquoi utiliser des flux de logs ?

  • Organisation : Les flux de logs permettent de structurer les logs par source, ce qui facilite la surveillance et le dépannage.
  • Granularité : Vous pouvez surveiller des instances spécifiques (par exemple, un serveur web particulier) sans être submergé par les logs d'autres instances.
  • Intégration avec CloudWatch : Les flux de logs s'intègrent parfaitement avec les fonctionnalités de CloudWatch, comme les filtres de métriques et les alarmes.

Exemple de cas d'utilisation

Imaginez que vous gérez une application web hébergée sur plusieurs serveurs :

  • Chaque serveur génère son propre flux de logs.
  • Vous regroupez tous ces flux dans un groupe de logs appelé WebAppLogs.
  • Vous créez une métrique pour compter les erreurs 500 dans tous les flux de logs.
  • Vous configurez une alerte pour être notifié si le nombre d'erreurs dépasse un certain seuil.

En résumé, un flux de logs est une séquence d'événements provenant d'une source unique, comme une instance d'application ou un serveur. Avec CloudWatch Logs, vous pouvez organiser, surveiller et analyser ces flux pour garantir la performance et la fiabilité de vos systèmes.

Groupe de logs (Log Group)

Un groupe de logs (log group) est un conteneur qui regroupe des flux de logs (log streams) partageant les mêmes paramètres de rétention, de surveillance et de contrôle d'accès. Chaque flux de logs doit appartenir à un groupe de logs.

Déploiement de l'agent CloudWatch

AWS Systems Manager State Manager

State Manager, une fonctionnalité d'AWS Systems Manager, est un service de gestion de configuration sécurisé et évolutif. Il automatise le processus de maintien de votre infrastructure Amazon EC2 et hybride dans un état que vous définissez.

Avec Systems Manager, vous pouvez contrôler les détails de configuration, tels que les configurations de serveur, les définitions d'antivirus, les paramètres de pare-feu, et bien plus encore.

Vous pouvez définir des politiques de configuration pour vos serveurs via la console de gestion AWS ou utiliser des scripts existants, AWS Tools for PowerShell ou des playbooks Ansible directement depuis GitHub ou des buckets Amazon Simple Storage Service (Amazon S3).

Systems Manager applique automatiquement vos configurations sur vos instances à un moment et une fréquence définis.

Vous pouvez interroger Systems Manager à tout moment pour voir l'état des configurations de vos instances, vous offrant une visibilité à la demande sur votre état de conformité.

Installer et démarrer l'agent CloudWatch

Pour installer et démarrer l'agent CloudWatch, suivez les étapes suivantes :

  1. Créer une association State Manager qui télécharge et installe l'agent CloudWatch sur les cibles que vous choisissez lors de la configuration.
  2. Cibler les instances par leurs étiquettes (tags). Par exemple, vous pouvez choisir des instances manuellement, sélectionner un groupe de ressources ou choisir toutes les instances comme cible.
  3. Télécharger et installer le package AmazonCloudWatchAgent. Utilisez un document d'automatisation Systems Manager appelé AWS-ConfigureAWSPackage.
  4. Suivre la progression de l'installation et vérifier l'état de conformité de vos cibles. Toutes les instances qui n'installent pas correctement l'agent CloudWatch sont signalées comme non conformes.

Introduction à CloudWatch Logs et Contributor Insights

Objectifs d'apprentissage

Dans ce cours, vous apprendrez à :

  1. Décrire comment Amazon CloudWatch Logs et Contributor Insights peuvent aider à automatiser l'analyse et l'observation des applications, des services et des logs pour comprendre ce qui impacte le système.
  2. Rappeler les options personnalisables des tableaux de bord CloudWatch.
  3. Reconnaître comment utiliser Anomaly Detection, les alarmes Amazon CloudWatch et les alertes pour comparer les métriques aux données passées.
  4. Lister les fonctionnalités clés de CloudTrail.
  5. Expliquer comment EventBridge utilise les événements pour connecter les applications et les ressources.
  6. Identifier comment utiliser les VPC Flow Logs pour capturer des informations sur le trafic IP entrant et sortant des interfaces réseau.
  7. Définir les avantages d'AWS Compute Optimizer.

Amazon CloudWatch offre une vue unifiée de la santé opérationnelle et de la visibilité de vos ressources AWS. Vous pouvez surveiller les applications, optimiser l'utilisation des ressources et répondre aux changements de performance.

La quantité d'informations que vous pouvez surveiller peut être écrasante, et fouiller manuellement dans les fichiers de logs peut prendre du temps. Amazon CloudWatch Logs Insights peut vous aider à automatiser tout le travail d'analyse et d'observation de vos applications, services et logs.

Instrumentation des systèmes distribués pour une visibilité opérationnelle

Pour en savoir plus sur la manière dont l'instrumentation nous aide à comprendre l'expérience que nous offrons à nos clients, sélectionnez le bouton Instrumentation.

Recherche et analyse interactive des données de logs

–

Avec CloudWatch Logs, vous pouvez exécuter des requêtes pour vous aider à répondre plus efficacement aux problèmes opérationnels. Par exemple, vous pouvez utiliser CloudWatch Logs Insights pour identifier les causes potentielles et valider les correctifs déployés si un problème survient.

Créer une observabilité à l'aide d'un langage de requête spécialisé

–

CloudWatch Logs Insights utilise un langage de requête spécialisé avec des commandes puissantes et simples pour vous aider à construire l'observabilité dont vous avez besoin. CloudWatch Logs Insights propose des exemples de requêtes, des descriptions de commandes, une auto-complétion des requêtes et une découverte des champs de logs pour vous aider à démarrer. Des exemples de requêtes sont inclus pour plusieurs types de logs de services AWS.

Découverte automatique des champs dans les logs des services AWS

–

CloudWatch Logs Insights découvre automatiquement les champs dans les logs d'autres services AWS, notamment :

  • Amazon Route 53
  • AWS Lambda
  • AWS CloudTrail
  • Amazon Virtual Private Cloud (Amazon VPC)
  • Toute application ou log personnalisé qui émet des événements de logs au format JSON.

Contributor Insights

Contributor Insights analyse des données chronologiques pour vous aider à comprendre qui ou quoi impacte votre système. Il analyse les performances des applications en identifiant les anomalies, en détectant les modèles de trafic les plus importants et en classant les principaux processus du système. Avec Contributor Insights, vous pouvez isoler, diagnostiquer et résoudre plus rapidement les problèmes lors d'événements opérationnels.

Voici quelques exemples d'utilisation de Contributor Insights dans votre environnement :

  • Identifier les hôtes problématiques
  • Détecter les utilisateurs du réseau les plus actifs
  • Trouver les URL qui génèrent le plus d'erreurs

Règles

Les règles définissent les champs de logs que vous souhaitez utiliser pour identifier les contributeurs, comme une adresse IP. Vous pouvez filtrer les données de logs pour analyser le comportement des contributeurs individuels.

Vous pouvez créer vos règles à partir de zéro ou utiliser des règles d'exemple via la console de gestion AWS.


Qu'est-ce que CloudWatch ?

CloudWatch est un service de surveillance et d'observabilité conçu pour les ingénieurs DevOps, les développeurs, les ingénieurs en fiabilité des sites (SRE), les responsables informatiques et les propriétaires de produits. CloudWatch vous fournit des données et des informations exploitables pour surveiller vos applications, répondre aux changements de performance à l'échelle du système et optimiser l'utilisation des ressources.

CloudWatch collecte des données de surveillance et opérationnelles sous forme de logs, de métriques et d'événements. Vous obtenez une vue unifiée de la santé opérationnelle et une visibilité complète sur vos ressources AWS, ainsi que sur les applications et services fonctionnant sur AWS et sur site. Vous pouvez utiliser CloudWatch pour détecter des comportements anormaux dans vos environnements, configurer des alarmes, visualiser les logs et les métriques côte à côte, prendre des actions automatisées, résoudre des problèmes et découvrir des insights pour maintenir le bon fonctionnement de vos applications.


Quels sont les avantages de CloudWatch ?

En utilisant CloudWatch, vous pouvez collecter, accéder et corréler des données telles que des métriques, des logs ou des événements sur une seule plateforme, provenant de toutes vos ressources AWS, applications et services fonctionnant sur AWS et sur site. Cela fournit une plateforme centrale pour surveiller les données provenant de multiples sources.

Collecter des métriques sur AWS et sur site

CloudWatch s'intègre nativement à plus de 70 services AWS. Ces services peuvent envoyer des données à CloudWatch avec une granularité allant jusqu'à 1 minute. Les métriques personnalisées peuvent être envoyées avec une granularité allant jusqu'à 1 seconde, offrant ainsi des graphiques plus détaillés.

Améliorer les performances opérationnelles et l'optimisation des ressources

Identifiez et traitez les comportements anormaux avec des alarmes et des actions automatisées basées sur des seuils prédéfinis ou sur des algorithmes d'apprentissage automatique (ML).

Améliorer la visibilité opérationnelle et les insights

CloudWatch fournit des tableaux de bord automatiques pour une vue opérationnelle unifiée, des données granulaires en temps réel et des références historiques. Cela peut vous aider à identifier des opportunités pour optimiser les performances et améliorer l'utilisation des ressources.

Obtenir des insights exploitables à partir des logs

Explorez, analysez et visualisez vos logs pour résoudre les problèmes opérationnels. Avec Amazon CloudWatch Logs Insights, vous ne payez que pour les requêtes que vous exécutez. CloudWatch s'adapte à votre volume de logs et à la complexité de vos requêtes, vous permettant d'obtenir des réponses en quelques secondes.

Collecter des informations est l'une des premières étapes pour un dépannage réussi.


Quels sont les concepts et la terminologie importants à connaître ?

Métrique

–

Une métrique représente un ensemble ordonné dans le temps de points de données qui sont publiés dans CloudWatch.

Espace de noms (Namespace)

–

Un espace de noms est un conteneur pour les métriques de CloudWatch.

Dimension

–

Une dimension est une paire nom/valeur qui fait partie de l'identité d'une métrique.

Point de données (Datapoint)

–

Un point de données est la valeur d'une métrique pour une période d'agrégation donnée.

Calcul de métriques (Metric math)

–

Vous pouvez utiliser le calcul de métriques pour interroger plusieurs métriques CloudWatch et utiliser des expressions mathématiques pour créer une nouvelle série temporelle basée sur ces métriques.

Tableau de bord (Dashboard)

–

Les tableaux de bord CloudWatch sont des pages d'accueil personnalisables dans la console CloudWatch que vous pouvez utiliser pour surveiller vos ressources dans une vue unique, même celles qui sont réparties dans différentes régions.

Alarme (Alarm)

–

Une alarme surveille une seule métrique sur une période de temps spécifiée et exécute une ou plusieurs actions prédéfinies, en fonction de la valeur de la métrique par rapport à un seuil au fil du temps.

Groupe de logs (Log group)

–

Un groupe de logs est un ensemble de flux de logs qui partagent les mêmes paramètres de rétention, de surveillance et de contrôle d'accès.

Flux de logs (Log stream)

–

Un flux de logs est une séquence d'événements de logs qui partagent la même source.

Horodatage des logs CloudWatch (CloudWatch Logs timestamp)

–

Il s'agit d'un horodatage de l'événement de log réel.

Événement de log (Log event)

–

Un événement de log est un enregistrement d'une activité capturée par l'application ou la ressource surveillée.

Heure d'ingestion des logs (Log ingestion time)

–

L'heure d'ingestion est le moment où CloudWatch a réellement reçu le message concernant l'événement.

Logs Insights

–

Avec CloudWatch Logs Insights, vous pouvez exécuter des requêtes pour aider à répondre aux problèmes opérationnels de manière plus efficace et efficiente.`


Limites et bonnes pratiques

  • Taille maximale d'un événement de log : 256 KB.
  • Préférez des horodatages non décroissants par flux pour préserver l'ordre.
  • Configurez une politique de rétention par groupe (par défaut : illimitée) pour maîtriser les coûts.
  • Utilisez des logs structurés (JSON) et évitez d'envoyer des PII ou secrets.
  • Créez des filtres de métriques pour dériver des indicateurs sans requêter souvent Logs Insights.

Exemples de requêtes Logs Insights

# 1) Compter les erreurs 500 par minute
fields @timestamp, status
| filter status = 500
| stats count() as errors by bin(1m)

# 2) Top 10 des user agents
fields userAgent
| stats count(*) as c by userAgent
| sort c desc
| limit 10

# 3) P95 de la latence si le champ existe
fields latency
| filter ispresent(latency)
| stats pct(latency, 95) as p95

Notes IAM pour l'agent CloudWatch

  • Attachez AmazonSSMManagedInstanceCore aux instances gérées par Systems Manager.
  • Ajoutez CloudWatchAgentServerPolicy pour permettre à l'agent d'envoyer métriques et logs.
  • Stockez la configuration amazon-cloudwatch-agent.json dans Parameter Store lorsque possible.
AWS Percentiles CloudWatchAWS Security Services