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 ホスト上にインストールします。
手順
- Docker イメージをビルドします。
- 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>
- インストール 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
- Docker イメージをビルドします。 docker build コマンドを実行して、Docker イメージをビルドします。Docker イメージのビルドを行うマシンは、Liberty Docker イメージおよび productInsights-1.0
Liberty フィーチャーをダウンロードする必要があるため、インターネットにアクセスできる必要があります。
docker build -t liberty-product-insights-example
- Docker コンテナー内のイメージを実行します。
- 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 環境変数に値を設定することによって、デフォルトのホスト名の値をオーバーライドする必要があります。
- Docker イメージの複数のインスタンスを実行します。 同じアプリケーションに対して Docker イメージの複数インスタンスを実行するには、各インスタンスに対して同じ CONTAINER_HOST 値を使用します。CONTAINER_HOST に対応する登録および使用データが Product Insights サービスに送信されると、このサービスは、単一インスタンスから送信されたかのように情報を結合して、アプリケーションに関連付けられたすべての使用情報をユーザーが確認できるようにします。
注: オプションでサーバー名をオーバーライドするには、
CONTAINER_NAME 環境変数を設定します。この変数が設定されていない場合、すべてのイメージがサーバー名として
defaultServer を
Product Insights サービスに報告します。
docker run -d --volume=/opt/docker/libertyConfig:/config/configDropins/overrides -e CONTAINER_HOST=' myApplication' -e CONTAINER_NAME=' myServerName' liberty-product-insights-example
- IBM Cloud
Product Insights 構成を動的に追加します。
- digicert.jks 証明書ファイルの IBM Cloud コピーをダウンロードし、/opt/docker/libertyConfig ディレクトリーに入れます。
- 同じディレクトリーに、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>
- IBM Cloud
Product Insights への登録を検証します。
- docker ps コマンドを実行して、コンテナー ID を検出します。
docker ps
- Docker コンテナー・ファイル・システムと対話できるように、bash を介して STDIN を Docker コンテナーに接続します。
docker exec -it <containerId> bash
- Liberty ログを調べて、サーバーが Product Insights サービスに登録されたことを検証します。 /logs ディレクトリー内の messages.log ファイルを開き、次のメッセージを探します。
CWWKR0400I: The server was registered with the IBM Cloud Product Insights service on the specified URL <apiHost>.
- ブラウザーで IBM Cloud の Product Insights サービス・ダッシュボードにアクセスし、新しく登録されたサーバーを表示します。
タスクの結果
Docker で稼働している IBM WebSphere Liberty サーバーが、サーバー登録および使用をサポートするために IBM Cloud
Product Insights に登録されました。