[17.0.0.1 and later]

Docker 上の Product Insights の動的なアクティブ化

Docker 上で稼働している IBM WebSphere Liberty サーバーを Bluemix® Product Insights に登録して、サーバー登録と使用量およびその他の情報 (アクティブな WebSphere Liberty サーバーの数、各サーバーのホスト・ロケーション、各サーバーの製品エディションおよびバージョン、各サーバーのビジー率など) が報告されるようにすることができます。

始める前に

IBM Cloud Product Insights は、WebSphere Application Server Liberty バージョン 17.0.0.1 以降を必要とします。

Liberty Docker ビルドには、Docker Hub からの WebSphere Liberty Docker イメージの最新バージョンのプルが含まれています。Liberty Docker Hub イメージには ILAN ライセンスが含まれています。これは、サポートも保証もない無料版の製品であることを意味します。サポートありの製品にライセンスを更新するには、Upgrading the image from Docker Hub to a production image を参照してください。

IBM WebSphere Liberty サーバー・インスタンスを Product Insights に接続する前に、 IBM Cloud アカウントを持っている必要があり、組織およびスペース内にサービスを作成する必要があります。開始手順に従って、アカウントのセットアップおよび Product Insights サービスの割り振りを行ってください。手順に記述されている API ホスト および API キー をメモしてください。

Docker 上の WebSphere Liberty サーバーを構成するには、Docker がインストールされた Linux マシンまたは仮想マシンが必要です。

注: Kubernetes 環境で Liberty を構成するには、IBM Cloud Product Insights を動的に追加する場合と似た手法が必要です。Kubernetes の秘密を作成するか、または、productInsights.xml ファイルおよび digicert.jks ファイルを含んでいる構成マップを作成し、アプリケーション・デプロイメント YAML ファイル内にマウント・ポイントを指定してそれらのファイルを稼働中の Docker イメージにマウントすることができます。

このタスクについて

Liberty 集合を定義し、Docker コンテナー内に Docker イメージを作成した後、デプロイ・ツールを使用して、イメージを集合内の Docker ホスト上にインストールします。

