コンテンツにスキップ

Spring Boot プロジェクトを Tomcat で外部デプロイするシナリオにおけるリンクトレーシングの可観測性


概要

企業が Java エコシステムを利用して独自のエンタープライズフレームワークを構築する際、使用する技術スタックは必ずしも同じではありません。例えばマイクロサービスフレームワークでは、Spring Boot + Spring Cloud を採用する企業もあれば、Spring Boot + Dubbo を採用する企業もあります。
Guance はさまざまな APM ツールをサポートしており、マイクロサービスのリンクトレーシングを Guance に取り込むことができます。ご自身のニーズに合わせて最適な APM ツールをお選びいただけます。

通常、構築されたマイクロサービスは Jar 形式で動作しますが、本稿ではこれらのマイクロサービスを war パッケージにビルドし、Tomcat にデプロイした場合に、どのようにリンクトレーシングデータを Guance に取り込むかを解説します。従来の war パッケージプロジェクトの場合も、取り込み方法は同じです。

SkyWalking シナリオ

前提条件

  • クラウドホスト(Centos 7.9)
  • JDK のインストール
  • Zookeeper のインストール
  • Guance アカウント
  • Tomcat を 2 つデプロイし、デプロイパスは /usr/local/df-demo/tomcat8080/usr/local/df-demo/tomcat8081
  • クラウドホストに <DataKit をインストールしていること

操作手順

Warning

本ケースでは、DataKit バージョン 1.4.9、Spring Cloud 3.1.1、Spring Boot 2.6.6、Dubbo 2.7.15、Zookeeper 3.7.1、JDK 1.8、Tomcat 9.0.48 を使用してテストしています

1 DataKit の設定

1.1 http_api の変更(任意)

/usr/local/datakit/conf.d/datakit.conf ファイルを編集し、http_api の listen の値を 0.0.0.0:9529 に変更します。これにより、他のホストからこのホストの 9529 ポートに正常にアクセスできるようになります。
他のホストから DataKit にアクセスする必要がない場合は、変更する必要はありません。

image

1.2 SkyWalking コレクターの有効化

ホストにログインし、サンプルファイルをコピーして SkyWalking コレクターを有効にします。

cd /usr/local/datakit/conf.d/skywalking
cp skywalking.conf.sample skywalking.conf

DataKit を再起動します。

systemctl restart datakit

2 APM の取り込み

2.1 SkyWalking のダウンロード

apache-skywalking-java-agent-8.11.0 をダウンロードし、解凍後、ファイル名を agent に変更して、ホストの /usr/local/df-demo/tomcat8080 および /usr/local/df-demo/tomcat8081 ディレクトリにアップロードします。

2.2 Tomcat の設定

/usr/local/df-demo/tomcat8080/bin/catalina.sh ファイルを編集し、以下の内容を追加します。

export  CATALINA_OPTS="$CATALINA_OPTS -javaagent:/usr/local/df-demo/tomcat8080/agent/skywalking-agent.jar  -Dskywalking.agent.service_name=tomcat-customer  -Dskywalking.collector.backend_service=localhost:11800"

image

パラメータの説明:

  • -Dskywalking.agent.service_name:サービス名
  • -Dskywalking.collector.backend_service:リンクトレーシングを報告する DataKit のアドレス + SkyWalking コレクターのポート

/usr/local/df-demo/tomcat8081/bin/catalina.sh ファイルを編集し、以下の内容を追加します。

export  CATALINA_OPTS="$CATALINA_OPTS -javaagent:/usr/local/df-demo/tomcat8081/agent/skywalking-agent.jar  -Dskywalking.agent.service_name=tomcat-provider  -Dskywalking.collector.backend_service=localhost:11800"

Tomcat を起動します。

 cd /usr/local/df-demo/tomcat8080/bin
 ./startup.sh
 cd /usr/local/df-demo/tomcat8081/bin
 ./startup.sh
2.3 プロジェクトのデプロイ

war パッケージをダウンロードし、skywalking ディレクトリ内の consumer.warprovider.war を取得します。

  • provider.war/usr/local/df-demo/tomcat8081/webapps ディレクトリに配置します。
  • consumer.war/usr/local/df-demo/tomcat8080/webapps ディレクトリに配置します。

3 リンクトレーシングの可観測性

ブラウザで http://192.168.0.100:8080/consumer/ping にアクセスします。ここでの IP はホストのアドレスです。
Guance」→「アプリケーションパフォーマンスモニタリング(APM)」にログインすると、tomcat-customer および tomcat-provider サービスが表示されます。
リンクの1つをクリックすると、フレームグラフ、スパンリスト、呼び出し関係などを確認できます。

image

image

フィードバック

このページは役に立ちましたか?