web-dev-qa-db-fra.com

Quelle est la différence entre Prometheus et Zabbix?

Comme le dit le titre, pouvez-vous me dire les différences entre Prométhée et Zabbix?

21
The One

Zabbix est écrit en C et PHP, c'est une surveillance plus classique.

Prometheus est écrit en Go, il est recommandé pour la surveillance Cloud, SaaS/openstack.

MAIS vous pouvez utiliser les deux, Prometheus est plus rapide en raison de la base de données zabbix a une empreinte plus petite (car elle est écrite en c). Zabbix vous pouvez la plupart des choses dans le webgui .. dans prometheus vous devez éditer des fichiers comme Nagios.

MISE À JOUR: voici un article allemand sur Prométhée: http://www.linux-magazin.de/Ausgaben/2016/03/ Prométhée

9
colttt

Zabbix et Prometheus peuvent être utilisés dans divers scénarios de surveillance, sans spécialisation particulière dans aucun de ces deux. Zabbix est plus ancien que Prometheus et probablement plus stable, avec plus de solutions prêtes à l'emploi.

Zabbix a un noyau écrit en C et une interface web basée sur PHP, il utilise également des "agents" ( programmes côté client ) écrits en C. Prometheus est écrit en langage Go.

Zabbix stocke les données dans un SGBDR (MySQL, PostgreSQL, Oracle, sqlite) au choix de l'utilisateur. Prometheus utilise sa propre base de données intégrée dans le processus backend (c'est une base de données non relationnelle spécialement conçue pour stocker les données de surveillance de la même manière à OpenTSDB modèle de données).

Zabbix utilise par défaut le modèle "pull" lorsqu'un serveur se connecte aux agents sur chaque machine de surveillance, les agents rassemblent périodiquement les informations et les envoient à un serveur. L'alternative est le mode "contrôles actifs" lorsque les agents établissent une connexion avec un serveur et lui envoient des données en cas de besoin. Prometheus préfère le modèle "pull" lorsqu'un serveur collecte des informations sur les machines clientes. Mais Prometheus Push Gateway peut être utilisé dans les cas où le modèle "Push" est nécessaire.

Prometheus nécessite qu'une application soit instrumentée avec la bibliothèque cliente Prometheus (disponible dans différents langages de programmation) pour préparer les métriques. Mais pour surveiller un système ou un logiciel qui ne peut pas être instrumenté, il existe un "exportateur blackbox" qui permet de sonder les points de terminaison sur une gamme de protocoles; en outre, un large éventail de "exportateurs" tiers et des outils sont disponibles pour aider à exposer les métriques pour Prometheus (similaire à "agents" pour Zabbix ). Un tel outil est telegraf ( https://github.com/influxdata/telegraf ).

Zabbix utilise son propre protocole de communication basé sur TCP entre les agents et un serveur. Prometheus utilise HTTP avec des tampons de protocole (+ format texte pour une facilité d'utilisation avec curl).

Zabbix propose sa propre interface Web pour la visualisation. Prometheus offre un outil de base pour explorer les données recueillies et les visualiser dans des graphiques simples sur son serveur natif et offre également un constructeur de tableau de bord minimal PromDash . Mais Prometheus est et est conçu pour être supporté par des outils de visualisation modernes comme Grafana .

Zabbix prend en charge les alertes dans son cœur. Prometheus propose une solution d'alerte séparée de son cœur en Alertmanager application.

54

Zabbix pense en termes de machines, vous êtes donc limité à penser aux choses en ces termes. Les alertes peuvent être déclenchées sur la base de calculs simples.

Prometheus n'a pas cette restriction, vous êtes libre de penser en termes de services ou de centres de données. Les alertes peuvent être déclenchées par n'importe quelle expression valide, telle que la latence moyenne est trop élevée ou que les disques se remplissent en 4 heures.

https://blog.raintank.io/evolving-from-machines-to-services/ explique davantage la différence entre la surveillance basée sur la machine et la surveillance basée sur les services.

12
brian-brazil