6. IBM Event Streamsへの接続情報の確認方法

前回の記事の続きです。

本記事では、IBM Event Streamsへの接続情報の確認方法を記述します。

1. [IBM Event Streamsのインストール方法](https://qiita.com/Gentaro7/items/5bc9676c87c70145991a)
1. [IBM Event Streamsのインスタンス作成方法](https://qiita.com/Gentaro7/items/a8900eefdafd3dc52bed)
1. [IBM Event StreamsのWebUIへのログイン方法](https://qiita.com/Gentaro7/items/46060353574c347d2dc6)
1. [IBM Event Streamsのサンプルアプリケーションの使い方](https://qiita.com/Gentaro7/items/df1e464de3cf6eee3e6b)
1. [IBM Event StreamsのGeoReplicatorの構成方法](https://qiita.com/Gentaro7/items/7196ca6cf3053c3de55b)
1. [IBM Event Streamsへの接続情報の確認方法](https://qiita.com/Gentaro7/items/99c82320be292a1fa896)(←本記事)

# はじめに

IBM Event StreamsはWebUIからJavaを使用したサンプルコードを確認することができます。

本記事では、サンプルコードの動作に必要な設定値の確認方法(接続情報の確認方法)を記述します。

また、他にもIBM Event Streamsを使用したProducer/Consumerなどのサンプル実装はこちらのリポジトリに置いてあります。

いろんなサンプルコードが置いてあるので、これから開発を始める際や困った際はぜひ参照ください。

https://github.com/ibm-messaging/event-streams-samples


# IBM Event Streamsへの接続情報の確認方法


1. サンプルコードを確認

    `connect to this cluster`をクリック
    
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/302134/57c00ecf-067d-6e8e-5d95-5c84f5d6a793.png)
    
    `Sample code`からサンプルコードとサンプルの設定値を確認できます
    
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/302134/dd88d380-e6ae-f06d-a1fb-476f9a11270d.png)


2. 接続情報の確認

    今回はJavaの`Apache Kafka Client`ライブラリを使用している前提で`SCRAM`+`TLSv1.2`での接続方法について記述します。

    より包括的な説明については、こちらの公式ドキュメントを一読ください。

    https://ibm.github.io/event-automation/es/getting-started/connecting/

    
    以下が今回の接続方式で必要な接続情報の一覧です。
    
    ```txt
    bootstrap.servers=<kafka_bootstrap_address>
    # SCRAM Properties
    #security.protocol=SASL_SSL
    #sasl.mechanism=SCRAM-SHA-512
    #sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username="<token>" password="<password>";
    # TLS Properties
    ssl.protocol=TLSv1.2
    ssl.truststore.location=<java_truststore_file_location>
    ssl.truststore.password=<java_truststore_password>
    ssl.truststore.type=PKCS12
    ```
    
    値が固定値のものを除くと、確認する必要がある値は以下の4つです。
    - `bootstrap.servers`
    - `sasl.jaas.config`
    - `ssl.truststore.location`
    - `ssl.truststore.password`
    

1. `bootstrap.servers`の確認方法

    `connect to this cluster`をクリック
    
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/302134/57c00ecf-067d-6e8e-5d95-5c84f5d6a793.png)

    `Resources`タブの`External`タブから`bootstrap.servers`のアドレスを確認できます
    
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/302134/2bd35b17-f26b-6512-b998-35262244a9bf.png)


1. `sasl.jaas.config`の確認方法

    `connect to this cluster`をクリック
    
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/302134/57c00ecf-067d-6e8e-5d95-5c84f5d6a793.png)

    `Resources`タブの`External`タブから`Generate SCRAM credentials`をクリック

    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/302134/89caf928-7e76-882f-b040-321995b94ec8.png)

    Credential名(実態としてはKafkaUserリソース名になります)とアプリケーションに許可する権限を選択

    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/302134/a941b407-07a0-1f9d-8470-314c56870580.png)

    アプリケーションからアクセスを許可するトピックを選択
    
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/302134/0734edfe-16af-8bde-9e2f-afbdc391a636.png)

    アプリケーションからアクセスを許可するConsumer Groupを選択
    
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/302134/840ec6da-18ae-23ef-e772-d5fac5e72906.png)

    アプリケーションからアクセスを許可するTransactional IDを選択
    
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/302134/f4f58cb0-4f30-689a-b265-8d059dac7863.png)

    選択した権限を持つKafkaUserのユーザ名とパスワードが表示されます

    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/302134/2a2e098e-4d77-5e27-0379-5d604e60464f.png)

    以下の設定値の<token>に`SCRAM username`、`<password>`に`SCRAM password`を設定します
    
    ```txt
    sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username="<token>" password="<password>";
    ```

1. `ssl.truststore.location`の確認方法


    `connect to this cluster`をクリック
    
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/302134/57c00ecf-067d-6e8e-5d95-5c84f5d6a793.png)

    `Resource`タブから`Download certificate`をクリック

    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/302134/6ef742a8-7969-217f-6b77-31bd95f28073.png)

    `ssl.truststore.location`には、ダウンロードした証明書ファイルを配置したパスを指定します

1. `ssl.truststore.password`の確認方法

    証明書ファイルのダウンロード後、`Certificate password`に証明書パスワードが表示されます

    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/302134/87c8ade9-34bd-9473-494a-81c1410118a1.png)


    この値を`ssl.truststore.password`に設定します


以上で接続情報の確認は完了です。

確認した接続情報をもとにアプリケーションの設定を行うことで、IBM Event Streamsクラスターに接続することができるようになります。

# 補足

### `sasl.jaas.config`で生成した接続情報の再確認

作成した認証情報は実態としては、Kafka Userリソースとして作成されます。

OpenShiftのWebコンソールからKafka Userリソースを確認することで、接続情報を再度確認することができます。

1. Kafka Usersの確認

    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/302134/87aa5cf1-93a3-447a-39ef-8b75b10cb869.png)

1. `Resources`タブをクリック

    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/302134/496fcb98-e612-40aa-1ca5-d6b61e48e848.png)

1. 紐づくSecretリソースをクリック

    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/302134/8fcdc8a2-9da9-4f00-948f-7cebbc643992.png)

1. `sasl.jaas.config`の値を確認

    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/302134/49baa775-3467-09f2-e4d2-d2117b6d5633.png)


# 終わりに

本一連の記事では、	IBM Event Streamsに関する記事を記載しました。

時間の経過で情報が陳腐化してしまう可能性が大いにありますので、この記事の手順をみてうまくいかない場合は公式ドキュメントをご覧いただけると幸いです。

https://ibm.github.io/event-automation/es/about/overview/

記事の内容について不備不足等ございましたら、ご指摘いただければと思います。