Kafka サービスを監視する方法

Kafka サービスを監視する方法

みなさんこんにちは。Hua Zaiです。またお会いできて嬉しいです。

監視は常に Kafka にとって課題でした。現時点では、ほとんどのユーザーのニーズを満たす無料の監視ソフトウェアは存在しません。これらの監視ソフトウェアには独自の特徴がありますが、十分に包括的ではありません。

今日は、主に「JConsole」、「Kafka Manager」、「Kafka Offset Explorer」、「KafkaOffsetMonitor」、「LogiKM」といった、Kafka でよく使われるビジュアル監視ツールをいくつか説明します。

ここでまず「Jconsole」はJMXをベースにした視覚的な監視・管理ツールであることを説明したいと思います。 JDK をインストールすると、Java は JConsole クライアント ツールを提供し、これを使用して Kafka のさまざまなインジケーターを監視できます。その他は、Kafka クラスターの管理と監視に特に使用されます。

以下では、これらの監視ツールの使用方法を紹介します。

1. Jコンソール

ここでは JMX について簡単に紹介します。完全な名前は Java Management Extensions です。 JMX は実行中の Java プログラムを管理および監視することができ、「スレッド」、「メモリ」、「ログ レベル」、「サービスの再起動」、「システム環境」などの管理によく使用されます。基盤となる Kafka も Java に基づいているため、JMX 標準を使用して Kafka を管理および監視することもできます。

JConsole は、Java 5 で導入され、VM を監視するために使用される JMX ベースの視覚的な監視および管理ツールです。一般的に言えば、これはコミュニティによって提供される小さなツールです。単純な監視シナリオを処理できますが、機能は結局のところ限られています。複雑な監視ソリューションは依然として監視フレームワークに依存しています。

  1. kakfa-server-start.sh スクリプトの JXM_PORT 構成を以下のように変更します。
 export JMX_PORT="9999"

  1. ここでは、Windows 上で直接 JConsole を起動し、CMD コマンド ラインに JConsole と入力して Enter キーを押します (下図参照)。

このとき、JConsole 起動インターフェースが呼び出されます。

「安全な接続に失敗しました」というプロンプト ボックスが表示されたら、「安全でない接続」ボタンを選択して、以下に示すように JConsole モニタリングのメイン インターフェイスに入ります。

2. カフカマネージャー

Kafka Manager は、2015 年に Yahoo によってオープンソース化された Kafka 監視ソフトウェアです。これは、下位レベルで Scala で記述されており、Kafka クラスターの管理と監視に使用されます。

このソフトウェアは、多くの Kafka 監視ソフトウェアの中でもトップクラスです。インターフェース表示コンテンツの豊富さやクラスター管理機能の包括性など、Kafka Manager は最高の製品の 1 つです。

現在、Kafka Manager はすでに新しいバージョンの Consumer の監視をサポートしています。ユーザーが Kafka Manager を使用しているときに新しいバージョンの Consumer Group 情報を表示できない場合は、古いバージョンの Kafka Manager を使用しているかどうかを確認する必要があります。

この管理ツールを使用すると、クラスター内でどのトピックが不均等に分散されているか、またはクラスター全体でどのパーティションが不均等に分散されているかを簡単に見つけることができます。

複数のクラスターの管理、レプリカの選択、レプリカの再割り当て、トピックの作成をサポートします。同時に、この管理ツールは、次の機能を備えており、クラスターをすばやく参照するのに非常に優れたツールでもあります。

  1. 複数の Kafka クラスターを管理します。
  2. Kafka クラスターのステータス (トピック、ブローカー、バックアップ配布、パーティション配布) を簡単に確認できます。
  3. 実行するコピーを選択します。
  4. 現在のパーティションの状態に基づきます。
  5. トピック構成を選択してトピックを作成できます (0.8.1.1 と 0.8.2 の構成は異なります)。
  6. トピックを削除します (バージョン 0.8.2 以降でのみサポートされ、ブローカー構成で delete.topic.enable=true を設定します)。
  7. トピック リストには、削除されたトピックが表示されます (バージョン 0.8.2 以上に適用)。
  8. 既存のトピックにパーティションを追加します。
  9. 既存のトピックの構成を更新します。
  10. 複数のトピックにわたるバッチ再パーティション化。
  11. 複数のトピックのバッチ再パーティション化 (オプションのパーティション ブローカーの場所)。

