私はカフカは初めてです。 kafkaトピックを監視および管理します。次のようなさまざまなオープンソース監視ツールを試しました
どちらのツールも優れています。しかし、展開スタックに含めるべき決定を下すことはできません。どちらが優れているのか、なぜ、そしてどのシナリオで?
yahooの「kafka manager」は古いものに見え、LinkedInの「kafka monitor」は新しいものになります
レンズ
Lenses (Landoopから)は、ユーザーインターフェイス、ストリーミングSQLエンジン、およびクラスター監視によりKafkaを強化します。 Kafkaデータパイプラインの高速監視が可能になります。
これらは、最大25Mのメッセージに対して単一のブローカーを提供できる、無料のオールインワンドッカー( Lenss Box )を提供します。これは開発環境に推奨されることに注意してください。
コンフルエント
別のオプションは Confluent Enterprise です。これは、実稼働環境用のKafkaディストリビューションです。また、 Control Centre も含まれます。これは、ApacheKafkaの管理システムであり、ユーザーインターフェイスからクラスターの監視と管理を可能にします。
YahooKafkaManager
Kafka Manager は、前述のツールに比べて機能が少ないKafkaを監視するためのツールです。
KafDrop
KafDrop は、ApacheKafkaクラスターを監視するためのUIです。このツールは、ブローカー、トピック、パーティションなどの情報を表示し、メッセージを表示することもできます。これは、Spring Bootで実行される軽量のアプリケーションであり、構成はほとんど必要ありません。
LinkedIn Burrow
Burrow は、ApacheKafkaのモニタリングコンパニオンであり、しきい値を指定する必要なく、サービスとしてコンシューマラグチェックを提供します。すべてのコンシューマのコミット済みオフセットを監視し、それらのコンシューマのステータスをオンデマンドで計算します。 HTTPエンドポイントは、オンデマンドでステータスを要求するために提供され、他のKafkaクラスター情報を提供します。また、電子メールまたはHTTPコールを介して別のサービスにステータスを送信できる設定可能な通知機能もあります。
Kafkaツール
Kafka Tool は、ApacheKafkaクラスターを管理および使用するためのGUIアプリケーションです。 Kafkaクラスター内のオブジェクトとクラスターのトピックに保存されているメッセージをすばやく表示できる直感的なUIを提供します。開発者と管理者の両方を対象とした機能が含まれています。
ライセンスを購入できない場合は、YahooKafkaManager、LinkedIn Burrow、またはKafDropを選択してください。 ConfluentとLandoopの製品は最高の製品ですが、残念ながらライセンスが必要です。
詳細については、ブログ投稿 を参照してください。ApacheのUI監視ツールの概要KafkaClusters 。
ライセンスとKafkaクラスターサポートの料金を支払う場合は、 Confluent Control Center を使用できます。
または、DatadogやPrometheus/Influxdb(Grafanaダッシュボード付き)のJMXエクスポーターを使用して、システム全体のヘルスチェック(CPU、ネットワーク、メモリなど)を確認することもできます。 KafkaツールでKafkaプロセスを監視することにより
職場では、ブローカー情報の表示、トピックの閲覧、消費者のラグに Kafdrop を使用します。 Kafdrop 3の主な理由は、Kafkaを実稼働でロックダウンし、すべてのプロデューサーとコンシューマーがKubernetesクラスターにあるためです。開発マシンではKafkaにアクセスできません(ポートは外部に公開されていません)。そのため、K8sクラスター内でKafdropを実行し、kubectl proxy
でプロキシします。
コンシューマーラグ機能は、 Burrow が提供するものほど洗練されていませんが、おそらく単一のツールにあることを考えると、おそらく十分です。
開発(ローカルでKafkaを実行)の場合、Kafka Tool を使用してにすることができますが、厳密に言えば非営利目的でのみ使用します。また、ロックされているプロダクションKafkaに接続している場合はあまり役に立ちません。
私の会社では、Yahoo製品を使用し、LinkedIn製品を調査しました。私の会社は、最終的にPrometheus + Grafanaの使用を選択しました。誰もがそれを愛し、私はそれを強くお勧めします。
Prometheus + Grafanaには2つの大きな利点があります。 1つ目は、フル機能のKafkaメトリックの取り込み+視覚化+アラートを行いますが、Kafkaに限定されません。最初のニーズはKafkaを監視することだけでしたが、HTTPサーバー+トラフィック、サーバー使用率(cpu/ram/disk)、およびカスタムアプリケーションレベルのメトリックに関するメトリックも必要でした。プロメテウスは上記のすべてを処理します。第二に、Prometheus + Grafanaは非常に高品質で、適切に設計されており、使いやすいです。この分野のその他の製品の多くは古くて扱いにくいものです。 Prometheus + Grafanaはどちらも使用するのに優れており、非常にカスタマイズ可能で、洗練されており、使いやすいです。 Grafanaには、非常に派手で機能的なJavaScriptインターフェースがあり、必要なカスタマイズされたダッシュボードを正確に作成できます。 Prometheusには、非常に洗練されたメトリックコレクションエンジン、ストレージエンジン、クエリ言語、アラートシステムがあります。 Yahoo Kafka Managerのようなものは、これらのすべてのカテゴリで機能がはるかに制限されています。
プロメテウスを試してみたい場合は、次の2つのことを行う必要があります。
1)KafkaブローカーにJMX-> Prometheusエクスポーターをインストールして構成します。 https://github.com/prometheus/jmx_exporter
2)Prometheusサーバーをセットアップしてメトリクスを収集し、Grafanaダッシュボードをセットアップして必要なグラフを表示します。
また、これは監視+ダッシュボード+アラートのためだけのものだと思います。管理機能には、他のツールが必要です。
Kafkaエコシステムは、多くの点で優れていますが、明らかにツールの欠如に苦しんでいます。監視はそのようなギャップの1つですが、かなり広範なトピックでもあります。
Kafka ManagerおよびMonitorは、ブローカーの健全性といくつかのメトリック(スループット、レイテンシーなど)についての洞察を提供しますが、消費者の健全性とトピックコンテンツ(アプリケーションのデバッグや事後分析に不可欠)も監視することもできます。またはモニターがそれを行います。武器庫にいくつかのツールを追加することをお勧めします。
大規模なマイクロサービス展開のメインメッセージング/イベントバックボーンとしてしばらくKafkaを実行しているため、適切な監視ツールと事後分析ツールの重要性を十分に強調することはできません。