Streams for Apache Kafka Console の使用
Streams for Apache Kafka Console による Streams for Apache Kafka のデプロイメントのサポート
概要
はじめに リンクのコピーリンクがクリップボードにコピーされました!
Red Hat ドキュメントへのフィードバック (英語のみ) リンクのコピーリンクがクリップボードにコピーされました!
Red Hat ドキュメントに関するご意見やご感想をお寄せください。
改善を提案するには、Jira 課題を作成し、変更案を説明してください。ご要望に迅速に対応できるよう、できるだけ詳細にご記入ください。
前提条件
-
Red Hat カスタマーポータルのアカウントがある。このアカウントを使用すると、Red Hat Jira Software インスタンスにログインできます。
アカウントをお持ちでない場合は、アカウントを作成するように求められます。
手順
- 以下の Create issue をクリックします。
- Summary テキストボックスに、問題の簡単な説明を入力します。
Description テキストボックスに、次の情報を入力します。
- 問題が見つかったページの URL。
-
問題の詳細情報。
他のフィールドの情報はデフォルト値のままにすることができます。
- レポーター名を追加します。
- Create をクリックして、Jira 課題をドキュメントチームに送信します。
フィードバックをご提供いただきありがとうございました。
第1章 Streams for Apache Kafka Console の概要 リンクのコピーリンクがクリップボードにコピーされました!
Streams for Apache Kafka Console は、Kafka クラスターの管理を容易にするユーザーインターフェイスを提供し、ユーザーインターフェイスから各クラスターを監視、管理、最適化するためのリアルタイムの分析情報を提供します。
Streams for Apache Kafka によって管理される Kafka クラスターを接続すると、ユーザーインターフェイスからリアルタイムの分析情報を取得し、クラスターのパフォーマンスを最適化できます。コンソールのホームページには接続された Kafka クラスターが表示され、ブローカー、トピック、パーティション、コンシューマーグループなどのコンポーネントに関する詳細情報にアクセスできます。
コンソールから Kafka クラスターのステータスを表示してから、クラスターのブローカーとトピックや、Kafka クラスターに接続されているコンシューマーグループに関する情報を表示するために移動できます。
第2章 コンソールのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
専用 Operator を使用してコンソールをデプロイします。Operator をインストールしたら、コンソールのインスタンスを作成できます。
コンソールインスタンスごとに、Operator は Kafka クラスターのメトリクスを収集して表示するための Prometheus インスタンスを必要とします。OpenShift の組み込みユーザーワークロードモニタリングなど、既存の Prometheus ソースを使用するようにコンソールを設定できます。ソースが設定されていない場合、Operator はコンソールがデプロイされるときにプライベート Prometheus インスタンスを作成します。ただし、このデフォルト設定は実稼働環境では推奨されず、開発または評価の目的でのみ使用する必要があります。
2.1. デプロイメントの前提条件 リンクのコピーリンクがクリップボードにコピーされました!
コンソールをデプロイするには、次のものが必要です。
- OpenShift 4.14 以降のクラスター。
-
ocコマンドラインツールがインストールされ、OpenShift クラスターに接続するように設定されている。 -
system-adminなどのcluster-admin権限を持つアカウントを使用して OpenShift クラスターにアクセスします。 - OpenShift クラスター上で実行されている Streams for Apache Kafka によって管理される Kafka クラスター。
Streams for Apache Kafka によって管理される Kafka クラスターを、コンソールを表す Kafka ユーザーとともにインストールするためのサンプルファイルが用意されています。サンプルファイルを使用すると、最も短時間でコンソールをセットアップして試すことができます。ただし、独自の Streams for Apache Kafka デプロイメントを使用することもできます。
2.1.1. 独自の Kafka クラスターの使用 リンクのコピーリンクがクリップボードにコピーされました!
独自の Streams for Apache Kafka デプロイメントを使用する場合は、コンソールに付属するサンプルデプロイメントファイルと比較して設定を確認してください。
各 Kafka クラスターについて、クラスターのインストールに使用する Kafka リソースを次のように設定する必要があります。
- コンソールが接続するための十分な認可
コンソールに特定のデータを表示するためのメトリクスプロパティー
メトリクスの設定は、サンプルの
Kafka(console-kafka) およびConfigMap(console-kafka-metrics) リソースで指定されているプロパティーと同じである必要があります。
2.1.2. 新しい Kafka クラスターのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
Streams for Apache Kafka がすでにインストールされているが、コンソールで使用するために新しい Kafka クラスターを作成する場合は、開始に役立つサンプルのデプロイメントリソースを利用できます。
サンプルリソースによって作成されるものは次のとおりです。
- SCRAM-SHA-512 認証を使用する KRaft モードの Kafka クラスター
-
クラスターノードを管理するための Strimzi
KafkaNodePoolリソース -
Kafka クラスターへの認証および認可されたコンソール接続を可能にする
KafkaUserリソース
040-KafkaUser-console-kafka-user1.yaml ファイル内の KafkaUser カスタムリソースには、Kafka クラスターへの認可済みアクセスをコンソールに提供するために必要な ACL タイプが含まれています。
最低限必要な ACL ルールの設定は次のとおりです。
-
clusterリソースに対するDescribe、DescribeConfigs権限 -
すべての
topicリソースに対するRead、Describe、DescribeConfigs権限 -
すべての
groupリソースに対するRead、Describe権限
機能するのに必要なアクセス権をコンソールに付与するには、各 Kafka クラスター接続で使用されるプリンシパルに対して最小レベルの認可を設定する必要があります。具体的な権限は、ACL、Keycloak 認可、OPA、カスタムソリューションなど、使用されている認可フレームワークによって異なる場合があります。
KafkaUser の認証と認可を設定するときは、対応する Kafka 設定と一致していることを確認してください。
-
KafkaUser.spec.authenticationはKafka.spec.kafka.listeners[*].authenticationと一致している必要があります。 -
KafkaUser.spec.authorizationはKafka.spec.kafka.authorizationと一致している必要があります。
前提条件
- OpenShift 4.14 以降のクラスター。
-
system:adminなどのcluster-admin権限を持つアカウントを使用して、OpenShift Container Platform Web コンソールにアクセスします。 -
ocコマンドラインツールがインストールされ、OpenShift クラスターに接続するように設定されている。
手順
コンソールのインストールアーティファクトをダウンロードして展開します。
アーティファクトは、Streams for Apache Kafka ソフトウェアダウンロードページ から入手できるインストールおよびサンプルファイルに含まれています。
アーティファクトは、Kafka クラスターをインストールするためのデプロイメント YAML ファイルを提供します。
examples/console/resources/kafkaにあるサンプルインストールファイルを使用します。環境変数を設定してインストールファイルを更新します。
export NAMESPACE=kafka export LISTENER_TYPE=route export CLUSTER_DOMAIN=<domain_name>
export NAMESPACE=kafka1 export LISTENER_TYPE=route2 export CLUSTER_DOMAIN=<domain_name>3 Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、namespace 変数は
kafkaと定義されており、リスナータイプはrouteです。Kafka クラスターをインストールします。
次のコマンドを実行して、YAML ファイルを適用し、定義された namespace に Kafka クラスターをデプロイします。
cat examples/console/resources/kafka/*.yaml | envsubst | kubectl apply -n ${NAMESPACE} -f -cat examples/console/resources/kafka/*.yaml | envsubst | kubectl apply -n ${NAMESPACE} -f -Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは、YAML ファイルを読み取り、namespace 環境変数を置き換え、結果として得られる設定を指定の OpenShift namespace に適用します。
デプロイメントのステータスを確認します。
oc get pods -n kafka
oc get pods -n kafkaCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力には Operator とクラスターの準備状況が表示されます
NAME READY STATUS RESTARTS strimzi-cluster-operator 1/1 Running 0 console-kafka-console-nodepool-0 1/1 Running 0 console-kafka-console-nodepool-1 1/1 Running 0 console-kafka-console-nodepool-2 1/1 Running 0
NAME READY STATUS RESTARTS strimzi-cluster-operator 1/1 Running 0 console-kafka-console-nodepool-0 1/1 Running 0 console-kafka-console-nodepool-1 1/1 Running 0 console-kafka-console-nodepool-2 1/1 Running 0Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
console-kafkaはクラスターの名前です。 console-nodepoolはノードプールの名前です。ノード ID は作成されたノードを識別します。
デフォルトのデプロイメントでは、3 つのノードをインストールします。
READY は、ready/expected 状態のレプリカ数を表示します。STATUS が Running と表示されれば、デプロイメントは成功です。
-
2.2. コンソール Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
次のいずれかの方法でコンソール Operator をインストールします。
- OpenShift Web コンソールの OperatorHub
- OpenShift CLI の使用
-
Consoleカスタムリソース定義 (CRD) の適用
推奨される方法は、OpenShift Web コンソールまたは OpenShift CLI (oc) のいずれかを使用して Operator をインストールすることです。どちらも Operator Lifecycle Manager (OLM) でサポートされています。OLM の使用が環境に適していない場合は、CRD を直接適用して Operator をインストールできます。
2.2.1. OperatorHub からの Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
この手順では、OpenShift Container Platform Web コンソールの OperatorHub を使用して Streams for Apache Kafka Console Operator をインストールし、サブスクライブする方法を説明します。
この手順では、プロジェクトを作成し、そのプロジェクトに Operator をインストールする方法を説明します。プロジェクトは namespace を表します。namespace を使用して機能を分離することで管理性を確保することを推奨します。
必ず適切な更新チャネルを使用してください。サポートされているバージョンの OpenShift を使用している場合は、デフォルトの alpha チャネルから Operator をインストールするのが通常は安全です。ただし、alpha チャネルで自動更新を有効にすることは推奨しません。自動アップグレードでは、アップグレード前の必要手順がスキップされます。バージョン固有のチャネルでのみ自動アップグレードを使用します。
前提条件
手順
OpenShift Web コンソールで Home > Projects ページに移動し、インストール用のプロジェクト (namespace) を作成します。
この例では、
streams-kafka-consoleという名前のプロジェクトを使用します。- Operators > OperatorHub ページに移動します。
ページをスクロールするか、Filter by keyword ボックスにキーワードを入力して、Streams for Apache Kafka Console Operator を見つけます。
Operator は、Streaming & Messaging カテゴリーにあります。
- Streams for Apache Kafka Console をクリックして、Operator の情報を表示します。
- Operator に関する情報を確認し、Install をクリックします。
Install Operator ページで、次のインストールおよび更新オプションから選択します。
Update Channel: Operator の更新チャネルを選択します。
- alpha チャネル (デフォルト) には最新の更新とリリースがすべて含まれます。これには、十分なテストを行った上、安定していることが想定される、メジャー、マイナー、およびマイクロリリースが含まれます。
- amq-streams-X.x チャネルには、メジャーリリースのマイナーリリースの更新およびマイクロリリースの更新が含まれます。X は、メジャーリリースのバージョン番号に置き換えてください。
- amq-streams-X.Y.x チャネルには、マイナーリリースのマイクロリリースの更新が含まれます。X はメジャーリリースのバージョン番号、Y はマイナーリリースのバージョン番号に置き換えてください。
Installation Mode: OpenShift クラスター内のすべての namespace に Operator をインストールします。
単一の Operator インスタンスにより、OpenShift クラスター全体に作成されるコンソールが監視および管理されます。
- Update approval: デフォルトでは、Streams for Apache Kafka Console Operator は、Operator Lifecycle Manager (OLM) によって最新のコンソールバージョンに自動的にアップグレードされます。今後のアップグレードを手動で承認する場合は、Manual を選択します。Operator の詳細は、OpenShift ドキュメント を参照してください。
- Install をクリックして、選択した namespace に Operator をインストールします。
Operator を使用する準備ができたら、Operators > Installed Operators に移動して、Operator が選択した namespace にインストールされていることを確認します。
ステータスは Succeeded と表示されます。
- コンソール Operator を使用して コンソールをデプロイし、Kafka クラスターに接続 します。
2.2.2. OpenShift CLI を使用した Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
この手順では、OpenShift CLI (oc) を使用して Streams for Apache Kafka Console Operator をインストールする方法を説明します。
前提条件
手順
コンソールのインストールアーティファクトをダウンロードして展開します。
アーティファクトは、Streams for Apache Kafka ソフトウェアダウンロードページ から入手できるインストールおよびサンプルファイルに含まれています。
アーティファクトは、コンソールをインストールするためのデプロイメント YAML ファイルを提供します。
Operator のインストール先の namespace を定義する環境変数を設定します。
export NAMESPACE=operator-namespace
export NAMESPACE=operator-namespaceCopy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、namespace 変数は
operator-namespaceと定義されています。OLM を使用してコンソール Operator をインストールします。
install/console-operator/olmにあるサンプルインストールファイルを使用します。このファイルは、クラスター全体のスコープを持つ Operator をインストールするものです。これにより、Operator がすべての namespace のコンソールリソースを管理できるようになります。次のコマンドを実行して、YAML ファイルを適用し、定義された namespace に Operator をデプロイします。cat install/console-operator/olm/*.yaml | envsubst | kubectl apply -n ${NAMESPACE} -f -cat install/console-operator/olm/*.yaml | envsubst | kubectl apply -n ${NAMESPACE} -f -Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは、YAML ファイルを読み取り、namespace 環境変数を置き換え、結果として得られる設定を指定の OpenShift namespace に適用します。
デプロイメントのステータスを確認します。
oc get pods -n operator-namespace
oc get pods -n operator-namespaceCopy to Clipboard Copied! Toggle word wrap Toggle overflow デプロイメント名と準備状態が表示されている出力
NAME READY STATUS RESTARTS console-operator 1/1 Running 1
NAME READY STATUS RESTARTS console-operator 1/1 Running 1Copy to Clipboard Copied! Toggle word wrap Toggle overflow READYは、ready/expected 状態のレプリカ数を表示します。STATUSがRunningと表示されれば、デプロイメントは成功です。- コンソール Operator を使用して コンソールをデプロイし、Kafka クラスターに接続 します。
2.2.3. CRD を使用したコンソール Operator のデプロイ リンクのコピーリンクがクリップボードにコピーされました!
この手順では、カスタムリソース定義 (CRD) を使用して Streams for Apache Kafka Console Operator をインストールする方法を説明します。
前提条件
手順
コンソールのインストールアーティファクトをダウンロードして展開します。
アーティファクトは、Streams for Apache Kafka ソフトウェアダウンロードページ から入手できるインストールおよびサンプルファイルに含まれています。
アーティファクトには、OLM なしで Operator をインストールするためのカスタムリソース定義 (CRD) ファイル (
console-operator.yaml) が含まれています。Operator のインストール先の namespace を定義する環境変数を設定します。
export NAMESPACE=operator-namespace
export NAMESPACE=operator-namespaceCopy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、namespace 変数は
operator-namespaceと定義されています。CRD を使用してコンソール Operator をインストールします。
install/console-operator/non-olmにあるサンプルインストールファイルを使用します。このリソースは、クラスター全体のスコープを持つ Operator をインストールするものです。これにより、Operator がすべての namespace のコンソールリソースを管理できるようになります。次のコマンドを実行して YAML ファイルを適用します。cat install/console-operator/non-olm/console-operator.yaml | envsubst | kubectl apply -n ${NAMESPACE} -f -cat install/console-operator/non-olm/console-operator.yaml | envsubst | kubectl apply -n ${NAMESPACE} -f -Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは、YAML ファイルを読み取り、namespace 環境変数を置き換え、結果として得られる設定を指定の OpenShift namespace に適用します。
デプロイメントのステータスを確認します。
oc get pods -n operator-namespace
oc get pods -n operator-namespaceCopy to Clipboard Copied! Toggle word wrap Toggle overflow デプロイメント名と準備状態が表示されている出力
NAME READY STATUS RESTARTS console-operator 1/1 Running 1
NAME READY STATUS RESTARTS console-operator 1/1 Running 1Copy to Clipboard Copied! Toggle word wrap Toggle overflow READYは、ready/expected 状態のレプリカ数を表示します。STATUSがRunningと表示されれば、デプロイメントは成功です。- コンソール Operator を使用して コンソールをデプロイし、Kafka クラスターに接続 します。
2.3. コンソールのデプロイと Kafka クラスターへの接続 リンクのコピーリンクがクリップボードにコピーされました!
コンソール Operator を使用して、Streams for Apache Kafka Console を、Streams for Apache Kafka によって管理される Kafka クラスターと同じ OpenShift クラスターにデプロイします。コンソールを使用して Kafka クラスターに接続します。
前提条件
- デプロイメントの前提条件
- コンソール Operator が OpenShift クラスターにデプロイされている。
手順
目的の namespace に
Consoleカスタムリソースを作成します。インストールアーティファクトによって提供される サンプル Kafka クラスター をデプロイした場合は、
examples/console/resources/console/010-Console-example.yaml設定ファイルで指定されている設定をそのまま使用できます。それ以外の場合は、Kafka クラスターに接続するようにリソースを設定します。
コンソール設定の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Console設定を適用してコンソールをインストールします。この例では、コンソールは
console-namespacenamespace にデプロイされます。kubectl apply -f examples/console/resources/console/010-Console-example.yaml -n console-namespace
kubectl apply -f examples/console/resources/console/010-Console-example.yaml -n console-namespaceCopy to Clipboard Copied! Toggle word wrap Toggle overflow デプロイメントのステータスを確認します。
oc get pods -n console-namespace
oc get pods -n console-namespaceCopy to Clipboard Copied! Toggle word wrap Toggle overflow デプロイメント名と準備状態が表示されている出力
NAME READY STATUS RUNNING console-kafka 1/1 1 1
NAME READY STATUS RUNNING console-kafka 1/1 1 1Copy to Clipboard Copied! Toggle word wrap Toggle overflow コンソールにアクセスします。
コンソールの実行中に、
Consoleリソース (spec.hostname) で指定したホスト名を使用してユーザーインターフェイスにアクセスします。
2.3.1. OIDC プロバイダーを使用して Kafka クラスターへのアクセスを保護する リンクのコピーリンクがクリップボードにコピーされました!
OIDC プロバイダーを使用して、Kafka クラスターへの安全なコンソール接続を有効にします。コンソールデプロイメントを設定して、OpenID Connect (OIDC) をサポートする Keycloak や Dex などの任意のアイデンティティープロバイダー (IdP) への接続を設定します。また、ユーザー認可の対象とロールも定義します。セキュリティープロファイルは、グローバルレベルですべての Kafka クラスター接続に対して設定できますが、特定の Kafka クラスターに対してロールとルールを追加することもできます。
設定例は、examples/console/resources/console/console-security-oidc.yaml ファイルにあります。この設定では、コンソールデプロイメントに次の追加プロパティーが導入されます。
security- コンソールが OIDC プロバイダーに接続するための接続の詳細を定義し、オプションで接続用の TLS を設定するプロパティーを指定します。
subjects- JWT クレームまたは明示的なサブジェクト名に基づいてサブジェクト (ユーザーまたはグループ) とそのロールを指定し、アクセス権限を決定します。
roles- ユーザーのロールと関連するアクセスルールを定義し、ユーザーが対話できるリソース (Kafka クラスターなど) と実行が許可される操作を指定します。
すべてのクラスターのセキュリティー設定の例
- 1
- OIDC プロバイダー検出の URL。
- 2
- クライアントを識別するための OIDC 認証のクライアント ID。
- 3
- 認証に使用されるクライアントシークレットとクライアント ID。
- 4
- OIDC プロバイダーへの TLS 接続を検証するためのオプションのトラストストア。
configMapKeyRefまたはsecretKeyRefを使用して、CA 証明書を含むConfigMapまたはSecretを参照します。PEM証明書ファイル (.crt)、およびPKCS12(.p12) またはJKS(.jks) キーストア形式をサポートします。 - 5
- ユーザーまたはグループを識別するための JWT クレームタイプまたは名前。
- 6
- 指定されたクレームに含まれるユーザーまたはグループ。
- 7
- 指定されたユーザーまたはグループに割り当てられたロール。
- 8
- クレームが指定されていない場合に、名前で追加された特定のユーザー。
- 9
- 割り当てられたロールがアクセスできるリソース。
- 10
- 割り当てられたロールがアクセスできる特定のリソース名。
- 11
- 指定されたリソースに対して割り当てられたロールに付与される権限。
個々の Kafka クラスターのロールとルールを指定する場合は、kafka.clusters[].security.roles[] の下に詳細を追加します。次の例では、console-kafka クラスターにより、開発者は選択した Kafka リソースをリスト表示および表示できます。管理者は特定のリソースを更新することもできます。
個々のクラスターのセキュリティー設定の例
2.3.2. メトリクスプロバイダーを有効にする リンクのコピーリンクがクリップボードにコピーされました!
メトリクスプロバイダーを有効にするようにコンソールのデプロイメントを設定します。Prometheus を使用して Kafka クラスターからメトリクスをスクレイピングするには、次のいずれかのソースを使用するように設定を指定できます。
-
OpenShift に組み込まれたユーザーワークロード監視
Prometheus Operator を組み込んだ OpenShift のワークロード監視を使用して、追加の監視ソリューションを必要とせずにコンソールサービスとワークロードを監視します。 -
スタンドアロンの Prometheus インスタンス
独自の Prometheus インスタンスに接続するための詳細と認証情報を提供します。 -
埋め込み Prometheus インスタンス (デフォルト)
コンソールインスタンスでのみ使用されるプライベート Prometheus インスタンスをデプロイします。インスタンスは、同じ OpenShift クラスター内のすべての Streams for Apache Kafka からメトリクスを取得するように設定されています。埋め込みメトリクスの使用は評価環境または開発環境を対象としており、運用シナリオでは使用しないでください。
OpenShift モニタリングとスタンドアロン Prometheus インスタンスの設定例は、次のファイルで入手できます。
-
examples/console/resources/console/console-openshift-metrics.yaml -
examples/console/resources/console/console-standalone-prometheus.yaml
この設定では、監視を有効にするための metricsSources プロパティーが導入されています。type プロパティーを使用してソースを定義します。
-
openshift-monitoring -
standalone(Prometheus) -
embedded(Prometheus)
kafkaClusters.metricsSource プロパティーを使用してメトリクスソースを Kafka クラスターに割り当てます。openshift-monitoring と embedded の設定には、type 以外の追加設定は必要ありません。
Openshift モニタリングのメトリクス設定例
スタンドアロン Prometheus モニタリングのメトリクス設定例
第4章 HOME: 接続されているクラスターの確認 リンクのコピーリンクがクリップボードにコピーされました!
ホームページには、接続された Kafka クラスターのスナップショットが表示され、各クラスターの Kafka バージョンと関連プロジェクトに関する情報が表示されます。詳細情報を確認するには、クラスターにログインします。
4.1. Kafka クラスターへのログイン リンクのコピーリンクがクリップボードにコピーされました!
コンソールは、SCRAM-SHA-512 および OAuth 2.0 認証メカニズムを使用した、Kafka クラスターへの認証済みユーザーのログインをサポートしています。セキュアなログインのために、Streams for Apache Kafka で認証を設定する必要があります。
Kafka クラスターに認証が設定されていない場合、またはコンソール設定で (SASL 認証設定を定義する) Kafka sasl.jaas.config プロパティーを使用して認証情報が指定されている場合は、認証なしでクラスターに匿名でログインできます。
前提条件
- OpenShift Container Platform クラスターへのアクセス。
- コンソールが デプロイされ、Kafka クラスターに接続するように設定 されている。
セキュアなログインのために、Kafka クラスターとユーザーに適切な認証が設定されている。
- SCRAM-SHA-512 設定
-
Kafka.spec.kafka.listeners[*].authenticationでリスナー認証がscram-sha-512に設定されている。 KafkaUser.spec.authenticationで設定されたユーザー名とパスワード。- OAuth 2.0 設定
- Kafka クラスターとユーザーのクライアント定義を備えた OAuth 2.0 認可サーバー。
-
Kafka.spec.kafka.listeners[*].authenticationでリスナー認証がoauthに設定されている。
認証の設定の詳細は、Streams for Apache Kafka のドキュメント を参照してください。
手順
- ホームページから、選択した Kafka クラスターの Login to cluster をクリックします。
使用する認証方法に応じてログイン認証情報を入力します。
-
SCRAM-SHA-512 の場合は、
KafkaUserに関連付けられているユーザー名とパスワードを入力します。 - OAuth 2.0 の場合は、Kafka リスナー用に設定された OAuth プロバイダーで有効なクライアント ID とクライアントシークレットを指定します。
-
SCRAM-SHA-512 の場合は、
- セッションを終了するには、ユーザー名をクリックして Logout をクリックするか、ホームページに戻ります。
第5章 Cluster overview ページ リンクのコピーリンクがクリップボードにコピーされました!
Cluster overview ページには、Kafka クラスターのステータスが表示されます。ここでは、Kafka ブローカーの準備状況の評価や、クラスターエラーや警告の特定、クラスターの健全性に関する洞察の取得が可能です。このページでは、クラスター内のトピックおよびパーティションの数と、それらのレプリケーションステータスに関する情報を一目で確認できます。使用済みディスク容量、CPU 使用率、メモリー使用量を表示するグラフで、クラスターメトリクスを確認してください。さらに、トピックメトリクスは、Kafka クラスターの全トピックの受信および送信バイトレートの合計に関する包括的なビューを提供します。
5.1. クラスターの調整を一時停止する リンクのコピーリンクがクリップボードにコピーされました!
次の手順に従って、クラスターの概要 ページからクラスターの調整を一時停止します。一時停止中は、調整が再開されるまで、Kafka カスタムリソースを使用したクラスター設定への変更は無視されます。
手順
- Streams for Apache Kafka Console から、接続する Kafka クラスターにログインし、クラスターの概要 と 調整の一時停止 をクリックします。
- 一時停止を確認すると、クラスターの概要 ページに、調整が一時停止されていることを示すステータスの変更の警告が表示されます。
- 調整を再開するには、調整の再開 をクリックします。
調整を一時停止した後、ステータスの変更が表示されない場合は、ページを更新してみてください。
5.2. クライアントアクセスのためのクラスター接続に関する詳細へのアクセス リンクのコピーリンクがクリップボードにコピーされました!
クライアントを Kafka クラスターに接続するときは、次の手順に従って、Cluster overview ページから接続に関する必要な詳細情報を取得します。
手順
- Streams for Apache Kafka Console から、接続する Kafka クラスターにログインし、Cluster overview と Cluster connection details をクリックします。
- ブートストラップアドレスと接続プロパティーをコピーして Kafka クライアント設定に追加し、Kafka クラスターとの接続を確立します。
クライアントが使用する認証タイプが、Kafka クラスターに設定された認証タイプと一致することを確認してください。
第6章 Topics ページ リンクのコピーリンクがクリップボードにコピーされました!
Topics ページには、Kafka クラスター用に作成したすべてのトピックが表示されます。トピックスに関する情報を確認するにはこのページを使用してください。
Topics ページには、トピックのパーティションの全体的なレプリケーションステータスや、トピックのパーティション数および関連するコンシューマーグループの数が表示されます。トピックが使用する全体的なストレージも表示されます。
内部トピックは変更しないでください。Topics ページで返されるトピックのリストで内部トピックを非表示にすることもできます。
トピック名をクリックすると、追加のトピック情報が一連のタブに表示されます。
- Messages
- Messages にはトピックのメッセージログが表示されます。
- Partitions
- Partitions には、トピック内の各パーティションのレプリケーションステータスが表示されます。
- Consumer groups
- Consumer groups には、トピックに接続されているコンシューマーグループとグループメンバーの名前とステータスがリスト表示されます。
- Configuration
- Configuration にはトピックの設定が表示されます。
トピックが Managed として表示されている場合、そのトピックは Streams for Apache Kafka Topic Operator を使用して管理されており、Kafka クラスターで直接作成されていません。
タブに表示される情報を使用して、トピックの設定を確認および変更します。
6.1. トピックメッセージの確認 リンクのコピーリンクがクリップボードにコピーされました!
Messages タブから特定のトピックのメッセージフローを追跡します。Messages タブには、トピックのメッセージの時系列リストが表示されます。
手順
- Streams for Apache Kafka Console から Kafka クラスターにログインし、Topics をクリックします。
- 確認したいトピックの名前をクリックします。
Messages タブの情報を確認してください。
各メッセージについて、タイムスタンプ (UTC 内)、オフセット、キー、値を確認できます。
メッセージをクリックすると、メッセージの詳細全体が表示されます。
表示する情報を選択するには、Manage columns アイコン (2 つの列として表示されます) をクリックします。
検索ドロップダウンをクリックし、詳細検索オプションを選択して検索を絞り込みます。
最新のメッセージを表示するか、指定した時間またはオフセットからのメッセージを表示するかを選択します。すべてのパーティションまたは指定したパーティションのメッセージを表示できます。
完了したら、CSV アイコン (CSV ファイルとして表されます) をクリックして、返されたメッセージの情報をダウンロードできます。
検索を絞り込む
この例では、検索用語とメッセージ、取得、パーティションのオプションが組み合わされています。
-
messages=timestamp:2024-03-01T00:00:00Z retrieve=50 partition=1 Error on page load where=value
このフィルターは、2024 年 3 月 1 日以降のパーティション 1 内のテキスト "Error on page load" をメッセージ値として検索し、最大 50 件のメッセージを取得します。
- 検索用語
特定の一致を検索するには、検索用語をテキスト (単語を含む) として入力し、メッセージ内の where で検索する用語を定義します。メッセージ内の任意の場所を検索したり、キー、ヘッダー、または値に検索範囲を絞り込むことができます。
以下に例を示します。
-
messages=latest retrieve=100 642-26-1594 where=key
この例では、メッセージキー
642-26-1594の最新の 100 件のメッセージを検索します。-
- メッセージオプション
メッセージを返す開始点を設定します。
最新のメッセージから開始するには、Latest を選択します。
-
messages=latest
-
ISO 8601 形式の正確な日時から開始する タイムスタンプ。
-
messages=timestamp:2024-03-14T00:00:00Z
-
パーティション内のオフセットから開始する オフセット。場合によっては、パーティションなしでオフセットを指定する必要があることがあります。ただし、最も一般的なシナリオは、特定のパーティション内のオフセットで検索することです。
-
messages=offset:5600253 partition=0
-
Unix 形式の時刻と日付から開始する Unix タイムスタンプ。
-
messages=epoch:1
-
- 検索オプション
取得オプションを設定します。
指定した数のメッセージを返す メッセージ数。
-
messages=latest retrieve=50
-
最新のメッセージをリアルタイムで 継続的 に返します。更新を一時停止するには、一時停止ボタン (2 本の縦線で表されます) をクリックします。更新を続行するには一時停止を解除してください。
-
retrieve=continuously
-
- Partition オプション
- すべてのパーティションに対して検索を実行するか、特定のパーティションに対して検索を実行するかを選択します。
6.2. トピックパーティションの確認 リンクのコピーリンクがクリップボードにコピーされました!
Partitions タブから特定のトピックのパーティションを確認します。Partitions タブには、トピックに属するパーティションのリストが表示されます。
手順
- Streams for Apache Kafka Console から Kafka クラスターにログインし、Topics をクリックします。
- Topics ページで、確認したいトピックの名前をクリックします。
- Partitions タブの情報を確認します。
パーティションごとに、そのレプリケーションステータスのほか、指定されたパーティションリーダー、レプリカブローカー、およびパーティションに保存されているデータ量に関する情報を確認できます。
レプリケーションステータスごとにパーティションを表示できます。
- In-sync
-
トピック内のすべてのパーティションが完全にレプリケートされます。パーティションは、そのレプリカ (フォロワー) が指定されたパーティションリーダーと 'in-sync' の場合、完全にレプリケートされます。レプリカは、許容ラグタイム内でリーダーパーティションのログ末尾のオフセットまでレコードを取得している場合に、'in-sync' となります。許容ラグタイムは、
replica.lag.time.max.msで決定されます。 - Under-replicated
- 一部のレプリカ (フォロワー) が同期していない場合、パーティションはレプリケーションが不十分です。under-replicated ステータスは、データレプリケーションでの潜在的な問題を示します。
- オフライン
- トピックの一部またはすべてのパーティションが現在使用できません。これはブローカーの障害やネットワークの問題などが原因である可能性があり、調査と対処が必要です。
パーティションリーダーとして指定されたブローカー、およびレプリカを含むブローカーに関する情報を確認することもできます。
- Leader
- リーダーはすべてのプロデュースリクエストを処理します。他のブローカーのフォロワーは、リーダーのデータをレプリケートします。フォロワーは、リーダーの最新のコミットメッセージに追いついた場合、同期しているとみなされます。
- Preferred leader
- 新しいトピックを作成するとき、Kafka のリーダー選択アルゴリズムは、各パーティションのレプリカのリストからリーダーを割り当てます。このアルゴリズムは、リーダーシップの割り当てをバランスよく分散することを目的としています。値が "Yes" の場合、現在のリーダーが優先リーダーであることを示し、リーダーシップがバランスよく分散していることを示します。値が "No" の場合は、リーダーシップの割り当ての不均衡を示唆している可能性があり、さらなる調査が必要です。パーティションのリーダーシップ割り当てのバランスが取れていない場合、サイズの不一致が生じる可能性があります。バランスのとれた Kafka クラスターでは、リーダーの役割がブローカー間で均等に分散します。
- Replicas
- リーダーのデータをレプリケートするフォロワーです。レプリカは、フォールトトレランスとデータの可用性を提供します。
ブローカー間のデータ分散に不一致がある場合、Kafka クラスターでバランスの問題が生じている可能性があります。特定のブローカーが一貫して大量のデータを処理している場合は、パーティションがブローカー間で均等に分散されていない可能性があります。これにより、リソースの使用率が不均一になり、ブローカーのパフォーマンスに影響を与えるおそれがあります。
6.3. トピックのコンシューマーグループの確認 リンクのコピーリンクがクリップボードにコピーされました!
Consumer groups タブから特定のトピックのコンシューマーグループを確認します。Consumer groups タブには、トピックに関連付けられたコンシューマーグループのリストが表示されます。
手順
- Streams for Apache Kafka Console から Kafka クラスターにログインし、Topics をクリックします。
- Topics ページで、確認したいトピックの名前をクリックします。
- Consumer groups タブの情報を確認します。
- コンシューマーグループのメンバーを確認するには、コンシューマーグループ名をクリックします。
コンシューマーグループごとに、そのステータス、全パーティションにわたる全体的なコンシューマーラグ、およびメンバーの数を確認できます。コンシューマーグループの確認に関する詳細は、8章Consumer Groups ページ を参照してください。
グループメンバーごとに、コンシューマーグループ内のコンシューマーに割り当てられた一意の (コンシューマー) クライアント ID、全体的なコンシューマーラグ、および割り当てられたパーティションの数が表示されます。コンシューマーグループメンバーの確認に関する詳細は、「コンシューマーグループのメンバーの確認」 を参照してください。
コンシューマーグループの動作を監視することは、コンシューマー間のメッセージ分散を最適化するために不可欠です。
6.4. トピック設定の確認 リンクのコピーリンクがクリップボードにコピーされました!
Configuration タブから特定のトピックの設定を確認します。Configuration タブには、トピックの設定値のリストが表示されます。
手順
- Streams for Apache Kafka Console から Kafka クラスターにログインし、Topics をクリックします。
- Topics ページで、確認したいトピックの名前をクリックします。
- Configuration タブの情報を確認します。
データソース別に選択するなど、確認するプロパティーをフィルタリングできます。
- DEFAULT_CONFIG プロパティーには、事前定義されたデフォルト値があります。この値は、このプロパティーにユーザー定義の値がない場合に使用されます。
- STATIC_BROKER_CONFIG プロパティーには、ブローカー全体、さらにはそのブローカーが管理するすべてのトピックに適用される事前定義された値があります。この値は、このプロパティーにユーザー定義の値がない場合に使用されます。
- DYNAMIC_TOPIC_CONFIG プロパティーの値は特定のトピックに対して設定されており、デフォルトの設定値をオーバーライドします。
Streams for Apache Kafka Topic Operator は、KafkaTopic リソースを使用して Kafka トピックを作成および管理するプロセスを簡素化します。
第7章 Brokers ページ リンクのコピーリンクがクリップボードにコピーされました!
Brokers ページには、Kafka クラスター用に作成したすべてのブローカーが表示されます。ブローカーごとに、そのステータスのほか、パーティションリーダーとフォロワーの数を含む、ブローカー全体のパーティションの分散を確認できます。
ブローカーのステータスは次のいずれかとして表示されます。
- Not Running
- ブローカーは、まだ起動されていないか、明示的に停止されています。
- Starting
- ブローカーは、メタデータクォーラムの検出と参加を含め、クラスターを初期化して接続しています。
- Recovery
- ブローカーはクラスターに参加しましたが、回復モードであり、完全に動作できるように必要なデータとメタデータを複製しています。顧客にサービスを提供していません。
- Running
- ブローカーは稼働中で、コントローラーに登録され、クライアントのリクエストを常時処理しています。
- Pending Controlled Shutdown
- ブローカーは制御されたシャットダウンプロセスを開始し、完了すると正常にシャットダウンします。
- Shutting Down
- ブローカーはシャットダウン中です。クライアント接続が切断され、内部リソースが解放されています。
- Unknown
- ブローカーの状態は不明です。予期しないエラーまたは障害が原因である可能性があります。
ブローカーにラック ID がある場合、これはブローカーが存在するラックまたはデータセンターの ID です。
ブローカー名の横にある右矢印 (>) をクリックすると、ホスト名やディスク使用状況など、ブローカーに関する詳細情報が表示されます。
クラスターで実行されている再バランスを表示するには、Rebalance タブをクリックします。
リソースを効率的に利用するために、分散が不均一な場合はリバランスを検討してください。
7.1. リバランスの管理 リンクのコピーリンクがクリップボードにコピーされました!
クラスター上で最適化提案を生成するように KafkaRebalance リソースを設定すると、Rebalance タブからそのステータスを確認できます。Rebalance タブには、最適化提案を管理できる KafkaRebalance リソースの時系列リストが表示されます。
Rebalance タブを使用するには、Kafka クラスターと並行して Cruise Control を実行できるようにする必要があります。Cruise Control を設定して使用し、提案を生成する方法の詳細は、Streams for Apache Kafka のドキュメント を参照してください。
手順
- Streams for Apache Kafka Console から Kafka クラスターにログインし、Brokers をクリックします。
Rebalance タブの情報を確認します。
各リバランスのステータスとタイムスタンプを UTC で確認できます。
Expand 表7.1 リバランスステータスの説明 ステータス 説明 NewOperator によってリソースがまだ認識されていない
PendingProposal最適化提案は生成されない
ProposalReady最適化提案は承認待ちである
Rebalancingリバランスが進行中
Stoppedリバランス停止した
NotReadyリバランス中にエラーが発生した
Readyリバランスが完了した
ReconciliationPausedリバランスは一時停止されている
注記strimzi.io/pause-reconciliationアノテーションが設定でtrueに設定されている場合、KafkaRebalanceリソースのステータスはReconciliationPausedに変わります。- リバランス名の横にある右矢印 (>) をクリックすると、リバランスモードや自動承認が有効かどうかなど、ブローカーに関する詳細情報が表示されます。リバランスによりブローカーが削除または追加された場合は、それらもリストされます。
最適化提案は、次の 3 つのモードのいずれかで生成できます。
-
fullはデフォルトのモードで、完全なリバランスを実行します。 -
add-brokersは、Kafka クラスターをスケールアップするときにブローカーを追加した後に使用されるモードです。 -
remove-brokersは、Kafka クラスターをスケールダウンするときにブローカーを削除する前に使用されるモードです。
提案の自動承認が有効になっていると、正常に生成された提案はクラスターの再バランスに直接送られます。
最適化提案の表示
生成された最適化提案を表示するには、KafkaRebalance リソースの名前をクリックします。最適化プロポーザルは、パーティションのワークロードをブローカー間でより均等に分散することで、Kafka クラスターの負荷をより均等にするために提案された変更の概要です
提案に表示されるプロパティーとその意味の詳細は、Streams for Apache Kafka のドキュメント を参照してください。
リバランスの管理
オプションアイコン (縦に並んだ 3 つのドット) を選択し、オプションをクリックしてリバランスを管理します。
-
提案を承認するには、Approve をクリックします。
提案で概説されているリバランス調整は、Kafka クラスターで実行されます。 -
新しい最適化提案を生成するには、Refresh をクリックします。
提案の生成と承認の間にギャップがあった場合は、クラスターの現在の状態がリバランスで考慮されるように提案を更新します。 -
リバランスを停止するには、Stop をクリックします。
リバランスには長い時間がかかり、クラスターのパフォーマンスに影響を与える可能性があります。リバランスを停止すると、パフォーマンスの問題を回避し、必要に応じて変更を元に戻すことができます。
利用可能なオプションは、KafkaBalance リソースのステータスによって異なります。たとえば、最適化提案の準備ができていない場合は承認できません。
第8章 Consumer Groups ページ リンクのコピーリンクがクリップボードにコピーされました!
Consumer Groups ページには、Kafka クラスターに関連付けられたすべてのコンシューマーグループが表示されます。コンシューマーグループごとに、そのステータス、全パーティションにわたる全体的なコンシューマーラグ、およびメンバーの数を確認できます。関連するトピックをクリックすると、Topics ページのタブ から入手できるトピック情報が表示されます。
コンシューマーグループのステータスは次のいずれかになります。
- Stable は、正常に機能していることを示します。
- Rebalancing は、コンシューマーグループのメンバーに対する調整が進行中であることを示します。
- Empty は、アクティブなメンバーが存在しないことを示します。Empty 状態の場合は、グループにメンバーを追加することを検討してください。
コンシューマーグループ名をクリックしてグループメンバーを確認します。コンシューマーオフセットをリセットするには、コンシューマーグループに対するオプションアイコン (縦に並んだ 3 つのドット) を選択します。
8.1. コンシューマーグループのメンバーの確認 リンクのコピーリンクがクリップボードにコピーされました!
Consumer Groups ページから、特定のコンシューマーグループのメンバーを確認します。
手順
- Streams for Apache Kafka Console から Kafka クラスターにログインし、コンシューマーグループ をクリックします。
- Consumer Groups ページから、確認するコンシューマーグループの名前をクリックします。
- メンバー ID の横にある右矢印 (>) をクリックして、メンバーが関連付けられているトピックパーティション、および想定されるコンシューマーラグを表示します。
グループメンバーごとに、コンシューマーグループ内のコンシューマーに割り当てられた一意の (コンシューマー) クライアント ID、全体的なコンシューマーラグ、および割り当てられたパーティションの数が表示されます。
特定のトピックパーティションのコンシューマーラグは、コンシューマーが取得した最後のメッセージ (コミットされたオフセット位置) と、プロデューサーが書き込んだ最新のメッセージ (末尾のオフセット位置) との間のギャップを反映します。
8.2. コンシューマーオフセットのリセット リンクのコピーリンクがクリップボードにコピーされました!
コンシューマーグループ ページから特定のコンシューマーグループのコンシューマーオフセットをリセットします。
古いデータを再処理する場合、不要なメッセージをスキップする場合、またはダウンタイムから回復する場合に、これを実行する必要がある場合があります。
前提条件
コンシューマーオフセットをリセットする前に、コンシューマーグループのすべてのアクティブなメンバーをシャットダウンする必要があります。
手順
- Streams for Apache Kafka Console から Kafka クラスターにログインし、コンシューマーグループ をクリックします。
- コンシューマーグループのオプションアイコン (縦に並んだ 3 つのドット) をクリックし、コンシューマーオフセットのリセットオプションをクリックして、Reset consumer offset ページを表示します。
オフセットリセットをコンシューマーグループに関連付けられているすべてのコンシューマートピックに適用するか、特定のトピックを選択するかを選択します。
トピックを選択した場合は、オフセットリセットをすべてのパーティションに適用するか、特定のパーティションを選択するかを選択します。
オフセットをリセットする位置を選択します。
-
カスタムオフセット
カスタムオフセットを選択した場合は、カスタムオフセット値を入力します。 - 最新のオフセット
- 最も早いオフセット
-
特定の日付と時刻
日付と時刻を選択した場合は、適切な形式を選択し、その形式で日付を入力します。
-
カスタムオフセット
- オフセットのリセットを実行するには、Reset をクリックします。
ドライランの実行
オフセットリセットを実際に実行する前に、ドライランオプションを使用して、変更を適用する前にどのオフセットがリセットされるかを確認できます。
- Reset consumer offset ページで、Dry run の横にある下矢印をクリックします。
-
実行するオプションを選択し、コンソールに結果を表示します。
または、ドライランコマンドをコピーし、コンシューマーグループに対して個別に実行することもできます。
コンソールの結果には、リセット操作に含まれる各トピックパーティションの新しいオフセットが表示されます。
結果をダウンロードするオプションが利用可能です。
付録A サブスクリプションの使用 リンクのコピーリンクがクリップボードにコピーされました!
Streams for Apache Kafka は、ソフトウェアサブスクリプションを通じて提供されます。サブスクリプションを管理するには、Red Hat カスタマーポータルでアカウントにアクセスします。
アカウントへのアクセス
- access.redhat.com に移動します。
- アカウントがない場合は作成します。
- アカウントにログインします。
サブスクリプションのアクティベート
- access.redhat.com に移動します。
- My Subscriptions に移動します。
- Activate a subscription に移動し、16 桁のアクティベーション番号を入力します。
Zip および Tar ファイルのダウンロード
zip または tar ファイルにアクセスするには、カスタマーポータルを使用して、ダウンロードする関連ファイルを検索します。RPM パッケージを使用している場合、この手順は必要ありません。
- ブラウザーを開き、access.redhat.com/downloads で Red Hat カスタマーポータルの Product Downloads ページにログインします。
- INTEGRATION AND AUTOMATION カテゴリーで、Streams for Apache Kafka エントリーを見つけます。
- 必要な Streams for Apache Kafka 製品を選択します。Software Downloads ページが開きます。
- コンポーネントの Download リンクをクリックします。
DNF を使用したパッケージのインストール
パッケージとすべてのパッケージ依存関係をインストールするには、以下を使用します。
dnf install <package_name>
dnf install <package_name>
ローカルディレクトリーからダウンロード済みのパッケージをインストールするには、以下を使用します。
dnf install <path_to_download_package>
dnf install <path_to_download_package>
改訂日時: 2025-10-24