kafka-manager プロジェクトアドレス: https://github.com/yahoo/kafka-manager

この記事では、バージョン: kafka-manager-3.0.0.5.zip を使用します。プロジェクトの名前が CMAK に変更されました。インストールと設定は非常に簡単です。以下の手順に従って Kafka Manager を設定できます。

1. Kafka クラスターを起動するためのコマンド スクリプトに JMX 関連のパラメータを追加します。そうしないと、クライアント ツールを使用して Kafka クラスターを管理および監視することはできません。ここでは、ローカル仮想マシンを例に説明します。

2. Kafka-run-class.sh ファイルを変更し、JMX 設定の構成場所を見つけて、JMX サーバーの構成情報を追加します。

 #此处可以改为自己的hostname -Djava.rmi.server.hostname=LAPTOP-3B77RHGG

3. 以下のように、kakfa-server-start.sh スクリプトの JXM_PORT 構成を変更します。

 export JMX_PORT="9999"

4. kafkaを起動します。

 bin/kafka-server-start.sh config/server.properties &

5. Kafka Manager をダウンロードし、/home/wangjianghua/src/ ディレクトリに解凍します。

 # github地址https://github.com/yahoo/CMAK # 下载版本kafka-manager-3.0.0.5 wget https://github.com/yahoo/CMAK/releases/download/3.0.0.5/cmak-3.0.0.5.zip # 解压文件unzip cmak-3.0.0.5.zip

6. 設定を変更し、Kafka Manager の conf ディレクトリに移動し、application.conf ファイルを変更します。

 # 这里是指定zookeeper 集群的地址,如果有多个,逗号隔开cmak.zkhosts="localhost:2181"

7. Kafka マネージャーを起動します。

 # nohup 方式nohup bin/cmak & # 指定参数方式启动默认启动端口9000 nohup bin/cmak -Dconfig.file=conf/application.conf -Dhttp.port=9000 &

8. 起動に成功すると、以下のログ情報が出力されます。

起動には bin/cmak コマンドを使用し、デフォルトの構成ファイルとポート番号 9000 が使用されます。

起動が完了したら、ポートが開始されているかどうかを確認できます。起動処理には時間がかかるため、ポートの起動時間が遅れる場合があります。

ログからわかるように、Kafka Manager は IP アドレス: ポート アクセス テストを使用してポート 9000 で実行されます。

正常に起動されたことがわかります。

次のエラーが報告された場合は、JDK バージョンを 11 にアップグレードしてください。

1. KafkaManagerをテストする

(1)新しいクラスターを作成する

[クラスター] > [クラスターの追加] をクリックすると、クラスターを追加するための次の構成インターフェイスが開きます。

クラスター名(Kafka-Cluster-1など)とZookeeperサーバーアドレス(localhost:2181など)を入力し、最も近いKafkaバージョン(2.7など)を選択します。

注意: Kafka で JMX_PORT を設定していない場合は、最初のチェックボックスを選択しないでください。 JMX ポーリングを有効にする このチェックボックスをオンにすると、Kafka-manager の起動に失敗する可能性があります。

その他のブローカー関連の構成は、ニーズに応じて構成できます。デフォルトでは、[保存] をクリックすると、デフォルト値が 1 であるいくつかの構成エラーが表示されます。これを 2 以上の値に設定する必要があります。ヒントは次のとおりです。

新規作成が完了すると、実行中のインターフェースは次のようになります。

(2)トピックリスト

(3)ブローカー

2. KafkaManagerを管理する

(1)トピックを作成する

[トピック] > [作成] をクリックすると、トピックを簡単に作成して設定できます。次の図に示すように:

