Cet article est la suite de l’Observabilité Informatique - 1ère partie.
Après la définition, les avantages et inconvénients, les différents cas d’usages potentiels, nous allons voir plus en détails les différents outils, les éditeurs ainsi que les principales étapes pour mettre en place des solutions d’observabilité dans votre SI.
Les outils d'Observabilité
Le choix de l'outil d'observabilité adapté à vos besoins dépendra de plusieurs facteurs, tels que la taille et la complexité de votre système d'information, votre budget et vos besoins spécifiques.
Il faudra donc définir et spécifier vos besoins en co-construction avec tous les acteurs concernés afin de trouver le ou les outils le(s) plus adapté(s) aux besoins et contraintes.
Le marché des outils d'observabilité est en plein essor, avec de nombreux acteurs proposant des solutions complètes ou spécialisées. Parmi les solutions les plus populaires, on peut citer :
Plates-formes d'Observabilité Complètes
- AWS CloudWatch: Service AWS d’observabilité et de surveillance
- Google Cloud Monitoring: Service GCS qui offre de la visibilité sur les performances, la disponibilité et l'état de vos applications et de votre infrastructure.
- Azure Monitor: Service Azure d’observabilité de bout en bout pour vos applications, votre infrastructure et votre réseau.
- Open Telemetry: Open Telemetry fournit une norme Open Source unique, ainsi qu'un ensemble de technologies permettant de capturer et d'exporter les métriques, les traces et les journaux à partir de vos applications et de votre infrastructure cloud natives. Open Telemetry n’est pas fourni avec une interface utilisateur.
- Dynatrace : Une plateforme d'observabilité full-stack qui offre une visibilité complète sur les applications, les infrastructures et les clouds, compatible Open Telemetry.
- Cisco Splunk : Splunk est une solution SIEM (Security Information and Event Management, un outil qui permet de gérer en même temps les événements de sécurité et les informations au sein d'une entreprise). C’est une plateforme de surveillance en temps réel des données de logs qui permet de collecter des informations à des fins de sécurité et de performance. Splunk propose des outils d’analyse avancée des données et propose des actions pour améliorer la cybersécurité du réseau dans lequel il est implanté. Splunk est une technologie horizontale utilisée pour l’ALM (Application Lifecycle Management), l'observabilité, la sécurité des données et la conformité, ainsi que pour l'analyse commerciale et web.
- Datadog : Une plateforme d'observabilité cloud-native qui offre une grande flexibilité et un large éventail de fonctionnalités, compatible Open Telemetry.
- New Relic : Leader de l'observabilité pour les applications, New Relic propose une plateforme complète et simplifiée, en mode SaaS, pour les applications et sites avec de forts enjeux techniques et financiers, compatible Open Telemetry.
- SigNoz: C'est le meilleur APM/Alternative à Datadog/New Relic que l’on peut trouver en open source, et compatible Open Telemetry.
- Grafana Labs Cloud : Grafana Cloud est une plateforme d'observabilité entièrement gérée et hébergée dans le cloud, idéale pour les environnements natifs du cloud. Elle offre une intégration étroite des métriques, des journaux et des traces, le tout unifié au sein d’une plateforme de création de tableaux de bord pour la visualisation des données. Grafana Cloud est également intégré à Grafana k6 pour les tests de performance et à Grafana Incident et Grafana OnCall pour la gestion du flux de travail de réponse aux incidents, ce qui en fait une plateforme d'observabilité complète et modulable. La plateforme est construite sur le logiciel open source de Grafana Labs et intègre notamment Grafana, Prometheus, Loki, Beats, Cortex, Tempo. Peut également être déployé dans votre infrastructure, mais plus complexe à mettre en œuvre que la version Cloud.
- Elastic Stack (ELK Stack): Elastic propose une suite de logiciels (Elasticsearch, Beat, Kibana, Logstash) qui permet d’exploiter toutes les données - qu’elles soient structurées ou non structurées. Créée et maintenue par les ingénieurs à l’origine de ces produits open source, la Suite Elastic permet de collecter, indexer, stocker, rechercher et d’analyser les données plus facilement.
Outils de Collecte de Logs et de Métriques
- Vector: Outil de collecte, de transformation et de transfert de logs et des métriques entre différents systèmes. Opensource, sponsorisée par Datadog, écrit Rust, il se veut léger et performant et très flexible en terme d’intégration (Kafka par exemple)
Outils de Collecte de Logs
- Grafana Loki : Système d'agrégation de logs multi-tenants, hautement disponible et évolutif horizontalement, inspiré de Prometheus. Il est conçu pour être très rentable et facile à utiliser. Il n'indexe pas le contenu des logs, mais plutôt un ensemble d'étiquettes pour chaque flux de logs (Exemples : filtrage par adresse IP, aides à l'évaluation de la sécurité, requêtes de métriques, filtrage en plusieurs étapes, ou utilisant plusieurs analyseurs, formatage de ligne de journal, agrégation de vecteurs - > Obtenez les 10 meilleures applications en fonction du débit de journal le plus élevé). Le projet Loki a été lancé chez Grafana Labs en 2018.
- Fluentd: Collecteur de données multiplateforme open source, qui vous permet d'unifier la collecte et la consommation de données pour une meilleure utilisation et compréhension des données. Développé à l'origine par Treasure Data. Il est écrit principalement dans le langage de programmation C avec un wrapper Ruby.
- Loggly : Solution SaaS pour collecter, rechercher, analyser des logs de l’éditeur SolarWinds qui offre également une plateforme complète d’observabilité.
- Sumo Logic : fournit une surveillance du cloud, une gestion des journaux, des outils Cloud SIEM et des informations en temps réel pour les applications Web et SaaS.
Outils de collecte et de stockage des Métriques
- Prometheus: Système de surveillance open source qui collecte et stocke ses métriques sous forme de données de séries chronologiques, c'est-à-dire que les informations sur les métriques sont stockées avec l'horodatage auquel elles ont été enregistrées, ainsi que des paires clé-valeur facultatives appelées étiquettes.
- Victoria Metrics : C’est une base de données de séries chronologiques (Time series) open source rapide et évolutive et également une solution de surveillance qui permet aux utilisateurs de créer une plate-forme sans problèmes d'évolutivité et avec une charge opérationnelle minimale.
- InfluxDB : Une base de données de séries temporelles optimisée pour la collecte et le stockage de métriques en un seul binaire, codé en Rust.
Outils de collecte et de stockage des Traces
- Grafana Tempo: backend de traçage distribué open source, facile à utiliser et à grande échelle. Tempo ne nécessite que le stockage d'objets (S3, Azure Blob Storage, GCS) pour fonctionner et est profondément intégré à Grafana, Prometheus et Loki. Tempo peut ingérer des protocoles de traçage open source courants, notamment Jaeger, Zipkin et Open Telemetry. Le projet Tempo a été lancé chez Grafana Labs et annoncé à Grafana ObservabilityCON en octobre 2020. Il est devenu disponible avec la version 1.0 en juin 2021. Tempo est publié sous la licence AGPLv3.
- Jaeger: Un système open source utilisé pour la surveillance et le dépannage des systèmes distribués basés sur des microservices.
- Zipkin : Un système de traçage distribué open source. Il permet de collecter les données de synchronisation nécessaires pour résoudre les problèmes de latence dans les architectures de services. Les fonctionnalités incluent à la fois la collecte et la recherche de ces données.
- AWS X-Ray : Analyser et déboguer la production et les applications distribuées.
- Google Cloud Trace : Cloud Trace est un système de traçage distribué qui recueille les données de latence de vos applications et qui identifie les goulots d'étranglement. Cloud Trace est un système de traçage distribué pour Google Cloud qui collecte données de latence des applications et les affiche en temps quasi réel dans la console Google Cloud.
Outils spécifiques
- Sentry: Innovant et un peu unique, Sentry, se donne pour mission de collecter les erreurs, et les corréler à Git pour détecter quel commit a pu "initier" cette erreur. Il propose aussi en plus du monitoring d’erreurs, des sessions de replay, des fonctionnalités de couverture de code et du Tracing, pour visualiser le cheminement complet de bout en bout emprunté par les données dans votre système distribué pour identifier l'origine exacte d'un problème.
- Firebase Crashlytics: Similaire à Sentry mais pour les applications mobiles. Il permet d’obtenir des insights clairs et exploitables sur les problèmes liés aux applications grâce à cette solution puissante de création de rapports d'erreur pour Apple, Android, Flutter et Unity
2023 Magic Quadrant Gartner - Observability
2024 Magic Quadrant Gartner - Observability
https://www.gartner.com/reviews/market/observability-platforms
Mettre en place l'observabilité dans votre SI
La mise en place de l'observabilité dans votre SI nécessite une planification et une exécution rigoureuses. Voici quelques étapes clés à suivre :
Définir vos objectifs : Déterminez ce que vous voulez obtenir avec l'observabilité et les cas d'usage que vous souhaitez couvrir.
Identifier les sources de données : Déterminez les données que vous devez collecter et les sources d'où elles proviennent (logs, traces, métriques).
Choisir un outil d'observabilité: Sélectionnez un outil d'observabilité qui répond à vos besoins et à votre budget, qui peut devenir très vite problématique, Datadog, Dynatrace, NewRelic notamment ont fait des retours sur ce sujet, et commencer par les services critiques ou “sensible” peut être un bon départ pour le choix des outils(1)(2)(3). La norme aujourd’hui veut que l’on fasse la collecte de données avec Open Telemetry, et c’est le backend qui change (la plupart des éditeurs fournissent des collecteurs Open Telemetry qui rajoute des processeurs spécifiques à leur plateforme).
Déployer l'outil d'observabilité: Installez et configurez l'outil d'observabilité dans votre SI.
Collecter et analyser les données : Commencez à collecter les données et à les analyser pour identifier les problèmes et les opportunités d'amélioration.
Mettre en place des processus de réaction et de gestion des incidents : Définissez des processus pour réagir aux incidents et aux problèmes identifiés grâce à l'observabilité.
Nous verrons dans de prochains articles un tableau comparatif des différents outils que l’on utilise chez Ippon, avec des cas d’utilisations associés, puis des cas pratiques de mise en œuvre de ces outils. Nous ferons aussi un zoom ultérieurement sur l'utilisation de l'IA et GenIA dans les outils d'Observabilité.
Références et liens utiles
https://opentelemetry.io/
https://signoz.io/
https://prometheus.io/docs/introduction/overview/
https://grafana.com/oss/loki/
https://grafana.com/docs/loki/latest/query/query_examples/
https://www.elastic.co/fr/elastic-stack
https://www.fluentd.org/
https://www.splunk.com/
https://www.splunk.com/fr_fr/resources/videos/what-is-splunk.html
https://www.dynatrace.com/
https://www.datadoghq.com/
https://vector.dev/
https://newrelic.com
https://www.loggly.com/
https://www.sumologic.com/
https://www.influxdata.com/products/influxdb-overview/
https://grafana.com/oss/tempo/
https://www.jaegertracing.io/docs/1.18/opentelemetry/
https://zipkin.io/
https://newrelic.com/fr/blog/nerdlog/cost-comparison-new-relic-vs-datadog-vs-dynatrace (1)
https://www.dynatrace.com/platform/comparison/dynatrace-vs-datadog/ (2)
https://www.lemagit.fr/actualites/366568560/Observabilite-Dynatrace-sadapte-dans-un-contexte-de-reduction-des-couts (3)
https://www.silicon.fr/observabilite-principaux-fournisseurs-470275.html