著者: 伊藤 雅博, 株式会社日立製作所
はじめに
OpenShift上にRed Hat Streams for Apache Kafka Console (StreamsHub Console)をデプロイする手順と、このWebコンソールで参照できるKafkaクラスタの情報を紹介します。
記事一覧:
- AWSにおけるOpenShiftプライベートクラスタの構築
- OpenShiftにStreams for Apache Kafka (Strimzi) をデプロイする
- Streams for Apache Kafka Console (StreamsHub Console) をデプロイする(本稿)
- Streams for Apache Kafka (Strimzi) の認証・認可
Streams for Apache Kafka Console (StreamsHub Console) の概要
Streams for Apache Kafka Consoleは、Kafkaクラスタ(Strimzi)の監視用WebコンソールであるStreamsHub Consoleを基盤とした製品です。本稿で紹介する手順の多くはStreamsHub Consoleでも同様に利用できます。以下では本製品をKafkaコンソールと呼称します。
Kafkaコンソールは、Kafkaクラスタの内部状態を参照できるWeb UIであり、以下の情報を確認できます。
- ノード情報
- Controller/Brokerノードの一覧、現在のActive Controller
- Topic情報
- Topicの一覧
- Topic内のメッセージ
- Topic Partitionの一覧、複製状態、データサイズ
- Topicを購読しているConsumer Group一覧
- Topicの設定
- Consumer Group情報
- Consumer Groupの一覧
- Consumer Groupが購読するTopic Partition
Kafkaコンソールを使用することで、KafkaのCLIツールで確認できる情報の多くをWebブラウザで確認できます。ただし参照専用であり更新は出来ません。
Streams for Apache Kafkaの基本的な運用では、Kafkaクラスタの状態更新はリソースファイルで実施し、状態参照はKafkaコンソールで行います。Kafka CLIツールは動作確認やデバッグ、特殊な運用でのみ使用します。
- 公式ドキュメント: Streams for Apache Kafka Console の使用
前提環境
Kafkaクラスタ
今回はOpenShiftにStreams for Apache Kafkaをデプロイするで構築済みのKafkaクラスタに、Kafkaコンソールを接続します。
- Cluster Operatorバージョン:
3.0.1-3
前提となるKafkaクラスタの構成を以下に示します。
Kafkaサーバのリスナ
Kafkaサーバには以下のリスナを定義しています。今回デプロイするKafkaコンソールは、無認証のplainリスナに接続して情報を参照します。
| リスナ名 | ポート | 認証方式 | 公開先 (Service) |
|---|---|---|---|
plain |
9092 | なし | 内部 (ClusterIP) |
tls1 |
9093 | TLSサーバ認証 | 内部 (ClusterIP) |
tls2 |
9094 (443) | TLSサーバ認証 | 外部 (Route) |
Console Operatorのインスト―ル
OpenShift Webコンソールのソフトウェアカタログ(OperatorHub)から、Streams for Apache Kafka Consoleをインストールします。
- Console Operatorバージョン:
3.0.1-3
Kafkaコンソールのデプロイ
Kafkaコンソールのリソースファイルを作成します。今回は無認証のリスナに接続するためユーザ情報は不要です。認証ありのリスナに接続する方法は第4回の投稿で説明します。
---
# Kafkaコンソール
apiVersion: console.streamshub.github.com/v1alpha1
kind: Console
metadata:
name: my-console
namespace: kafka-01
spec:
# OpenShiftクラスタ外におけるコンソールのホスト名
hostname: my-console.ocp420.ossc.hitachi.com
# 接続先Kafkaクラスタ
kafkaClusters:
# クラスタ名
- name: my-cluster-01
# OpenShiftプロジェクト名
namespace: kafka-01
# リスナ名
listener: plain # 無認証のリスナ
# 認証ありのリスナに接続する場合は、認証用のユーザ(KafkaUser)を指定
#credentials:
# kafkaUser:
# # 認証ユーザ名
# name: console-user
---
リソースファイルを適用します。
oc apply -f my-console.yaml -n kafka-01
KafkaコンソールのPodがデプロイされます。
Kafkaコンソールにログイン
WebブラウザからKafkaコンソールにアクセスします。
- KafkaコンソールのURL: https://my-console.ocp420.ossc.hitachi.com/
Kafkaコンソールの画面
Kafkaコンソールではクラスタ、Topic、ノード、Consumer Groupの情報を参照できます。
クラスタ情報
Topic情報
Topicの一覧
Topic内のメッセージ
Topic Partitionの一覧、複製状態、データサイズ
Topicを購読しているConsumer Group一覧
Topicの設定
ノード情報
Controller/Brokerノードの一覧、Active Controller
Consumer Group情報
Consumer Groupの一覧
Consumer Groupが購読するTopic Partition
おわりに
本稿ではKafkaコンソールのデプロイ方法と参照可能な情報を紹介しました。
次回はStreams for Apache Kafkaの認証・認可の設定方法を紹介します。











