Apache Kafka監視

Apache Kafka――概要

Apache Kafkaは、LinkedInが開発したオープン ソースで障害耐性の強い出版・購読型メッセージング システムです。分散型のログ サービスであるKafkaは、スループット、拡張性、信頼性、レプリケーションに優れており、従来型のメッセージ ブローカーの代わりに使われることが多々あります。

Apache Kafkaの監視――当社が提供すること

Apache Kafkaはデータ連携の優れた選択肢であり、高速かつ拡張性に優れています。Kafkaノードは、柔軟に作成・切断が可能です。何1,000ものクライアントからの読み書きを、単一ノードでリアルタイム処理できます。データストリームはパーティションに分割し、別々のブローカーへ拡散します。一見、シンプルそうでありながら、Kafkaの詳細技術は深遠です。この技術詳細にきちんと対応し、トラブルシュートとパフォーマンスの最適化を実現するには、堅牢なKafka監視ソフトウェアが必須なのです。

Applications Managerは、Kafkaメトリックの収集、クラスターの管理、問題発生時の自動アラートを実行できます。ここでは、Kafka監視に必要なことと、収集できるパフォーマンス メトリックを案内します。

  • リソース利用率詳細:Kafkaサーバー、メモリとCPUを監視してを自動ディスカバリし、リソース消費に変動があればアラートします。
  • スレッドとJVMの利用率:デーモン スレッド、ピーク スレッド、ライブ スレッドなどのメトリックで、読み込み利用率を追跡します。スレッドがサーバー メモリに過剰負荷となっていないか、把握可能です。
  • ブローカー、コントローラー、レプリケーションの統計:アクティブなコントローラーを測定し、稼働中のブローカーに不可用パーティションがないか確認します。ログ フラッシュ遅延の増大で、パイプライン渋滞が起きぬよう監視できるほか、レプリケーションが設定より低調なパーティションも判別します。
  • ネットワークとトピックの詳細:処理速度の低下を起こしているリクエスト セグメントをピンポイントで特定できます。ホストのネットワーク利用量を継続監視し、パフォーマンス低下がネットワークの問題なのか、ホストの問題なのか判定可能です。ブローカー トピックの通信速度も把握し、ディスク スループットがボトルネックになるのも回避できます。
  • パフォーマンス低下を迅速に解決:Kafkaのコンポーネントでパフォーマンス低下があれば、ただちに通知します。ボトルネックを把握し、エンド ユーザー体感に影響する予兆のうちに、手早く是正アクションを起こせます。

Apache Kafka――新規監視を追加するには

サポート対象のバージョン:バージョン0.7.0から0.10.0.1

新規監視の作成手順

Apache Kafka監視を作成するには、次の手順に従ってください。

  • 新規監視のリンクをクリックします。Apache Kafkaを選択してください。
  • 監視の表示名を入力してください。
  • Kafkaを実行しているホストのIPアドレスか名前を入力してください。
  • JMXポート番号をフィールドに入力します。
  • ユーザー名、パスワード、JNDIパスなどの認証情報を入力するか、認証情報マネージャーのリストから選択します。
  • ポーリング間隔を入力してください(分)。
  • Apache Kafkaサーバーにアクセス可能か確認するには、認証情報のテスト ボタンをクリックしてください。
  • Apache Kafka監視を関連付ける監視グループを、コンボボックスで選択します(任意項目)。監視は複数グループに関連付け可能です。
  • 監視の追加をクリックすると、ネットワークからApache Kafkaを検出し、監視が始まります。

AddMonitor APIでApache Kafka監視を追加する

構文

http://[Host]:[Port]/AppManager/xml/AddMonitor?apikey=[API_KEY]&type=Kafka&displayname=[DISPLAY_NAME]&HostName=[HOST_NAME]&port=[PORT]&username=[USER_NAME]&password=[PASS_WORD]&JNDIPath=/jmxrmi 

リクエスト パラメーター

APIリクエストにかかわるパラメーターを下に記します。共通リクエスト パラメーターのリストも参照ください。

フィールド 説明

type

追加するデータベースのタイプです。値はKafkaにしてください。

displayname

Kafka監視の表示名です。

hostname

Kafkaサーバーを実行しているホストの名前です。

port

Kafkaサーバーを実行しているポートの番号です。

username

Apache Kafkaサーバーへのアクセス権限を持つユーザーの名前を指定してください。

JNDIPath 利用するJNDIパスを指します。

リクエスト サンプル

http://prod-server8:9091/AppManager/xml/AddMonitor?apikey=15c64bc4cca4a3c45d0369fca1877e8a&type=Kafka&displayname=Kafka&HostName=172.20.8.62&Port=9999&UserName=&Password=&JNDIPath=/jmxrmi

監視対象のパラメーター

監視タブをクリックすると監視カテゴリ ビューへ移動します。ミドルウェア/ポータル テーブルでApache Kafkaをクリックすると、Apache Kafka一括設定ビューが、3つのタブに分類・表示されます。

  • 可用性タブでは、過去24時間か30日の可用性履歴がわかります。
  • パフォーマンスタブでは、過去24時間か30日のステータスとイベントがわかります。
  • リスト ビューでは、一括管理設定が可能です。

監視名をクリックすると、全サーバーの詳細が次のタブで表示されます。

概要

パラメーター 説明

メモリ詳細

総物理メモリ サイズ 物理メモリの総量です(MB)。
空き物理メモリ サイズ 空き物理メモリの量です(MB)。
コミット済み仮想メモリ サイズ 実行中のプロセスに保証された仮想メモリの量を指します(MB)。
総スワップ スペース サイズ JVMが保持している仮想メモリの総量です。
空きスワップ スペース サイズ 空き仮想メモリ サイズ

