APM エージェントのインストール

Java エージェントのインストール

Java エージェントは、トランザクションが実行される際に、アプリケーションとコンピューティング環境に関する詳細なパフォーマンス指標を収集します。Java エージェントは、Java 仮想マシン (JVM) 上で実行中のアプリケーションとリソースからそれら情報を収集し、SixthSense プラットフォームに送信します。その後、リアルタイムおよび履歴レポート用のデータを処理、保存します。収集されたデータは、ユーザーインターフェイスを使用して表示、操作ができ、またアラートの作成や対応措置を取ることが可能となります。 Java エージェントは、対象アプリケーションのクラスバイトコードにプローブを挿入しますが、これは、アプリケーションの監視を可能にするインストルメント処理の一部です。 アプリケーションがインストルメント処理された後、Java エージェントがデータの収集を開始します。

Javaアプリケーションの監視にあたり:

  • エージェントを導入してアプリケーションサーバーのパフォーマンスと可用性を監視します。
  • アプリケーションコンポーネントの監視をテスト、調整、最適化します。
  • エージェントは収集したデータを保存するために、アプリケーションサーバーの Java ヒープメモリの一部を使用します。
  • ヒープ Java アプリケーションの使用率が高い場合は、Java エージェントのインストール時にヒープ割り当てを増やします。
  • トランザクショントレースの数が非常に多い場合は、JVM ヒープサイズを増やします。

前提条件

構成要件

エージェントのダウンロード要件

変数説明
TOKENエージェントをダウンロードするには、オンボーディングチームからアクセストークンが必要です。
AGENT_VERSIONSixthSense エージェントのバージョン

エージェント構成

Java アプリケーションを監視するには、有効なライセンスと SixthSense - Java エージェント のダウンロードへのアクセスが必要です。

エージェントのダウンロード

エージェントのダウンロードに必要な前提条件

  • オンボーディングチームからのプライベートトークン
  • 特定のバージョンのダウンロードリンク

エージェントをダウンロードするには、以下の手順を実行します。

  1. インターネット、および SixthSense からのイングレスが有効になっていることを確認します。
  2. curl を使用してエージェントをダウンロードします。 エージェントが Docker にダウンロードされた場合は、先に進む前 にcurl をインストールします。
{
curl --header 「PRIVATE-TOKEN: ${TOKEN}」 --output agent.zip "https://artifacts-observability.sixthsense.rakuten.com/api/v4/projects/4/packages/generic/sixthsense/${AGENT_VERSION}/sixthsense.zip」
}

エージェントの設定

エージェントのプライマリ.jar ファイル(sixthsense-agent.jar)へのパスを含めるため、インストルメント化が必要なアプリケーションサーバーを設定します。 アプリケーションサーバーの起動スクリプトを編集してパスを設定し、その後アプリケーションサーバーを再起動します。 アプリケーションサーバーが再起動すると、Java エージェントが JVM およびアプリケーション環境のデフォルトコンポーネントとして検出されたクラスをインストルメント化します。 関連する具体的な手順は、アプリケーションサーバーによって異なります。

  • ダウンロードしたエージェントを解凍します( 「エージェントのダウンロード」 を参照)。
  • エージェント.config ファイル (Agentフォルダ /SixthSense/Config/agent.config ファイル) に移動します。

agent.config ファイルへのアプリケーション情報の追加

  • アプリケーション名と team_id を追加します。

  • 「agent.service_name」にアプリケーション名を、「agent.team_id」にダッシュボードの「agent.team_id」でアプリケーションが属するチームを指定します。

: 「USER_APP」がアプリケーション名であると仮定します。agent.config ファイル(Agentフォルダ/SixthSense/Config/agent.config ファイル)に移動し、更新します。

# The service name in UI
agent.service_name=${SW_AGENT_NAME:Your_ApplicationName}

SixSense ポータルからアクセストークンを取得

  • SixSense ポータルにログインします。
  • 左側のペインにある [設定] に移動します。
  • [アクセストークン] をクリックします。
  • [アクセストークンを表示] をクリックします。
  • [コピー] をクリックしてアクセストークンをコピーします。
  • エージェント.config ファイルに移動します。Agentフォルダ/SixthSense/Config/agent.configファイル。
  • agent.config ファイルのプロパティセット agent.authentication に追加します。
agent.authentication = ${SW_AGENT_AUTHENTICATION: <AccessToken>}

バックエンドコレクター URL を更新

  1. collector.backend_service をバックエンドコレクターURLに設定します。
collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:stg-http-collector-observability.sixthsense.rakuten.com:443}

OneCloud Platform を使用する場合は、次のコマンドを使用します。

# For connectivity to backend using onecloud private network: 100.99.116.221:80
# For connectivity to backend using intra public network: 133.237.176.44:80
collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:133.237.176.44:80}
agent.force_tls=${SW_AGENT_FORCE_TLS:false}

アプリケーションへの組み込み

-javaagent フラグの追加

  • エージェントの設定が完了したら、アプリケーションを起動する際に、JVM フラグ-javaagent:Path を、startup/entrypoint アプリケーションファイルの sixthsense-agent.jar に追加します。

スタンドアローンアプリケーションで Java エージェントを実行する例

  • Java エージェントコマンドを Jar ファイルとともに実行します。例えば、アプリケーションの jar が「java_backend」という名前の場合は、以下のコマンドを使用します。
java -javaagent:{Path to SixthSense Agent Jar File →> /opt/sixthsense/sixthsense-agent.jar} -jar {Path to your Jar File}

Docker 環境でのエージェント統合の手順

  • SixthSense エージェントをダウンロードします(「エージェントのダウンロード」 を参照)。
  • エージェントをダウンロードした後、「agent.configファイルへのアプリケーション情報の追加」の手順に従います。
  • アプリケーションのインストルメント化」のセクションで説明されているように、エージェント構成を設定します。
  • エージェントを Dockerfile と統合します。

次のコマンドを追加します。

COPY agent agent/
ENTRYPOINT java -javaagent:/agent/sixthsense-agent.jar -jar your_application.jar
  • Docker イメージをビルドします。
  • 作成した Docker イメージを使用してアプリケーションを実行します。
  • ダッシュボード上で、上記で定義したアプリケーション名が表示されます。

Docker の例