手順

  1. Docker イメージをビルドします。
    1. Liberty サーバー構成のデフォルト値をオーバーライドするには、既存の server.xml ファイルを名前変更し、新しい server.xml ファイルを作成および構成できます。Product Insights は動的に使用可能になり、追加の Product Insights 構成は何も必要ありません。 websphere-liberty:webProfile7 Docker イメージには以下のサーバー構成が含まれています。
      <server>
          <featureManager>
             <feature>webProfile-7.0</feature>
          </featureManager>   <!-- To allow access to this server from a remote client host="*" has been added to the following element -->
      
         <httpEndpoint id="defaultHttpEndpoint"
                        host="*"
                        httpPort="9080"
                        httpsPort="9443" />
          <!-- Automatically expand WAR files and EAR files -->
          <applicationManager autoExpand="true"/>
      </server>
    2. インストール Dockerfile を作成します。 server.xml ファイルと同じディレクトリーに、productInsights-1.0 Liberty フィーチャーをインストールする Dockerfile を作成します。
      FROM websphere-liberty:webProfile7
      COPY server.xml /config
      RUN installUtility install --acceptLicense productInsights-1.0\
          && rm -rf /output/workarea /output/logs
      ステップ 1 で独自の server.xml ファイルを作成しなかった場合、次の行を削除またはコメント化します。
      COPY server.xml /config
    3. Docker イメージをビルドします。 docker build コマンドを実行して、Docker イメージをビルドします。Docker イメージのビルドを行うマシンは、Liberty Docker イメージおよび productInsights-1.0 Liberty フィーチャーをダウンロードする必要があるため、インターネットにアクセスできる必要があります。
      docker build -t liberty-product-insights-example
  2. Docker コンテナー内のイメージを実行します。
    1. Docker イメージの 1 つのインスタンスを実行します。 Docker イメージの 1 つのインスタンスを実行するには、Liberty サーバー・コンテナーでホストされているアプリケーションの名前を使用します。以下の例は、 命名のベスト・プラクティスを示しています。
      docker run -d --volume=/opt/docker/libertyConfig:/config/configDropins/overrides -e CONTAINER_HOST=' myApplication' liberty-product-insights-example
      注: 実行中のサーバー・インスタンスについて Product Insights に報告されるデフォルトのホスト名は、Docker イメージが実行またはスケーリングされるたびに再割り当てされるコンテナー名です。特定のサーバーのメトリックを一貫して追跡できるようにするには、CONTAINER_HOST 環境変数に値を設定することによって、デフォルトのホスト名の値をオーバーライドする必要があります。
    2. Docker イメージの複数のインスタンスを実行します。 同じアプリケーションに対して Docker イメージの複数インスタンスを実行するには、各インスタンスに対して同じ CONTAINER_HOST 値を使用します。CONTAINER_HOST に対応する登録および使用データが Product Insights サービスに送信されると、このサービスは、単一インスタンスから送信されたかのように情報を結合して、アプリケーションに関連付けられたすべての使用情報をユーザーが確認できるようにします。
      注: オプションでサーバー名をオーバーライドするには、CONTAINER_NAME 環境変数を設定します。この変数が設定されていない場合、すべてのイメージがサーバー名として defaultServerProduct Insights サービスに報告します。
      docker run -d --volume=/opt/docker/libertyConfig:/config/configDropins/overrides -e CONTAINER_HOST=' myApplication' -e CONTAINER_NAME=' myServerName' liberty-product-insights-example
  3. IBM Cloud Product Insights 構成を動的に追加します。
    1. digicert.jks 証明書ファイルの IBM Cloud コピーをダウンロードし、/opt/docker/libertyConfig ディレクトリーに入れます。
    2. 同じディレクトリーに、productInsights.xml という名前の構成ファイルを作成します。<apiHost> は API ホストに、<apiKey> はサービスの API キーに置き換えてください。
      <server>
          <featureManager>
             <feature>productInsights-1.0</feature>
          </featureManager>
          <productInsights url="<apiHost>" apiKey="<apiKey>" sslRef="productInsightsSSL"      
               groups="DockerImages"/>
          <keyStore id="productInsightsKeyStore" location="/config/digicert.jks" type="JKS"/>
          <ssl id="productInsightsSSL"
               keyStoreRef="productInsightsKeyStore"
               trustStoreRef="productInsightsKeyStore"
               sslProtocol="TLSv1.2"/>
      </server>
      注: Docker コンテナーが稼働しているマシンがゲートウェイまたはプロキシー・サーバーを介して Product Insights サービスに接続する場合、構成は少し異なります。詳しくは、Use a gateway or proxy server を参照してください。
  4. IBM Cloud Product Insights への登録を検証します。
    1. docker ps コマンドを実行して、コンテナー ID を検出します。
      docker ps
    2. Docker コンテナー・ファイル・システムと対話できるように、bash を介して STDIN を Docker コンテナーに接続します。
      docker exec -it <containerId> bash
    3. Liberty ログを調べて、サーバーが Product Insights サービスに登録されたことを検証します。 /logs ディレクトリー内の messages.log ファイルを開き、次のメッセージを探します。
      CWWKR0400I: The server was registered with the IBM Cloud Product Insights service on the specified URL <apiHost>.
    4. ブラウザーで IBM CloudProduct Insights サービス・ダッシュボードにアクセスし、新しく登録されたサーバーを表示します。

タスクの結果

Docker で稼働している IBM WebSphere Liberty サーバーが、サーバー登録および使用をサポートするために IBM Cloud Product Insights に登録されました。


トピックのタイプを示すアイコン タスク・トピック

ファイル名: twlp_dynamic_docker_product_insights.html