(2) トピックを見る

[トピック]の下のトピック名をクリックすると、対応するトピック情報が表示されます。

3. Kafka オフセット エクスプローラー

Kafka Tool は、Kafka クラスターを管理および使用するためのグラフィカル アプリケーションです。直感的なインターフェースが提供され、ユーザーは Kafka クラスター内のオブジェクトとクラスター トピックに保存されている情報をすばやく表示できます。主な機能は次のとおりです。

  1. ブローカー、トピック、コンシューマーなど、すべての Kafka クラスターをすばやく表示します。
  2. パーティション内のメッセージの内容を表示し、情報メッセージを追加します。
  3. 消費者オフセットを表示します。
  4. JSON および XML 形式の出力をサポートします。
  5. トピックの追加と削除、その他の管理機能。
  6. カスタムプラグインをサポートします。

Kafka Tool の公式 Web サイトから Kafka Offset Explorer 2.3.2 を直接ダウンロードします。ダウンロードが完了したら、起動するだけです。

Kafka クラスターを追加してテストします。直接接続テストは次のとおりです。

「はい」をクリックして、Kafka クラスターのホームページに入ります。

上の図から、Kafka クラスターのブローカー情報、トピック情報、コンシューマー情報を確認できます。

それではトピックを作成しましょう。

1. 「ブラウザ」クラスターの「トピック」ノードをクリックし、右側のインターフェースをクリックします。

ボタンをクリックするか、「トピック」ノードを右クリックします。 2. 次の図に示すように、トピック名、パーティション数、および各パーティションのレプリカ数を入力します。 3. 次の図に示すように、「追加」ボタンをクリックしてトピックを正常に作成します。

4. 次に、このツールを使用して、message2 のメッセージ データを受信します。新しく作成したトピック message2 を選択し、以下に示すように右側のウィンドウで「データ」タブを選択します。

5. Kafka Producer のコマンドライン ターミナルを起動し、以下に示すようにいくつかのメッセージを送信します。

 bin/kafka-console-producer.sh --broker-list localhost:9092 --topic message2

6. ここでのデフォルトのデータ形式は「バイト配列」です。次の図に示すように、プロパティ設定でこれを文字列に変更し、「更新」ボタンをクリックできます。

7. 再度「データ」ページに戻ります。データは以下のように正しい形式で表示されます。

ターミナルでEnterキーを何度も押したため、出てきた値が空白になってしまいました。

4. Kafkaオフセットモニター

KafkaOffsetMonitor は、Kafka オープンソース コミュニティによって提供される Web ベースの管理プラットフォームです。これを使用して、コンシューマ グループとそのパーティションのオフセットをリアルタイムで監視できます。現在のコンシューマー グループを参照し、各トピックのすべてのパーティションの消費量をリアルタイムで監視できます。

これにより、各パーティションのメッセージが消費されたかどうか、ブロック状況があるかどうかなどを直感的に知ることができます。この Web 管理プラットフォームは、パーティション、オフセット、およびそのコンシューマーの履歴データを保持します。ウェブ管理の関連モジュールを閲覧することで、最近の消費状況を明確に把握できます。

Web管理プラットフォームには以下の機能があります。

  1. コンシューマーの消費量を監視し、各コンシューマーのオフセット データを一覧表示します。
  2. 消費者グループ リスト情報を保護します。
  3. 各トピックのすべてのパーティションのリストには、トピック、PID、オフセット、ログサイズ、ラグ、所有者などが含まれます。
  4. トピックの消費履歴情報を参照して表示します。

インストールは比較的簡単です。ダウンロード リンク: リンク: https://pan.baidu.com/s/1Vfcfvci0g4YwSuYjcSpf0w?pwd=8484 抽出コード: 8484。

それをディレクトリに配置し、そのディレクトリで次のコマンドを実行します。

 java -cp KafkaOffsetMonitor-assembly-0.3.0.jar \ com.quantifind.kafka.offsetapp.OffsetGetterWeb \ --offsetStorage kafka \ --zk localhost:2181 \ --port 8080 \ --refresh 10.seconds \ --retain 1.days