スレッド詳細

デーモン スレッド数 実行中のデーモン スレッドの数です。
ピーク スレッド数 Java仮想マシンの起動か、ピークのリセットが発生して以来の、ライブ スレッドのピーク数を表します。
ライブ スレッド数 実行中のライブ スレッドの数です。
総起動スレッド数 Java仮想マシンの開始以来、作成・起動したスレッドの総数を指します。

ヒープと非ヒープ メモリ詳細

非ヒープ メモリ使用率 利用中の非ヒープ メモリ
ヒープ メモリ使用率 利用中のヒープ メモリ


コントローラー詳細

Kafkaクラスターでは、ブローカー サーバーの1つがコントローラーとして動作し、パーティションやレプリカのステータス管理を行うほか、パーティション再割り当てなどの管理タスクを実行します。

パラメーター 説明

Kafkaコントローラー詳細

アクティブ コントローラー数 クラスター内のアクティブ コントローラーの数です。
オフライン パーティション数 利用不能パーティションの数です。
リーダー選挙レート リーダー選挙のレートを表します。パーティションのリーダーがダウンすると、新規リーダーの選挙が始まります。
アンクリーンなリーダー選挙レート アンクリーンなリーダー選挙のレートを表します。リーダー選挙をクリーンに実行できないのは、Kafkaブローカーの中に、リーダーに適任のものが見つからない場合です。パーティション リーダーを務めるブローカーがオフラインになると、パーティションのISRから新規リーダーが選ばれます。アンクリーンなリーダー選挙は、同期中のレプリカが見つからない場合の特例です。


ブローカー詳細

パラメーター 説明

ログ詳細

ログ フラッシュ レート 非同期のディスク ログ フラッシュ レートを表します。

ブローカー トピックのメトリック

受信バイト/分 集約データ受信速度を指します(バイト/分)。ブローカーからトピックへのデータ書き込みです。
送信バイト/分 集約データ送信速度を指します(バイト/分)。
許否バイト/分

ブローカーのメッセージ拒否によるデータ量の推移を表します(バイト/分)。

取得リクエスト失敗/分 トピックで、消費者からのデータ読み込みリクエストを、ブローカーが処理に失敗するペースを表します(数/分)。
プロデューサー リクエスト失敗/分 プロデューサーからのリクエスト失敗ペースです(数/分)。
受信メッセージ/分 Kafkaブローカーへのメッセージの数を指します。

レプリケーション マネージャー

ISR拡大/分(ISR Expands/Min) 同期レプリカ(ISR:In-Sync Replica)の、拡大ペースを指します(数/分)。ブローカー ダウンの際は、一部パーティションでISRが縮小します。ブローカーがアップに戻りレプリカの更新が終わると、ISRは拡張します。
ISR縮小/分(ISR Shrinks/Min) 同期レプリカ(ISR:In-Sync Replica)の、縮小ペースを指します(数/分)。ブローカー ダウンの際は、一部パーティションでISRが縮小します。ブローカーがアップに戻りレプリカの更新が終わると、ISRは拡張します。
リーダー数 あるホストがリーダーを務めるパーティションの数です。
パーティション数 クラスターにあるパーティションの数です。
レプリケーション過小パーティション クラスターに、レプリケーション過小のパーティションがいくつあるか示します(非同期状態のレプリカがあるパーティション)。
リクエスト ハンドラー平均アイドル率(%) リクエスト ハンドラー スレッドがアイドルの時間の比率を示します。


ネットワーク詳細

パラメーター 説明

リクエスト処理レート

リクエスト プロデュース/分 ブローカーにあるトピックへの、メッセージ書き込み速度を表します(数/分)。
消費者の取得リクエスト/分(Request Fetch Consumer/Min) ブローカーにあるトピックから、消費者がデータを取得する速度を表します。
フォロワーの取得リクエスト/分(Request Fetch Follower/Min) パーティションのフォロワーが新規データを取得する速度を表します。

リクエストの所要時間

プロデュース総時間/分 特定リクエストへの対応にかかる時間を表します。
消費者の総取得時間/分 ブローカーにあるトピックから消費者がデータを取得するのにかかる時間を指します。
フォロワーの総取得時間/分 パーティションのフォロワーが、新規データの取得にかける時間を指します。

ネットワーク プロセッサー レート

ネットワーク プロセッサー平均アイドル率(分ごと%) ネットワーク プロセッサーの、分ごとの平均空き容量を表します。


トピック詳細

パラメーター 説明

トピック詳細

トピック名

トピックの名前を指します。

受信バイト/分 集約データ受信速度を指します(バイト/分)。ブローカーからトピックへのデータ書き込みです。
送信バイト/分 集約データ送信速度を指します(バイト/分)。
取得リクエスト失敗/分 取得リクエスト失敗の発生ペースを指します(数/分)。
プロデューサー リクエスト失敗/分 プロデューサー リクエスト失敗の発生ペースを指します(数/分)。
受信メッセージ/分 Kafkaブローカーへの受信メッセージの数を指します。


設定

パラメーター 説明

ストレージ詳細

ブート クラス パス ブート ストラップ クラス ローダーが、クラス ファイルの検索に使うパスを示します。
クラス パス システム クラス ローダーがクラス ファイルの検索に使うJavaクラス パスを示します。
Specベンダー Kafkaが実装しているJMX Specificationのベンダーを表します。
Specバージョン Kafkaが実装しているJMX Specificationのバージョンを表します。
VM名 Java仮想マシンの名前です。
VMベンダー Java仮想マシンのインプリメンテーション ベンダーを表します。