5. Monitoring & Logs (CloudWatch, Logs, Alarms)
Mettre en place une surveillance complète et une gestion centralisée des logs pour les instances EC2 afin de détecter et résoudre rapidement les problèmes.
Objectif: Objectif du composant
Obtenir une visibilité complète sur les performances et l'état des instances EC2, et être alerté en cas d'anomalie.
Paramètres: Paramètres concernés
CloudWatch Agent Collecte des métriques système et applicatives CloudWatch Logs Service de centralisation et de stockage des logs CloudWatch Alarms Déclenchement d'actions basées sur des seuils de métriques
Bonnes pratiques: Bonnes pratiques
- Activer le **CloudWatch Agent** sur toutes les instances EC2 pour collecter des métriques détaillées (RAM, utilisation disque, swap) qui ne sont pas disponibles par défaut - Configurer le **CloudWatch Agent** ou d'autres outils pour rediriger les logs applicatifs et système (ex: `/var/log/syslog`, logs Nginx, logs de cron) vers **CloudWatch Logs** pour une centralisation et une analyse faciles - Créer des **Alarmes CloudWatch** sur les métriques clés (ex: utilisation CPU > 90%, mémoire libre < 10%, I/O disque élevé) pour être alerté proactivement en cas de problème
Pièges à éviter: Pièges à éviter
- Ne pas collecter les métriques au-delà du niveau EC2 (CPU, réseau) et manquer de visibilité sur la RAM ou l'utilisation du disque - Laisser les logs uniquement sur l'instance, rendant le débogage difficile en cas de terminaison d'instance ou de problème de disque - Ne pas avoir d'alertes configurées pour les problèmes critiques, ce qui retarde la détection et la résolution des incidents
Recommandations: Recommandations par profil
Serveurs de production : Implémenter une stratégie de monitoring complète avec le **CloudWatch Agent**, la centralisation des logs et des alarmes sur toutes les métriques pertinentes Environnements de développement/test : Collecter les métriques de base et les logs pour faciliter le débogage, sans forcément le même niveau de granularité que la production Applications conteneurisées : Intégrer les logs des conteneurs directement avec CloudWatch Logs via le driver de log Docker ou les agents de conteneur
Exemples: Exemples de réglage
Installation et configuration du CloudWatch Agent via un script User Data. Création d'une alarme CloudWatch qui envoie une notification SNS si l'utilisation de la RAM dépasse 80% pendant 5 minutes. Configuration d'un groupe de logs dans CloudWatch Logs pour collecter les logs Apache.
Commandes utiles: Commandes utiles
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a status # Statut de l'agent aws logs describe-log-groups # Lister les groupes de logs aws cloudwatch describe-alarms # Lister les alarmes aws cloudwatch get-metric-statistics --namespace CWAgent --metric-name MemoryUtilization --dimensions Name=InstanceId,Value=i-xxxxxxxxxxxxxxxxx --start-time ... --end-time ... --period 300 --statistics Average
Références: Références officielles
- https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html - https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html - https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Alarms.html - https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html
