コンテナ内のJava使用状況のトラッキング

JMSフリートを使用して、コンテナで実行されているJavaアプリケーションのJava使用状況を追跡できます。この項では、dockerイメージを使用してコンテナを構成する方法を示します。
ノート

Oracle JDKを含むコンテナのみが検出されます。
前提条件:
  • コンテナ・ホストでの管理エージェントのインストールおよびJMSプラグインのデプロイが完了しました。コンテナ・ホストは、オンプレミス、OCI、またはその他のクラウド・プラットフォーム上のコンピュート・インスタンスです。
  • Dockerイメージはコンテナ・ホストに格納されます。イメージには、1つ以上のJavaアプリケーション(jarファイル)、Oracle JDK、およびJavaアプリケーションの実行に必要なその他の依存関係が含まれています。
  • Dockerはコンテナ・ホストにインストールされます。

コンテナ内のJava使用状況を追跡するには:

  1. Java Usage Trackerレコードが/var/log/java/usagetracker.logに書き込まれていることを確認します。次のコマンドを使用し、コンテナを開始します。
    ノート

    この構成は、信頼できるコンテナ、またはホスト・コンテナとコンテナ間の分離、またはコンテナ間の分離が必要ない場合にのみ使用してください。分離が必要な場合は、コンテナごとに個別のusagetracker.logファイルを使用し、それらのログをコンテナ・ホストの/var/log/java/usagetracker.log に集約する必要があります。
    docker run -d -v /var/log/java/:/var/log/java/ -v /etc/oracle/java/:/etc/oracle/java/:ro --name <container_name> <docker_image>:latest
    • -dは、コンテナをデーモン・プロセスとして起動します。
    • -v /var/log/java/:/var/log/java/は、コンテナ・ホストのバインド・マウント/var/log/java/をコンテナの/var/log/java/にマップします。これにより、コンテナ内の/var/log/java/usagetracker.logファイルがコンテナ・ホストに存在することが保証されます。
    • -v /etc/oracle/java/:/etc/oracle/java/:roは、コンテナ・ホストの読取り専用バインド・マウント/etc/oracle/java/としてコンテナの/etc/oracle/java/にマップします。これにより、コンテナ内の/etc/oracle/java/usagetracker.propertiesファイルがコンテナ・ホストに存在することが保証されます。
    • --name <container_name>は、コンテナの名前を識別します。<container_name>を自分のコンテナ名に置き換えてください
    • <docker_image>:latestは、イメージの最新バージョンの使用を示します。<docker_image>をdockerイメージの名前に置き換えます。
  2. docker inspectを使用して、バインド・マウントがコンテナに正しく作成されたことを確認します。
    docker inspect <container_name>

    「Mounts」セクションを探します。

     "Mounts": [
                {
                    "Type": "bind",
                    "Source": "/var/log/java/",
                    "Destination": "/var/log/java/",
                    "Mode": "",
                    "RW": true,
                    "Propagation": "rprivate"
                },
                    "Type": "bind",
                    "Source": "/etc/oracle/java/",
                    "Destination": "/etc/oracle/java/",
                    "Mode": "ro",
                    "RW": false,
                    "Propagation": "rprivate"
            ],
  3. ログ・ファイルを確認して、Javaアプリケーション(jarファイル)およびdockerイメージのJDKバージョンが含まれていることを確認します。
    cat /var/log/java/usagetracker.log
  4. usagetracker.configを含めて、ホストに特定のログ・ファイルを作成します。
    dockerビルドの一部として含めることができるように、ホスト/etc/oracle/javaから現在のディレクトリにusagetracker.propertiesをコピーします。
    # usage tracker configuration
    RUN mkdir -p /etc/oracle/java/
    COPY ./usagetracker.properties /etc/oracle/java/
    RUN chmod 644 /etc/oracle/java/usagetracker.properties
    RUN sed -i "s/\usagetracker.log/usagetracker.log_${CONTAINER_NAME}/g" /etc/oracle/java/usagetracker.properties
  5. Java Usage Trackerレコードが各コンテナの/var/log/java/に書き込まれていることを確認します。次のコマンドを使用し、コンテナを開始します。
    docker run -d -v /var/log/java/:/var/log/java/ --name <container_name> <docker_image>:latest
  6. 複数の使用ファイルをホスト上の /var/log/java/usagetracker.logに集約します。
  7. JMSのフリートをチェックして、Dockerコンテナが検出されたかどうかを確認します。Javaアプリケーションのjarファイルを「アプリケーション」の下に表示できる必要があります。