PrometheusとZabbixの違いは何ですか?
3 に答える
Zabbix と Prometheus はどちらも、さまざまな監視シナリオで使用できますが、どちらにも特別な専門性はありません。Zabbix は Prometheus よりも古く、おそらくより安定しており、すぐに使用できるソリューションが用意されています。
Zabbix には、C で記述されたコアと PHP ベースの Web UI があります。また、C で記述された「エージェント」 (クライアント側プログラム) も使用します。Prometheus は Go 言語で記述されています。
Zabbixは、ユーザーが選択したRDBMS (MySQL、PostgreSQL、Oracle、またはSQLite ) にデータを保存します。Prometheus は、バックエンド プロセスに埋め込まれた独自のデータベースを使用します (これは、OpenTSDBのデータ モデルと同様の方法で監視データを格納するために特別に設計された非リレーショナル データベースです)。
Zabbix はデフォルトで、サーバーが各監視マシンのエージェントに接続するときに「プル」モデルを使用し、エージェントは定期的に情報を収集してサーバーに送信します。代替手段は、エージェントがサーバーとの接続を確立し、必要なときにデータを送信するときの「アクティブ チェック」モードです。
サーバーがクライアント マシンから情報を収集する場合、Prometheus は「プル」モデルを優先します。ただし、「プッシュ」モデルが必要な場合は、Prometheus Push Gatewayを使用できます。
Prometheus では、メトリクスを準備するために、アプリケーションが Prometheus クライアント ライブラリ (さまざまなプログラミング言語で利用可能) で計測される必要があります。ただし、計測できないシステムまたはソフトウェアを監視するために、さまざまなプロトコルでエンドポイントをプローブできる公式の「ブラックボックス エクスポーター」があります。さらに、幅広いサードパーティの「エクスポーター」とツールを使用して、Prometheus のメトリックを公開することができます ( Zabbix の「エージェント」に似ています)。そのようなツールの 1 つがTelegrafです。
Zabbix は、エージェントとサーバー間で独自のTCPベースの通信プロトコルを使用します。
Prometheus は HTTP とProtocol Buffers (+ curl で使いやすいようにテキスト形式) を使用します。
Zabbix は、視覚化のための独自の Web UI を提供します。Prometheus は、収集したデータを探索し、ネイティブ サーバー上で単純なグラフで視覚化するための基本的なツールを提供し、最小限のダッシュボード ビルダーも提供します。しかし、Prometheus は、Grafanaなどの最新の視覚化ツールでサポートされるように設計されています。
Zabbix は、コアでアラートをサポートしています。Prometheus は、そのコアからAlertmanagerアプリケーションに分離されたアラートのソリューションを提供します。
Zabbix は C と PHP で書かれています。より古典的な監視です。
Prometheus は Go で記述されており、クラウド、SaaS / OpenStackの監視に推奨されます。
しかし、両方を使用できます。Prometheus はデータベースがあるため高速であり、Zabbix は (C で記述されているため) フットプリントが小さくなっています。Zabbix ではほとんどのことを Web GUI で行うことができますが、Prometheus ではNagiosのようにファイルを編集する必要があります。
Prometheus に関するドイツ語の記事は次のとおりです。Prometheus für das Cloud- und Enterprise-Monitoring