Confluent Japan Community Blog

Confluent Japan Community が提供するストリーミングデータを扱うConfluent、Apache Kafkaに関する情報を提供します。

Confluent Japan Community が提供する apache Kafka および Confluent に関するブログ

Confluent Control Centerでの管理

- Kafkaと関連システムの一元管理 -

 

・ストリーミングデータの監視

Confluent Control Center(C3)は、Confluent Enterprise もしくは Confluent Cloud にて提供されるKafkaや周辺システムの構成管理ツールです。システムの監視は、Kafka環境にてKafka Cluster、Producer、Consumerのスループットが落ちていないかやハードウェアにてCPUやメモリーが異常値を示していないかなどを監視しますが、Apache Kafka が取り扱うデータはストリーミングデータが主であり、これらのデータは永続的に送られてくるものになります。そのデータを監視するためには、インフラやネットワークにおける異常値を検出することだけではなく、処理を行う上でBrokerが正常に稼働しているか、データ処理それぞれがどういう状態にあるかなどを監視する必要があります。Kafka Cluster の稼働状況がどういった状態なのかは非常に重要な要素です。ストリーミングデータを利用してアクションを行っている場合は、データの遅延などが起きることで提供しているサービス自体が止まってしまったり、他のシステムに影響を及ぼしたりするものもあります。例えば以前の記事で記載しているようなカードの不正利用検知などの場合、データが届かなければサービス自体が成り立たないものになります。インフラやネットワークのみの監視では、処理に何らかの問題が起きていた場合でも把握することができません。そのため、Confluent Platform では、C3にてKafka や周辺システム の状態を可視化したり、KSQLなどによるデータ取得を画面上で実行して取得データの確認等を行うなど運用におけるさまざまな機能を提供し、CLIを主に用いる、自力で運用と比較して、効率的かつ安全性の高い運用を実現できます。

f:id:Confluent:20190331123009p:plain

 

参考資料:

Confluent Control Center を使ったApache Kafkaの監視
https://www.confluent.io/blog/monitoring-apache-kafka-confluent-control-center-video-tutorials/

 

Confluent Control Center では、以下のようなモニタリングを行うことができます。
さまざなシステムと連携を行うとそれぞれのProducer、Consumerクラスタの稼働状態を管理する必要があります。C3では、それぞれのKafkaクラスタの状態を可視化し、問題を瞬時に把握することができます。また、Producerから提供されたデータをBrokerが受け取り、保存して、Comsumerからの要求で配信が完了するまでの一連のサイクルにてそれぞれの処理がどのくらいのパフォーマンスにて行われているかを把握することができます。これにより、すべてのメッセージにおいて配信状態、遅延の発生の有無、イベント処理のエラーなどを把握することができます。

 

 

・ストリーミング処理の追加

日に日に増えていくデータ種別に対応するため、状況に応じて新たな接続をサポートする必要があります。C3では、Confluent にて認定しているコネクタでの接続を容易に実現するための接続管理を提供しています。また、Consumerによる要求に対して配信するデータをさまざまな形で変換を行う場合がありますが、C3ではデータ形式の変更や作成した変換情報が正しいデータになっているかのテストなどをすべてC3上で対応、確認、実行までを行えます。

 

前回の記事で記載しているKafkaのKSQLは、データの変換や加工等を実現します。C3では、KSQLの実装などさまざまなストリーム処理を実装するための運用管理機能が備わっています。

 

KSQLは、柔軟な記述を行うことが出来、Topic からテーブルを作成してそこにデータを書き込んだり、ストリーミングデータをフィルタリングして提供することなどができますが、C3ではこれらのデータ処理をテスト実行し適切なデータを得られるかを確認することができます。確認したデータが想定と異なっている場合は、画面上に生成されているKSQLの記述を変更し、再度テスト実行を行いデータの確認を行うことができるため、作業における正確性と効率の両方を実現する管理ツールとなっています。
さらに、KSQLの構文自体をGUIを通じて必要な内容をクリックしていくことで自動的に生成してくれるため、作業を行う上での補完的な役割もしてくれます。
これらの仮想実行や適用などの作業は、KSQLだけではなく、Kafka Topicの検査(確認)、Kafka Connectの動作確認などさまざまな作業において利用することができます。

 

すでにKafkaをさまざまな形で活用しており、Kafkaのコマンドラインでの対応になれている方には、Confluent のCLIを使うことで同じ形式でコマンドラインを利用した実装も行うことができます。C3では、GUIでの設定の登録、テスト、実装の流れを行う形とCLIを使いコマンドラインベースで対応を行う形があります。C3はGUIを利用して運用を行うことができるため、管理などを容易にしてくれます。また、それだけではなく、スクリプトなどによる自動化の際には有利なCLIもサポートされていることがメリットになります。

f:id:Confluent:20190331123832p:plain

 

参考資料:
Confluenceプラットフォーム5.0の紹介
https://www.confluent.io/blog/introducing-confluent-platform-5-0/

 

・Control Centerでクラスタの設定管理

Confluent Control Centerは、Apache Kafkaを設定する上でその手助けをしてくれます。Kafkaの設定は状況に応じて利用方法などが異なることから正しい構成に迷うことがあります。それらを補うためによく使われる設定内容の提供やデフォルト設定値のお知らせ、他システムへの影響など運用を行うために必要な情報を提供してくれます。C3では、Topic や Consumer Group はACLによってそのアクセスを制御します。ACL管理自体がKafka 2.0 より簡易に設定することができるようになりましたが、C3にて可視化することができるため、誤った制御や想定外のアクセス許可を提供しているなどはより容易に確認することができます。また、各topicなどでどのような設定を行っているかを可視化することができます。

 

f:id:Confluent:20190331123931p:plain

 

この他にもC3にて行うことができる設定があります。

  • Brokerの構成と確認
  • topicの状態確認
  • Consumerのラグ

 

C3は、Kafkaの状態を監視することができるGUIというだけでなく、ブローカーやKSQLなどを構成するためのツールであったり、それぞれの状態をアナウンス、検査をしてより適切なKafkaの運用を実現するツールとして利用することができます。

 

参考資料:

Confluenceプラットフォームの紹介

https://www.confluent.io/blog/introducing-confluent-platform-preview-releases/

まとめ

Confluent Control Centerは、Confluent Platform のエンタープライズクラウドの両エディションにて利用することができる仕組みとなっています。通常のシステム監視だけでは不十分なストリーミングデータの監視だけではなく、運用をより容易に行うことを提供するなど重要な役割を提供する管理システムになっています。

そのメリットは大きく2つあります。
一つは、Kafka Broker クラスタやKafka Connect、KSQLクラスタの監視、サービスアウトや負荷のロードバランシングなどのオペレーションを行うことができます。
もう一つとしては、新たなTopicの追加やConnector、KSQLによる処理の追加をGUIにて行うことができる部分です。