Application Real-Time Monitoring Service (ARMS) の Java エージェントをアプリケーションにアタッチして、トレース、アプリケーションのトポロジー、異常および低速なトランザクションデータ、SQL 分析を収集します。
Container Service for Kubernetes (ACK) クラスターにデプロイされたアプリケーションの場合は、代わりに ack-onepilot コンポーネントをインストールしてください。詳細については、「ACK への ARMS エージェントの自動インストール」または「オープンソースの Kubernetes クラスターへの ARMS エージェントの自動インストール」をご参照ください。
前提条件
開始する前に、以下を確認してください:
ご利用のネットワークが ARMS エージェントの接続要件 を満たしていること
ご利用の JDK バージョンが アプリケーションモニタリングでサポートされている こと
JVM の最大ヒープメモリ (
-Xmx) が 256 MB 以上であること
ARMS エージェントのインストール
ステップ 1:エージェントのダウンロード
ARMS コンソールにログインします。
左側のナビゲーションウィンドウで、[インテグレーションセンター] をクリックします。
[Java アプリケーションモニター] カードをクリックし、[手動インストール] を選択します。
次のいずれかの方法でエージェントパッケージをダウンロードします:
コンソールから -- [Java アプリケーションモニター] パネルで、ダウンロードプロンプトに従います。
コマンドラインから -- ご利用のリージョンに対応する
wgetコマンドを実行します。下の表からリージョンを選択してください。
ステップ 2:エージェントパッケージの展開
ダウンロードした ZIP ファイルを作業ディレクトリに展開します:
unzip AliyunJavaAgent.zip -d <working-directory><working-directory> を、エージェントをインストールするディレクトリ (例:/opt/arms) に置き換えます。
ステップ 3:ライセンスキーとアプリケーション名の設定
ARMS エージェントがデータをレポートするには、2 つのパラメーターが必要です:
| パラメーター | 説明 | 取得場所 |
|---|---|---|
LicenseKey | エージェントを ARMS アカウントで認証します | [Java アプリケーションモニター] パネルからコピーするか、DescribeTraceLicenseKey API を呼び出します |
AppName | ARMS コンソールでアプリケーションを識別します。分散アーキテクチャでは、複数のピアインスタンスが同じ名前を共有します。 | 名前を選択します (例:order-service |
これらのパラメーターは、次の 2 つの方法のいずれかで渡します:
オプション A:JVM 引数として渡す (推奨)
起動コマンドに -Darms.licenseKey と -Darms.appName を直接追加します。完全なコマンドについては、ステップ 4 をご参照ください。
オプション B:設定ファイルの使用
この方法は、複数のアプリケーションが単一の起動スクリプトを共有する場合に便利です。
まず、展開したディレクトリ内の version ファイルでエージェントのバージョンを確認します。
ARMS エージェント V4.0.0 以降:
エージェントディレクトリに arms-agent.properties という名前のファイルを作成します:
arms.licenseKey=<your-license-key>
arms.appName=<your-app-name>次に、以下のいずれかを起動コマンドに追加します:
JVM 引数:
-Dotel.javaagent.configuration-file=/path/to/arms-agent.properties環境変数:
OTEL_JAVAAGENT_CONFIGURATION_FILE=/path/to/arms-agent.properties
V4.0.0 より前の ARMS エージェント:
エージェントディレクトリ内の arms-agent.config ファイルを編集します:
arms.licenseKey=<your-license-key>
arms.appName=<your-app-name>他のエージェントパラメーターの詳細については、「ARMS エージェントのパラメーターとデータレポートリージョンの変更」をご参照ください。
ステップ 4:起動コマンドへのエージェントの追加
起動コマンドに -javaagent オプションを追加します。構文は実行環境によって異なります。
次のプレースホルダーを実際の値に置き換えてください:
| プレースホルダー | 説明 | 例 |
|---|---|---|
<working-directory> | エージェントを展開したディレクトリ | /opt/arms |
<your-license-key> | ご利用の ARMS ライセンスキー | a]xxxxxx@xxxxxxxx |
<your-app-name> | ARMS で使用するアプリケーション名 | order-service |
Spring Boot または java -jar
-javaagent は -jar 引数の前に配置します:
java -javaagent:/<working-directory>/AliyunJavaAgent/aliyun-java-agent.jar \
-Darms.licenseKey=<your-license-key> \
-Darms.appName=<your-app-name> \
-jar demoApp.jarTomcat
次の行を {TOMCAT_HOME}/bin/setenv.sh に追加します:
JAVA_OPTS="$JAVA_OPTS -javaagent:/<working-directory>/AliyunJavaAgent/aliyun-java-agent.jar -Darms.licenseKey=<your-license-key> -Darms.appName=<your-app-name>"setenv.sh が存在しない場合は、同じ設定を JAVA_OPTS パラメーターに {TOMCAT_HOME}/bin/catalina.sh で追加します。リファレンスとして「catalina.sh の 256 行目」をご参照ください。
Jetty
次の内容を {JETTY_HOME}/start.ini に追加します:
--exec
-javaagent:/<working-directory>/AliyunJavaAgent/aliyun-java-agent.jar
-Darms.licenseKey=<your-license-key>
-Darms.appName=<your-app-name>同一サーバー上の複数インスタンス
1 つのサーバーで同じアプリケーションの複数インスタンスを実行するには、一意の値を持つ -Darms.agentId を追加して JVM プロセスを区別します:
java -javaagent:/<working-directory>/AliyunJavaAgent/aliyun-java-agent.jar \
-Darms.licenseKey=<your-license-key> \
-Darms.appName=<your-app-name> \
-Darms.agentId=001 \
-jar demoApp.jarV2.7.3.5 より前のエージェントバージョンの場合、
AliyunJavaAgent/aliyun-java-agent.jarをArmsAgent/arms-bootstrap-1.7.0-SNAPSHOT.jarに置き換えてください。できるだけ早く最新バージョンにアップグレードすることを推奨します。Windows では、パス内の
/を\に置き換え、.shファイルの代わりに.batファイルを使用します。アプリケーションセキュリティ (V2.7.1.4 以降で利用可能) を有効にするには、
-Darms.appsec.enable=trueを追加します。 料金については、「アプリケーションセキュリティの課金」をご参照ください。
ステップ 5:アプリケーションの再起動
Java アプリケーションを再起動して、エージェントを有効にします。
(オプション) Docker を使用したインストール
次の Dockerfile をテンプレートとして使用し、Docker イメージに ARMS エージェントをインストールします:
# <your-base-image:tag> をご利用のイメージに置き換えます
FROM <your-base-image:tag>
WORKDIR /root/
# エージェントをダウンロードします (ご利用のリージョンの URL を使用します。ステップ 1 を参照)
RUN wget "http://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/AliyunJavaAgent.zip" -O AliyunJavaAgent.zip
RUN unzip AliyunJavaAgent.zip -d /root/
# 認証情報を環境変数として設定します
ENV arms_licenseKey=<your-license-key>
ENV arms_appName=<your-app-name>
# JAVA_TOOL_OPTIONS を介してエージェントを挿入します
ENV JAVA_TOOL_OPTIONS ${JAVA_TOOL_OPTIONS} '-javaagent:/root/AliyunJavaAgent/aliyun-java-agent.jar -Darms.licenseKey='${arms_licenseKey}' -Darms.appName='${arms_appName}
# 環境変数を確認します
RUN env | grep JAVA_TOOL_OPTIONS
# 以下にアプリケーション固有の命令を追加します
# ...インストールの確認
アプリケーションを再起動すると、約 1 分以内にエージェントがデータのレポートを開始します。
ARMS コンソールで、[アプリケーションモニタリング] > [アプリケーションリスト] を選択します。
アプリケーションがリストに表示され、データレコードが送信されていることを確認します。
数分経ってもアプリケーションが表示されない場合は、以下を確認してください:
| 問題 | 操作 |
|---|---|
| 認証情報が正しくない | LicenseKey と AppName の値が ARMS コンソール内の値と一致することを確認します。 |
| エージェントのパスが間違っている | -javaagent のパスが正しい aliyun-java-agent.jar ファイルを指していることを確認します。 |
| アプリケーションが再起動されていない | エージェントの設定を追加した後、アプリケーションを再起動します。 |
| ネットワーク接続 | サーバーがネットワーク経由で ARMS エンドポイントに到達できることを確認します。「ネットワーク設定」をご参照ください。 |
| エージェントの起動失敗 | アプリケーションの起動ログで ARMS エージェントの初期化メッセージを確認します。ArmsAgent または arms-agent を含む行を探します。エージェントのログエントリが表示されない場合、-javaagent 引数がロードされていない可能性があります。 |
トラブルシューティングの詳細については、「アプリケーションモニタリングのよくある質問」をご参照ください。