Dans le secteur industriel, le monitoring et l'optimisation des installations sont essentiels pour assurer une performance optimale et une disponibilité continue. Une startup spécialisée dans les outils de monitoring et d'optimisation d’installations industrielles faisait face à des défis majeurs avec son système de surveillance. Leur infrastructure, déployée sur des instances EC2 d'AWS, rencontrait des pannes fréquentes, notamment avec leurs serveurs Prometheus et Loki. Ils nous ont sollicités pour proposer une solution robuste afin d'améliorer leur Service Level Agreement (SLA) et l'agilité de leur système de monitoring.
Contexte
La startup propose un service SaaS propulsé par différentes applications, toutes déployées sur des instances EC2. Pour monitorer leurs services, ils utilisaient d'autres instances EC2 exécutant Prometheus et Loki. L'infrastructure était décrite avec Terraform et les serveurs étaient configurés à l'aide d'Ansible. Malgré cette automatisation, ils rencontraient des problèmes récurrents :
- Pannes fréquentes des serveurs de monitoring : Les serveurs Prometheus et surtout Loki tombaient souvent en panne en raison de fuites de mémoire non identifiées.
- Absence d'alerting et de monitoring lors des pannes : Ces interruptions laissaient le client sans visibilité sur l'état de ses services, ce qui pouvait affecter la qualité du service offert à leurs propres clients.
Le Défi
Notre mission était de proposer une solution pour :
- Éliminer les pannes fréquentes du système de monitoring.
- Améliorer le SLA et l'agilité du système.
- Fournir une solution scalable sans ajouter de complexité inutile.
- Intégrer la solution avec les services AWS déjà utilisés (Lambda, VPC, RDS).
La Solution Mise en Place
Pour répondre à ces défis, nous avons conçu et déployé un système de monitoring serverless centré autour d'AWS CloudWatch. Voici comment nous avons procédé :
- Installation de l'agent CloudWatch sur les instances EC2 : En utilisant Ansible, nous avons automatisé l'installation de l'agent CloudWatch sur chaque serveur EC2. Cet agent est configuré pour :
- Remonter les logs du serveur.
- Collecter les statistiques d'usage de base (CPU, mémoire, disque, réseau).
- Récupérer les métriques personnalisées exposées localement pour Prometheus.
- Centralisation des données dans CloudWatch : L'agent CloudWatch envoie toutes les données collectées vers CloudWatch de manière centralisée. Cela permet de :
- Éliminer le besoin de serveurs dédiés pour le monitoring (adieu les instances Prometheus et Loki sujettes aux pannes).
- Bénéficier de la scalabilité et de la haute disponibilité offertes par les services serverless d'AWS.
- Mise en place d'un système d'alerting avec CloudWatch : En exploitant les logs et les métriques désormais disponibles dans CloudWatch, nous avons configuré des alarmes pour :
- Surveiller les indicateurs clés de performance.
- Notifier les équipes concernées en cas d'anomalies ou de dépassements de seuils prédéfinis.
Les Avantages de la Solution
- Fiabilité accrue : En supprimant les points de défaillance que représentaient les serveurs de monitoring, nous avons considérablement amélioré la fiabilité du système.
- Scalabilité : La solution serverless s'adapte automatiquement à la charge, sans intervention manuelle ni gestion de l'infrastructure sous-jacente.
- Réduction des coûts : Moins d'instances EC2 à gérer signifie des coûts opérationnels et de maintenance réduits.
- Intégration simplifiée : En restant au sein de l'écosystème AWS, nous avons facilité l'intégration avec les autres services utilisés par le client (Lambda, VPC, RDS).
Conclusion
Grâce à la mise en place de ce système de monitoring serverless avec AWS CloudWatch, le client dispose désormais d'une solution fiable, scalable et économique. Cette approche a non seulement résolu les problèmes de pannes fréquentes mais a également amélioré le SLA et l'agilité de leur système de monitoring. Nous sommes fiers d'avoir pu aider cette startup à optimiser son infrastructure et à mieux servir ses propres clients.