Java アプリケーションの Application Real-Time Monitoring Service (ARMS) エージェントをインストールすると、ARMS は Java アプリケーションの監視を開始します。その後、アプリケーショントポロジー、トレース、異常トランザクション、低速トランザクション、SQL 分析など、Java アプリケーションの監視データを表示できます。このトピックでは、Java アプリケーションの ARMS エージェントを手動でインストールする方法について説明します。
Container Service for Kubernetes (ACK) クラスタにデプロイされたアプリケーションの場合は、ARMS エージェントを手動でインストールするのではなく、ack-onepilot コンポーネントをインストールすることをお勧めします。詳細については、ACK で ARMS エージェントを自動的にインストールするおよびオープンソースの Kubernetes クラスタに ARMS エージェントを自動的にインストールするを参照してください。
前提条件
ネットワーク構成が要件を満たしていること。詳細については、Java 用 ARMS エージェントに必要なネットワーク構成を参照してください。
JDK のバージョンが Application Monitoring でサポートされていること。詳細については、ARMS でサポートされている Java コンポーネントとフレームワークを参照してください。
プロセスの最大ヒープメモリが 256 MB 以上であること。
ARMS エージェントをインストールする
ARMS コンソールにログインします。左側のナビゲーションペインで、統合センターをクリックします。
Java アプリケーションモニターカードをクリックします。表示されるパネルで、手動インストールを選択します。
ARMS エージェントをダウンロードします。
方法 1: ARMS エージェントを手動でダウンロードします。Java アプリケーションモニターパネルで、指示に従って ARMS エージェントをダウンロードします。
方法 2: wget コマンドを実行します。リージョンに基づいてインストールパッケージをダウンロードします。
インストールパッケージを解凍します。
インストールパッケージのディレクトリに移動します。次のコマンドを実行して、インストールパッケージを作業ディレクトリに解凍します。
unzip AliyunJavaAgent.zip -d /{user.workspace}/
説明{user.workspace} はサンプルディレクトリです。サンプルディレクトリを実際のディレクトリに置き換えてください。
AppName パラメータと LicenseKey パラメータを追加します。
Java アプリケーションモニターパネルでライセンスキーを取得します。AppName は、ARMS に統合されるアプリケーションを指定します。必要に応じて、カスタムアプリケーション名を入力します。分散アーキテクチャでは、1 つのアプリケーションに複数のピアアプリケーションインスタンスを含めることができます。
次のいずれかの方法を使用して、AppName パラメータと LicenseKey パラメータを追加します。
方法 1:
{LicenseKey}
パラメータをコンソールから取得したライセンスキーに置き換え、{AppName}
パラメータをアプリケーション名に置き換えます。方法 2: スクリプトで LicenseKey パラメータと AppName パラメータを指定しません。インストールパッケージの arms-agent.config ファイルに次の構成を追加します。
arms.licenseKey={LicenseKey} arms.appName={AppName}
重要方法 2 は、V4.0.0 より前の Java 用 ARMS エージェントにのみ適用されます。エージェントが V4.0.0 以降の場合は、方法 1 を使用してください。エージェントのバージョンは、手順 1 で解凍した
version
ファイルで確認できます。
起動コマンドに統合コマンドを追加します。
{user.workspace}
を、ARMS エージェントの解凍先ディレクトリに置き換えます。demoApp.jar を実際の JAR パッケージへのパスに置き換えます。説明2.7.3.5 より前の ARMS エージェントを使用している場合は、上記のコードの AliyunJavaAgent/aliyun-java-agent.jar を ArmsAgent/arms-bootstrap-1.7.0-SNAPSHOT.jar に置き換えてください。できるだけ早くエージェントを最新バージョンにアップグレードすることをお勧めします。
Windows では、スクリプトの
/
を\
に置き換え、.sh
ファイルを.bat
ファイルに置き換えます。ARMS エージェント V2.7.1.4 では、アプリケーションを Application Monitoring に接続するときに Application Security をアクティブ化できます。Application Security をアクティブ化する必要がある場合は、スクリプトに
-Darms.appsec.enable=true
を追加します。Application Security の課金ルールについては、課金ルールを参照してください。
ランタイム環境
手順
java -jar
コマンドを実行して起動される Spring Boot アプリケーションまたはその他の Java アプリケーション起動コマンドに -javaagent オプションを追加します。-javaagent パラメータが -jar パラメータの前に記述されていることを確認してください。
java -javaagent:/{user.workspace}/AliyunJavaAgent/aliyun-java-agent.jar -Darms.licenseKey={LicenseKey} -Darms.appName={AppName} -jar demoApp.jar
Tomcat
{TOMCAT_HOME}/bin/setenv.sh ファイルに次の構成を追加します。
JAVA_OPTS="$JAVA_OPTS -javaagent:/{user.workspace}/AliyunJavaAgent/aliyun-java-agent.jar -Darms.licenseKey={LicenseKey} -Darms.appName={AppName} "
Tomcat サービスに setenv.sh 構成ファイルが含まれていない場合は、{TOMCAT_HOME}/bin/catalina.sh ファイルを開き、上記の構成を JAVA_OPTS パラメータに追加します。詳細については、catalina.sh ファイルの 256 行目を参照してください。
Jetty
{JETTY_HOME}/start.ini 構成ファイルに次の構成を追加します。
aliyun-java-agent.jar --exec -javaagent:/{user.workspace}/AliyunJavaAgent/aliyun-java-agent.jar -Darms.licenseKey={LicenseKey} -Darms.appName={AppName}
Resin
Resin プロセスを開始するときに、次のタグを
conf/resin.xml
またはconf/resin.conf
に追加します。
<server-default> <jvm-arg>-javaagent:{user.workspace}/AliyunJavaAgent/aliyun-java-agent.jar</jvm-arg> <jvm-arg>-Darms.licenseKey={LicenseKey}</jvm-arg> <jvm-arg>-Darms.appName={AppName}</jvm-arg> </server-default>
conf/resin.properties
が使用されている場合は、次のタグをファイルに追加します。jvm_args : -javaagent:{user.workspace}/AliyunJavaAgent/aliyun-java-agent.jar -Darms.licenseKey={LicenseKey} -Darms.appName={AppName}
conf/app-default.xml ファイルに次のタグを追加します。
<library-loader path="{user.workspace}/AliyunJavaAgent/plugin"/>
同じアプリケーションの複数のインスタンスを 1 つのサーバーにデプロイするには、-Darms.agentId パラメータを論理番号に設定して、JVM プロセスを区別します。例:
java -javaagent:/{user.workspace}/AliyunJavaAgent/aliyun-java-agent.jar -Darms.licenseKey={LicenseKey} -Darms.appName={AppName} -Darms.agentId=001 -jar demoApp.jar
Java アプリケーションを再起動します。
(オプション) Dockerfile のサンプル
Docker 環境では、次の Dockerfile のサンプルを参照して ARMS エージェントをインストールできます。
# {original-docker-image:tag} をイメージアドレスに置き換えます。
FROM {original-docker-image:tag}
# 作業ディレクトリをビジネス要件に基づいて置き換えます。
WORKDIR /root/
# 目的のリージョンで ARMS エージェントのインストールパッケージをダウンロードできるパブリックエンドポイントまたは仮想プライベートクラウド (VPC) を取得します。詳細については、「ARMS エージェントをインストールする」セクションの手順 4 を参照してください。
RUN wget "http://arms-apm-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/AliyunJavaAgent.zip" -O AliyunJavaAgent.zip
# ARMS エージェントのインストールパッケージを解凍します。
RUN unzip AliyunJavaAgent.zip -d /root/
# LicenseKey パラメータと AppName パラメータを環境変数に書き込みます。詳細については、「ARMS エージェントをインストールする」セクションの手順 6 を参照してください。
ENV arms_licenseKey={LicenseKey}
ENV arms_appName={AppName}
# 起動スクリプトを 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}
### JAVA_TOOL_OPTIONS 環境変数を確認します。
RUN env | grep JAVA_TOOL_OPTIONS
### カスタム Dockerfile ロジックを追加します。
### ......
結果を確認する
約 1 分後、
を選択します。アプリケーションが アプリケーションリストページに表示され、いくつかのデータレコードが送信されている場合、アプリケーションは ARMS によって監視されています。