# docker build -t adservice .
FROM openjdk:8-slim as builder
WORKDIR /app
COPY ["build.gradle", "gradlew", "./"]
COPY gradle gradle
RUN chmod +x gradlew
RUN ./gradlew downloadRepos
COPY . .
RUN chmod +x gradlew
RUN ./gradlew installDist
FROM openjdk:8-slim
# Download curl
RUN apt-get -y update && apt-get install -qqy && apt-get install -y curl && apt-get install -y unzip \
wget \
&& rm -rf /var/lib/apt/lists/*
# Here we are downloading the agent at runtime
# Sixthsense Agent
ARG TOKEN
ARG AGENT_VERSION
RUN mkdir -p /opt/sixthsense && \
curl -v --header "PRIVATE-TOKEN: ${TOKEN}" --output /opt/sixthsense/agent.zip "https://artifacts-observability.sixthsense.rakuten.com/api/v4/projects/4/packages/generic/sixthsense/${AGENT_VERSION}/agent.zip" && \
unzip /opt/sixthsense/agent.zip -d /opt/sixthsense && \
rm -rf /opt/sixthsense/agent.zip
COPY agent.config /opt/sixthsense/agent/config/agent.config
WORKDIR /app
COPY --from=builder /app .
EXPOSE 9555
ENTRYPOINT ["/app/build/install/hipstershop/bin/AdService"]

Docker イメージをビルドするには、変数(AGENT_VERSIONやTOKEN 等)をビルド引数として渡します。

docker build --build-arg AGENT_VERSION=v1.1 --build-arg TOKEN=token_from_onboarding adservice:v1

Tomcat サーバーの Java エージェントの設定

Java エージェントは、環境変数を通じて引数を渡すことで設定可能です。Tomcat サーバーの異なる場所から環境変数を次のように渡します。

Tomcat の起動スクリプトを編集する必要があります。デフォルトでは、Tomcat の起動スクリプトは $CATALINA_HOME/bin ディレクトリの catalina.sh または catalina.bat です。または、Tomcat の環境変数に引数を設定します。

エージェントのダウンロード

Java アプリケーションを監視するには、有効なライセンスと SixthSense - Java エージェント のダウンロード権限が必要です。

  • 監視対象のアプリケーションが稼働するサーバー上で、ダウンロードした SixthSense Java エージェントの ZIP ファイルを解凍します。

前提条件

  • SixthSense Java エージェント(エージェントのダウンロード を参照)
  • 認証用の SSL/TLS 証明書(エージェントが SixthSense プラットフォームに接続するために、これらの証明書はオンボーディングチームから提供されます)。
  • SixthSense コレクターの URL/IP(オンボーディングチームから提供されるテナントの URL)
  • SixthSense UI からのアクセス トークン(エージェントの SixthSense ポータルへの接続方法 を参照)

エージェント構成ファイルへのアプリケーション情報の追加

エージェントのプライマリ .jar ファイル (SixthSenseAgent.jar) へのパスを含めるように、インストルメント化が必要なアプリケーションサーバーを構成します。

  1. アプリケーションサーバーの起動スクリプトを編集してパスを構成します。
  2. アプリケーションサーバーを再起動します。
  3. アプリケーションサーバーが再起動すると、Java エージェントが JVM およびアプリケーション環境のデフォルトコンポーネント用に検出されたクラスをインストルメント化します。
note

関連する具体的な手順は、アプリケーションサーバーによって異なります。

  • エージェント/ca パスに「ca」という名前のフォルダを作成し、解凍します。
  • エージェント/ca フォルダに共有されている ca.crt ファイルをコピーします。
  • アプリケーション名と team_id を追加します。
  • 「agent.service_name」を設定してアプリケーション名を識別し、ダッシュボードの「agent.team_id」でアプリケーションが属するチームを識別します。

例えば、アプリケーション名 がUSER_APP であると仮定すると、Agent フォルダ /SixthSense/Config/agent.config ファイルに移動します。

agent.service_name=${SW_AGENT_NAME:USER_APP}

エージェントSixthSenseポータルへの接続

  1. SixSense ポータルにログインします
  2. 左側のペインで [設定] をクリックします。
  3. [アクセストークン] をクリックします。
  4. [アクセストークンを表示] をクリックします。
  5. [コピー] をクリックしてアクセストークンをコピーし、Agent.config ファイルのプロパティセット agent.authentication に追加します。
  6. agent.config ファイルに移動します。Agent フォルダ /SixthSense/Config/agent.config ファイル*
    agent.authentication = ${SW_AGENT_AUTHENTICATION: AccessToken} を設定。 7.コレクターのバックエンドサービスを、オンボーディングチームから提供されたバックエンドコレクター URL に設定します。

例: collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:d-c.34.93.18.45.sslip.io:443}*

OneCloud Platform の場合は、以下の例を使用します。

collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:133.237.176.44:80}

Unix 環境

  • setenv.sh

    1. CATALINA_BASE/bin/setenv.sh スクリプトがまだ存在しない場合は作成します。
    2. setenv.sh スクリプトを、CATALINA_OPTS 環境変数を使用して SixthSense エージェントを使用するように設定します。 export CATALINA_OPTS="$CATALINA_OPTS -javaagent:/full/path/to/SixthSense.jar"
    3. エージェントの設定後、Tomcat を再起動します。
  • catalina.sh

    1. JAVA_OPTS 環境変数を使用して、SixthSense エージェントを使用するように catalina.sh ファイルを設定します。 export JAVA_OPTS="$JAVA_OPTS -javaagent:/full/path/to/SixthSense.jar"
    2. エージェント設定後、Tomcat を再起動して監視を開始します。

Windows 環境

setenv.bat

  1. CATALINA_BASE/bin/setenv.bat スクリプトがまだ存在しない場合は作成します。
  2. setenv.bat スクリプトを、CATALINA_OPTS 環境変数を使用して SixthSense エージェントを使用するように設定します。 SET "CATALINA_OPTS=%CATALINA_OPTS% -javaagent:/full/path/to/SixthSense.jar"
  3. エージェントの設定後、Tomcat を再起動して監視を開始します。

catalina.bat

  1. catalina.bat を使用して Tomcat を起動する場合は、ファイルの先頭付近で Java_OPTS 変数を設定します。 SET Java_OPTS=%Java_OPTS% -Javaagent:/full/path/to/SixthSense.jar
  2. エージェント構成後、Tomcat を再起動して監視を開始します。

サービスを使用した Java エージェントの構成

  1. [スタート] > [Apache Tomcat X.Y.Z] > [Tomcatの設定] > [Java] の順に選択します。
  2. [Java オプション] テキストボックスに以下の引数を入力します。 パス区切り文字にはスラッシュ(/)を使用します。
    SET "CATALINA_OPTS=%CATALINA_OPTS% -javaagent:/full/path/to/SixthSense.jar"
  3. Tomcat 6の場合は、-Javaagent引数の後に改行を追加します。 -Javaagent:/full/path/to/SixthSense.jar
  4. [適用]を選択し、Tomcatを再起動して監視を開始します。