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つのメリット

推薦する

外部リンク構築において無視できない重要なポイント:訪問者のクリック行動

外部リンクの構築は、サイト最適化プロセス全体の重要な部分です。最適化担当者として、私たちは常に高品質...

Webmaster.com からの毎日のレポート: Sina Micro-mission のオンライン鉄道チケット購入がピークに達する

1. Sina: サードパーティのWeiboサービスプロバイダーに損害を与えないでください北京ニュー...

偽造外国貿易サイトのランキングが「短命」である理由について簡単に説明します

これまで、Baidu でのランキングは Google よりも難しいと感じていました。 Baidu は...

vpsace - 4.75 ドル/Kvm/1g メモリ/25g ハードディスク/1.5T トラフィック/追加 IP 0.25 ドル/各

vpsaceは2011年に設立されました。コロクロッシングとの関係が曖昧だと言う人が多いようですが、...

データ分析を活用して顧客を維持する

データ分析により、ほとんどの B2C のコンバージョン率は 1% 未満であり、最も優れたものでも 3...

企業がソーシャルネットワークマーケティングを重視する4つの理由

2012 年にどの企業がどのマーケティング モデルを最も重視したかを尋ねられたら、ソーシャル ネット...

外部リンクのウェブサイトを改良することによってのみ、より高く、より安定することができます

ウェブサイトを最適化するには、多くの詳細な作業が必要であることは誰もが知っています。しかし、最適化に...

信じられないかもしれませんが、インターネットプロモーションは単なる1つのトリックです

インターネットプロモーションというのは実に簡単なことです。しかし、どこから始めればよいかわからない部...

dogyun: 香港 BGP ライン VPS (MG データセンター)、300M 帯域幅、25 元/月、1G メモリ/1 コア/20gSSD/500G トラフィック

Dogyunは数日前に香港MGデータセンターで国際回線付きVPSを開設しました。中国本土に面した国際...

B2B業界のウェブサイト電話営業が持つべき精神

B2B 業界のウェブサイト電話営業担当者は、一定の専門知識と営業スキルを備えているだけでなく、電話営...

クラウド支出を管理するための6つのヒント

一般的に、クラウド コンピューティングは、IT インフラストラクチャ、運用、保守、人件費を削減するこ...

hostkvm: 米国 VPS、3 ネットワーク必須 CU-VIP 回線、月額 5 ドル、1G メモリ/1 コア/15g SSD/500g トラフィック

Hostkvmは今年3月にロサンゼルスで新しいVPSサービスを開始し、3つのネットワークに中国聯通の...

Weiboマーケティングの真実を語る

最近、李二仔思と喬石桂子堅の対戦を見てきました。私もソーシャルメディアマーケティングを試してみました...

SEO最適化に関する個人的な理解と誤解の分析

SEO について体系的かつ共有可能な記事を書いてから長い時間が経ちました。約 1 年間、私は外部リン...

サーバーサブ $8.99/シンガポール/Xen/512MB RAM/50GB HDD/1000MB/無制限

Serversub は (2009 年に設立) シンガポールに 1000M ポートを備えたデータ セ...