23 août 2022

Prometheus vs ELK

Par Jean-Marc Amon

Les deux systèmes de monitoring, Prometheus et ELK stack, ont des objectifs similaires. Leurs objectifs sont de détecter les problèmes, de déboguer et de résoudre les problèmes. Mais ces systèmes utilisent des approches différentes pour cette tâche.

La plus grande différence est que ELK se spécialise dans les logs et que Prometheus se spécialise dans les métriques. La plupart des grandes entreprises nécessitent d’utiliser à la fois ELK et Prometheus, chacun pour sa propre spécialité(logs et métriques).

Prometheus vs ELK : les similitudes

  • Prometheus et ELK sont tous deux des logiciels open source. Les deux projets ont de grandes communautés actives de développeurs et d’utilisateurs.
  • Les deux systèmes de surveillance sont disponibles en tant que service cloud ou peuvent être exploités sur site(on-premise).
  • Les deux systèmes utilisent des méthodes d’accès RESTful HTTP/JSON API.
  • Les systèmes prennent en charge la plupart des langages de programmation : .Net, Java, Python et Ruby.
  • Les deux systèmes utilisent des méthodes de partitionnement pour stocker différentes données sur différents nœuds.
  • Les deux systèmes prennent en charge différentes options d’alerte avec des intégrations pour le courrier électronique, Slack ou PagerDuty.
  • Les piles Prometheus et ELK utilisent des méthodes de réplication pour le stockage redondant des données sur plusieurs nœuds.
  • ELK, ainsi que Prometheus, peuvent être intégrés à de nombreux systèmes différents. Il existe de grandes quantités d’outils pour l’intégration avec différentes bases de données, stockage, API, autres systèmes de surveillance et intégrations liées au matériel.
  • Les outils de visualisation de données des deux systèmes ont d’excellentes fonctionnalités.
Grafana

Prometheus vs ELK : les différences

  • La principale différence entre la pile Prometheus et ELK est le champ d’utilisation de ces deux systèmes. Prometheus est utilisé pour la collecte de métriques, la surveillance de divers systèmes et la configuration d’alertes basées sur ces métriques. ELK est utilisé pour prendre tous les types de données, effectuer différents types d’analyses basées sur ces données, les rechercher et les visualiser.
  • Prometheus utilise le TSBD(Time Series Database) comme modèle de base de données principal. En fait, le modèle de base de données principal de la pile ELK est un moteur de recherche qui prend en charge le stockage de différents types de données non structurées(NoSQL) avec un index inversé qui permet des recherches en texte intégral très rapides.
  • Les deux systèmes utilisent différents types de requêtes. Prometheus utilise son propre langage, PromQL, qui est très simple et puissant. ELK fournit un langage de requête spécifique au domaine basé sur JSON. Elasticsearch fournit également une fonctionnalité permettant d’utiliser des requêtes de type SQL.
  • ELK utilise un schéma de données sans schéma. Tandis que Prometheus stocke les données identifiées par le nom de la métrique et les paires clé/valeur.
  • ELK collecte une variété de journaux provenant de différentes sources, les analyse et les stocke. Prometheus collecte les métriques dans un format standard via une méthode pull sur HTTP.
  • Dans la pile ELK, différents types de données peuvent être stockés, tels que numériques, chaînes, booléens, binaires, etc. Cela vous permet de conserver, d’analyser et d’utiliser les données de manière plus efficace, quelles que soient les données. Prometheus stocke des exemples numériques de séries chronologiques nommées.
  • ELK offre une conservation des données à plus long terme par rapport à Prometheus. Prometheus stocke les données localement au sein de l’instance, pour une durée par défaut de 15 jours. Les 15 jours par défaut peuvent être configurés sur n’importe quelle valeur, avec un minimum de 2 heures. Bien sûr, le stockage à long terme au sein de l’instance Prometheus locale devient difficile pendant de plus longues périodes. Le stockage et le calcul des données sur un nœud facilitent les opérations, mais compliquent également la mise à l’échelle et garantissent une haute disponibilité. Par conséquent, Prometheus n’est pas optimisé pour être un magasin de métriques à long terme.
  • Un pack ELK payant supplémentaire, appelé X-Pack, fournit plus de services : authentification et autorisation à Kibana et Elasticsearch, un système d’alerte avec des fonctionnalités améliorées. La partie apprentissage automatique fournit la détection et la prévision des anomalies.
  • Kibana permet d’analyser les relations dans vos données (afficher les produits associés par exemple) et de visualiser ces relations. Prometheus n’a pas de telles fonctionnalités étendues dans sa liste, toutes les analyses doivent être effectuées via Grafana.
  • Elasticsearch utilise une structure appelée index inversé permettant des recherches en texte intégral très rapides.
  • Les fonctionnalités de sécurité d’Elasticsearch Stack sont assez étendues. Le système fournit le bon accès aux bonnes personnes. Certaines des fonctionnalités sont la communication cryptée (cryptage du trafic avec des certificats SSL/TLS), le contrôle d’accès basé sur les rôles et les attributs, la sécurité au niveau des champs et des documents, le filtrage IP, la journalisation des audits, etc.
  • Elasticsearch fournit diverses fonctionnalités pour la gestion des données : sauvegarde des données sous forme d’instantané, instantané source uniquement pour une utilisation efficace du stockage sur disque, résumé et stockage des données historiques pour l’analyse des fonctionnalités (indices cumulatifs).
Kibana

Utilisez ELK dans les cas suivants

  • Vous effectuez la journalisation des événements.
  • Vous devez traiter de grandes quantités de données de journal.
  • Vous avez besoin d’un stockage de données à long terme.
  • Vous devez avoir une connaissance approfondie d’un événement spécifique.
  • Vous avez besoin d’une solution en cluster.

Utilisez Prometheus dans les cas suivants

  • Vous faites principalement des métriques.
  • Vous avez besoin de simplicité dans la configuration des outils de surveillance et de création de graphiques.
  • Vous devez exécuter des alertes sur diverses sources.

Conclusion

Bien que Prometheus et Elasticsearch stack soient des outils très similaires pour la surveillance de l’infrastructure et l’alerte, ces systèmes sont généralement déployés pour différentes tâches. La plus grande différence est qu’ELK se spécialise dans les journaux et que Prometheus se spécialise dans les métriques. La plupart des grandes productions nécessitent d’utiliser à la fois ELK et Prometheus, chacun pour sa propre spécialité.