KAFKAモニタリング
Featureプロジェク
WhaTapは、ユーザーが希望するソフトウェアのモニタリング支援の有無を簡単に確認し、簡単にモニタリングを開始できるように、新しくFeatureプロジェク(Features
)を導入しました。 Featureプロジェクは、既存のモニタリング製品を、ユーザーがモニタリングしようとするソフトウェアに合わせてリパッケージし、最適化されたモニタリングソリューションを提供します。 WhaTapのFeatureプロジェクを通じて、サービスの安定性と性能をより効果的に管理します。
KAFKAは、リアルタイムのデータフィードを処理して安定的に保存し、送信する作業に最適化された分散型ストリーミングプラットフォームです。 KAFKAを使用して、データストリームの異常現象を追跡できます。 KAFKAは分散型システムであるため、モニタリングを通じて、各ブローカー、トピック、パーティション、プロデューサー、およびコンシューマーの状態を詳細に確認する必要があります。
WhaTapは、新しいFeatureプロジェク方法でKAFKAモニタリングを提供します。 KAFKAクラスターの性能と状態を追跡し、問題を早期に検出し、解決するのに役立ちます。
-
メトリクスモニタリング: KAFKAブローカー、トピック、パーティション、プロデューサー、コンシューマーの様々なメトリクスをリアルタイムでモニタリングします。
-
カスタマイズされたダッシュボード: カスタマイズされたダッシュボードにより、メトリクスを効率的に照会できます。
-
通知設定: 設定した条件を検知時、リアルタイムで通知を送信してユーザーが問題に迅速に対応できます。
WhaTapKAFKAモニタリングを通じてKAFKAの複雑な運営環境を効果的に管理してみてください。
インストール
WhaTapのKAFKAモニタリングサービス利用のための基本設置方法をご案内します。
WhaTapモニタリングサービスを使用するには、会員登録後、プロジェクトを作成し、ターゲットサーバーにエージェントをインストールする必要があります。 会員登録に関する詳細は、次の文書を参照してください。
サポート環境
WhaTapのKAFKAモニタリングエージェントをインストールする前に、サポート環境を確認してください。
-
Kafka: Apache Kafka 3.x以降
-
Ubuntu: Ubuntu 12.04以降
-
OS: Red Hat 6 or equivalent(CentOS, Rocky Linux, Amazon Linux)
-
OSアーキテクチャ: Amd64/X86_64, Arm64/Aarch64
Featureプロジェクトを作成する
エージェントをインストールする前に、まずFeatureプロジェクト(Features
)を生成します。
-
WhaTapモニタリングサービスに移動し、ログインします。
-
プロジェクトを作成するには、左のサイドメニューからプロジェクト全体 > + Projectボタンを選択します。
-
商品選択画面でプロジェクトにインストールするFeature商品を選択します。
-
プロジェクト名、データサーバーリージョン、プロジェクトタイムゾーン項目を順番に設定します。
-
通知言語の設定で、警告通知メッセージの言語を選択します。
-
すべての設定を完了した後は プロジェクトを作成する ボタンを選択します。
KAFKAエージェントのインストール
Featureプロジェクト(Features
) 生成後、自動的に***KAFKAエージェントインストール***画面に移動します。 次の案内に従ってインストールします。
-
プロジェクトアクセスキーを確認します。
プロジェクトアクセスキーは、WhaTapサービスを活性化するための固有IDです。
プロジェクトアクセスキー発行
ボタンを選択します。 -
インストールスクリプトを作成します。
次のコマンドを実行してユーザー環境を自動的に認識し、KAFKAがインストールされているサーバーにインストールスクリプトを作成します。
curl http://repo.whatap.io/telegraf/feature/kafka/install_kafka_monitoring.sh -o install_kafka_monitoring.sh
次のコマンドを実行して、KAFKAエージェントをインストールします。
chmod +x install_kafka_monitoring.sh
sudo ./install_kafka_monitoring.sh "x604pf485d1kk-z6q14nuc509pk3-x39moealrfodum" "13.124.11.223/13.209.172.35"
-
エージェント設定および再起動後、モニタリングを開始します。
KAFKAにJolokiaエージェントを設定するために、次のコマンドを実行してから再起動します。
#cd {kafka home directory}/bin
sed -i '/^#!/a export KAFKA_OPTS='\''-javaagent:/usr/whatap/infra/feature/jolokia-agent-jvm-2.0.1-javaagent.jar=port=8778,host=127.0.0.1'\''' kafka-server-start.sh
./kafka-server-stop.sh
./kafka-server-start.sh
メインメニュー
カスタマイズされたダッシュボード
홈 화면 > Featureプロジェク(Features
)選択 > KAFKA > KAFKA ダッシューボード
WhaTapのKAFKAモニタリングは、KAFKAクラスターの性能と状態など、全体の現況を一目で把握できるよう、KAFKAブローカー、トピック、パーティション、プロデューサー、コンシューマーの様々なメトリクスをリアルタイムでモニタリングします。 各メトリクスを定期的に確認して、クラスターが最適な状態を維持するように管理できます。
WhaTapが提供するKAFKAカスタマイズされたダッシュボードは、次の3つのプリセットで構成されています。
-
Kafka Default
クラスター機能の動作有無が把握できる基本ダッシュボードです。 KAFKAクラスターの全体的な状態をリアルタイムでモニタリングし、性能の低下や障害を事前に検知できるようにします。
ダッシュボードのメトリクス案内
Kafka Overview
-
Active Controller Count: 現在アクティブなコントローラーの数です。 コントローラーはKafkaクラスターでパーティションㅡリーダーとレプリケーションを管理します。 通常、1つのアクティブコントローラーが存在します。
-
Brokers Online: オンライン状態のブローカーの数です。 ブローカーは、メッセージを保存し、クライアントのリクエストを処理する役割を果たします。
-
Online Partitions: オンライン状態のパーティション数です。 各トピックは複数のパーティションに分けられ、各パーティションは複数のブローカーにわたって保存されます。
-
Preferred Replica Imbalance: 好まれるレプリカの不均衡を示します。 この値が高いと、特定のブローカーにレプリカが集中していることを意味します。
-
Under Replicated Partitions: レプリケートされていないパーティションの数です。 この値がゼロでない場合、データ損失のリスクがあります。
-
Leader Count per Broker: 各ブローカーごとのリーダーパーティションの数を示します。 リーダーパーティションは、クライアントのリクエストを直接処理するパーティションです。
-
Unclean Leader Elections: 異常なリーダー選出の数です。 この値が高いと、クラスターの安定性に問題がある可能性があります。
-
Under min ISR Partitions: 最小ISR(同期されたレプリカ) 以下のパーティション数です。 ISRはデータの耐久性を保障します。
-
Offline Partitions Count: オフライン状態のパーティション数です。 パーティションがオフラインの場合、そのパーティションのデータにアクセスできません。
-
Broker Network Throughput
BytesOutPerSec
/BytesInPerSec
: ブローカーのネットワーク処理量を示します。 1秒あたりの送信/受信バイト数をグラフで表示します。
Java Virtual Machine
-
CPU Usage: JVMのCPU使用率を示します。 CPU使用率が高いと、性能に影響を及ぼす可能性があります。
-
JVM Memory Used: JVMが使用中のメモリ量を示します。 周期的にメモリが増加し、Garbage Collection(GC) 後に減少するパターンを示します。
-
Time Spent in GC: Garbage Collection(GC)に費やされた時間を示します。 GC時間の増加が性能低下につながる可能性があります。
Linux Disk I/O
-
Linux Disk Read Bytes: ディスク読み取りバイト数を示します。 ディスクの読み取り/書き込み量が高いと、I/Oのボトルネックが生じる可能性があります。
-
Linux Disk Write Bytes: ディスク書き込みバイト数を示します。 読み取りと同様に、書き込み量が高いと、性能に影響を及ぼす可能性があります。
-
-
Kafka Request
コンシューマーとプロデューサーに関連する処理性能が確認できるダッシュボードです。 Kafkaクラスターの様々な性能メトリクスをリアルタイムでモニタリングし、システムの状態を把握し、潜在的な問題を早期に検知できるようにします。
ダッシュボードのメトリクス案内
Processing Performance
-
Messages In: クラスター全体で1秒あたりに受信されるメッセージの数を示します。
-
Messages In per Broker: 各ブローカーごとに1秒あたりに受信されるメッセージの数を示します。
-
Bytes In: クラスター全体で1秒あたりに受信されるバイト数を示します。
-
Bytes In per Broker: 各ブローカーごとに1秒あたりに受信されるバイトの数を示します。
-
Request Queue Size: 現在処理されていないリクエストが、待機中のキューのサイズを示します。 キューのサイズが大きくなると、応答時間が長くなる可能性があります。
-
Response Queue Size: 応答待ちのリクエストが待機中のキューのサイズを示します。 キューのサイズが大きくなると、遅延が発生する可能性があります。
-
Network Processor Avg Usage Percent: ネットワークプロセッサの平均使用率を示します。 ネットワーク関連作業の負荷を示します。
-
Request Handler Avg Percent: リクエストプロセッサの平均使用率を示します。 リクエスト処理に対する負荷を示します。
Requests
-
Produce Request Per Sec: 1秒あたりに生成されるプロデューサーリクエストの数を示します。 高い値は、多くのデータがブローカーに送信されていることを意味します。
-
Consume Fetch Request Per Sec: 1秒あたりに生成されるコンシューマーのfetchリクエスト数を示します。 高い値は、多くのデータがコンシューマーに送信されていることを意味します。
-
Broker Fetch Request Per Sec: ブローカー間のfetchリクエスト数を示します。 データコピー用の内部トラフィックを表示します。
-
All Request Per Sec Across All Brokers: すべてのブローカーで処理される1秒あたりのリクエスト数を示します。 クラスター全体のリクエスト負荷を示します。
Errors
- Errors Per Sec: 1秒あたりに発生するエラー数を示します。 エラー数が多い場合、システムの安定性に問題がある可能性があります。
Offset Commit
- Offset Commit Request Per Sec: 1秒あたりにコミットされるオフセットリクエストの数を示します。 オフセットコミットは、コンシューマーグループがメッセージを処理した位置を示します。
Metadata
- Metadata Request Per Sec: 1秒あたりのメタデータのリクエスト数を示します。 メタデータのリクエストは、ブローカーとパーティション情報に対するリクエストを意味します。
Topic
-
IsrShrinks per Sec: 1秒あたりのISR(同期化されたレプリカ) 縮小イベントの数を示します。 ISRが縮小されると、データの耐久性に問題が発生する可能性があります。
-
IsrExpands per Sec: 1秒あたりのISR拡張イベント数を示します。 ISRが拡張されると、データの耐久性が向上する可能性があります。
-
Log size per Topic: トピックごとのログサイズを示します。 トピックデータのサイズを示します。
-
Log size per Broker: ブローカーごとのログサイズを示します。 ブローカーに保存されているデータのサイズを示します。
Consume Lag
- Lag: メッセージ消費の遅延を示します。 プロデューサーがメッセージを書き込む速度より、コンシューマーがメッセージを読み取る速度が遅い時に発生します。
-
-
Kafka Broker
ブローカーの性能情報が確認できるダッシュボードです。 Kafkaクラスターの性能状態をリアルタイムでモニタリングし、潜在的な問題を早期に検知できるようにします。
ダッシュボードのメトリクス案内
Broker Performance - Produce
-
Producer - RequestQueueTimeMs: プロデューサーのリクエストがキューに待機する時間をミリ秒(ms) 単位で表示します。 キューの待ち時間が長くなると、性能の低下が発生する可能性があります。
-
Producer - LocalTimeMs: プロデューサーリクエストがローカルのブローカーで処理される時間をミリ秒単位で表示します。
-
Producer - RemoteTimeMs: プロデューサーリクエストがリモートブローカーに送信され、処理される時間をミリ秒単位で表示します。
-
Producer - ResponseQueueTimeMs: プロデューサーリクエストの応答が、キューに待機する時間をミリ秒単位で表示します。
-
Producer - ResponseSendTimeMs: プロデューサーリクエストの応答がクライアントに送信される時間をミリ秒単位で表示します。
Broker Performance - Consume
-
Consumer - RequestQueueTimeMs: コンシューマーリクエストがキューに待機する時間をミリ秒単位で表示します。
-
Consumer - LocalTimeMs: コンシューマーリクエストがローカルブローカーで処理される時間をミリ秒単位で表示します。
-
Consumer - RemoteTimeMs: コンシューマーリクエストがリモートブローカーに送信され、処理される時間をミリ秒単位で表示します。
-
Consumer - ResponseQueueTimeMs: コンシューマーリクエストの応答がキューに待機する時間をミリ秒単位で表示します。
-
Consumer - ResponseSendTimeMs: コンシューマーリクエストの応答がクライアントに送信される時間をミリ秒単位で表示します。
Broker Performance - Fetch Follower
-
FetchFollower - RequestQueueTimeMs: フォロワーブローカーのfetchリクエストがキューに待機する時間をミリ秒単位で表示します。
-
FetchFollower - LocalTimeMs: フォロワーブローカーのfetchリクエストがローカルブローカーで処理される時間をミリ秒単位で表示します。
-
FetchFollower - RemoteTimeMs: フォロワーブローカーのfetchリクエストがリモートブローカーに送信され、処理される時間をミリ秒単位で表示します。
-
FetchFollower - ResponseQueueTimeMs: フォロワーブローカーのfetchリクエストの応答がキューに待機する時間をミリ秒単位で表示します。
-
FetchFollower - ResponseSendTimeMs: フォロワーブローカーのfetchリクエストの応答がクライアントに送信される時間をミリ秒単位で表示します。
ZooKeeper
-
ZooKeeper Request Latency: ZooKeeperリクエストの遅延時間を表示します。 高い遅延時間は、ZooKeeperの性能低下を示すことがあります。
-
ZooKeeper Connections per sec: 1秒あたりにZooKeeperに生成される接続数を表示します。
-
ZooKeeper Expired Connections per sec: 1秒あたりに満了したZooKeeper接続数を表示します。 接続のアクティブ期限は、セッションのタイムアウトなどで発生する可能性があります。
-
ZooKeeper auth failures per sec: 1秒あたりにZooKeeper認証の失敗回数を表示します。 認証の失敗が多い場合は、セキュリティや設定エラーに問題がある可能性があります。
-
ZooKeeper disconnects per sec: 1秒あたりのZooKeeper接続が切断された回数を表示します。 接続が頻繁に切れると、ネットワークやZooKeeperサーバーの性能に問題がある可能性があります。
-
アラート通知
ホーム画面 > Featureプロジェクト(Features
)選択 > アラート通知 > イベント設定
WhaTapKAFKAモニタリングは複合メトリクス通知をデフォルトで提供します。
複合メトリクスイベントについての詳細は、次の文書を確認します。