このコマンドの意味を簡単に紹介します。

  1. com.quantifind.kafka.offsetapp.OffsetGetterWeb は実行中の Web 監視クラスです。
  2. --zk は、zookeeper のアドレスを指定するために使用されます。
  3. --port は、Web サーバーが実行されているポートを指定するために使用されます。
  4. --refresh と --retain は、ページ データを更新する時間とデータを保持する時間を指定するために使用されます。

ブラウザを開き、ポート 8080 にアクセスして、以下に示すように KafkaOffsetMonitor のホームページを開きます。

次に、「トピック リスト」タブを選択して、以下に示すように、トピック内の特定のコンシューマー メッセージを監視します。

5. ロジKM

最後に、非常に実用的で強力な監視ツールを皆様にお勧めしたいと思います。これは Didi のオープンソースであり、「東半球で最もシンプルで使いやすいワンストップ クラウドネイティブ リアルタイム ストリーミング データ プラットフォーム」として知られています。

詳細については、公式ウェブサイトをクリックしてください: https://knowstreaming.com。

開発ドキュメントは次のとおりです: https://doc.knowstreaming.com/product/1-brief-introduction.

<<:  小売業界におけるパブリッククラウドの情報セキュリティに関する議論

>>:  マルチクラウド戦略の6つのメリット

推薦する

ハイブリッドクラウド移行戦略の5つの重要な要素

ハイブリッド クラウド戦略を求める声は根強く残っています。では、ハイブリッド クラウド アプローチを...

ミニプログラムトラックをめぐる戦い:ToutiaoとBATが再び戦いに挑む!

モバイルインターネットの時代に入ってから、多くのインターネット製品がより多くのアプリを生み出しました...

ウェブサイトの可能性を分析し、ユーザーとの関係を構築する

急速な経済発展の時代において、人々は物事に可能性があるかどうか、またそれを始める、あるいは続ける必要...

電子商取引サイトが効果的なトラフィックを獲得するための主な方法

インターネットで商品を販売するには、まずユーザーが必要です。電子商取引のウェブサイトの場合、トラフィ...

ネットワークマーケティングをどのように行うべきかを説明する例を挙げる

インターネット マーケティングは一般的なトピックです。多くの場合、基本的で普遍的な知識や経験が多くの...

部分一致

Baidu CPC プロモーションには、完全一致と部分一致の 2 つの一致モードが含まれます。完全一...

姚小偉:歴史上最も包括的なウェブページのスナップショット、毎日更新

今日、著者は、史上最も完全なドメイン名のクイックコレクション、最も完全な外部リンク方法、そして最も完...

DEDECMSウェブサイトのバックアップとアップロードスペースの運用プロセス

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますウェブサイ...

検索結果の多様化がウェブサイトのコンテンツ体験に与える影響

最近の観察から、Baidu の検索結果はますます多様化しており、ある程度のインテリジェントな思考を備...

草の根ウェブマスターがユーザーを「長居」させる方法を共有する

ウェブマスターによってウェブサイト管理に対する考え方は異なります。ローカルフォーラムをベースに口コミ...

Meituan もビッグデータを活用して古い顧客をターゲットにしているのでしょうか?

著者: 魏傑、唐亜華編集者: ドーン12月17日、「美団会員に騙された」という記事が話題になった。記...

#20% オフ: photonvps-$4.76/512 ram/50g ハードドライブ/2T トラフィック/ロサンゼルス/Windows

photonvps は、 Psychz Networksのマネージド VPS ブランドです (主にサ...

SEO フロントライン: 業界標準をはるかに超える第一線の SEO 交流フォーラム

長い開発期間を経ても、国内の SEO には依然として安定した象徴的なウェブサイトがありません。 Di...

彼女への送金で「分散トランザクション」について学んだ

2日前に給料をもらったのですが、最初に彼女にサプライズをあげようと思いました!そこで私は平安銀行アプ...