コンテンツにスキップ

Guance を使用し、SkyWalking で RUM、APM、ログの連携分析を実現する


ユースケース

分散アプリケーション環境では、問題の調査にログとトレースがよく使われます。Guance を使用すると、ユーザーが Web 経由で行ったリクエストを、traceId を介してバックエンドのインターフェースと関連付けることができます。バックエンドインターフェースがログを出力している場合は、traceId を介してトレースとログを関連付け、最終的に RUM、APM、ログの連携 を実現します。さらに、Guance プラットフォームで総合的な分析を行うことで、問題の発見と特定を非常に迅速かつ簡単に行うことができます。

この記事では、簡単に扱えるオープンソースプロジェクトを例に、ステップバイステップでエンドツーエンドの可観測性を実現します。

前提条件

  • Guance アカウントを作成していること。
  • Spring Boot および Vue アプリケーション。
  • Nginx をデプロイした Linux サーバー。

操作手順

Warning

この記事の例で使用するバージョン情報は以下の通りです:DataKit 1.4.15、SkyWalking 8.7.0、Nginx 1.20.2、JDK 1.8、Vue 3.2

1 DataKit のデプロイ

1.1 DataKit のインストール

Guance」にログインし、「統合」→「DataKit」→「Linux」の順に進み、「コピーアイコン」をクリックしてインストールコマンドをコピーします。

image

Linux サーバーにログインし、コピーしたコマンドを実行します。

image

1.2 データ収集の有効化

RUM を有効にするには、ユーザーが DataKit の 9529 ポートにリモートアクセスできる必要があります。以下のファイルを編集します。

vi /usr/local/datakit/conf.d/datakit.conf

listen の値を 0.0.0.0:9529 に変更します。

image

conf ファイルをコピーして、SkyWalking データ収集を有効にします。

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

ログデータ収集を有効にします。

cd /usr/local/datakit/conf.d/log
cp logging.conf.sample skywalking-service-log.conf

skywalking-service-log.conf ファイルを編集します。

  • logfiles にはログファイルのパスを指定します。jar を /usr/local/df-demo/skywalking にデプロイするため、ここではログパスは /usr/local/df-demo/skywalking/logs/log.log となります。
  • sourceskywalking-service-log とします。

image

1.3 DataKit の再起動

systemctl restart datakit

2 アプリケーションのデプロイ

2.1 バックエンドサービスのデプロイ

skywalking-demo プロジェクトをダウンロードし、Idea で開きます。右側の「package」をクリックすると、skywalking-user-service.jar ファイルが生成されます。

image

skywalking-user-service.jar/usr/local/df-demo/skywalking ディレクトリにアップロードします。

image

注意:
1. プロジェクトに依存関係を追加する必要があります。

```xml
        <dependency>
            <groupId>org.apache.skywalking</groupId>
            <artifactId>apm-toolkit-logback-1.x</artifactId>
            <version>8.7.0</version>
        </dependency>
```
  1. ログを出力する際は、traceId を出力する必要があります。 image

2.2 Web のデプロイ

Web プロジェクトのディレクトリに移動し、コマンドラインで cnpm install を実行します。

image

npm run build を実行してデプロイファイルを生成します。

image

disk ディレクトリ内のファイルをサーバーの /usr/local/web ディレクトリにコピーします。

image

image

/etc/nginx/nginx.conf ファイルを編集し、以下の内容を追加します。

   location / {
            root   /usr/local/web;
            try_files $uri $uri/ /index.html;
            index  index.html index.htm;

        }

image

nginx の設定を再読み込みします。

nginx -s reload

ブラウザに Linux サーバーの IP を入力し、フロントエンド画面にアクセスします。

image

3 APM の有効化

SkyWalking をダウンロードします。

agent ディレクトリを Linux の /usr/local/df-demo/skywalking ディレクトリにアップロードします。

image

image

マイクロサービスが Spring Cloud Gateway を使用している場合、agent/optional-plugins/ ディレクトリ内の apm-spring-cloud-gateway-2.1.x-plugin-8.7.0.jarapm-spring-webflux-5.x-plugin-8.7.0.jarskywalking-agent/plugins/ ディレクトリにコピーする必要があります。

注意: apm-spring-cloud-gateway のバージョンは、使用している Spring Cloud Gateway のバージョンに対応している必要があります。

cp /usr/local/df-demo/skywalking/agent/optional-plugins/apm-spring-cloud-gateway-2.1.x-plugin-8.7.0.jar /usr/local/df-demo/skywalking/agent/plugins/
cp /usr/local/df-demo/skywalking/agent/optional-plugins/apm-spring-webflux-5.x-plugin-8.7.0.jar /usr/local/df-demo/skywalking/agent/plugins/

以下のコマンドを実行してバックエンドサービスを起動し、フロントエンド画面のボタンをクリックしてバックエンドサービスを呼び出します。

cd /usr/local/df-demo/skywalking
java  -javaagent:agent/skywalking-agent.jar -Dskywalking.agent.service_name=skywalking-log  -Dskywalking.collector.backend_service=localhost:11800 -jar skywalking-user-service.jar

Guance」にログインし、「APM(アプリケーションパフォーマンスモニタリング)」に進み、サービス、トレース、トポロジービューを確認します。

image

4 RUM の有効化

Guance」にログインし、「RUM(リアルユーザーモニタリング)」に進み、新しいアプリケーション skywalking-web-demo を作成し、以下の JS をコピーします。

image

/usr/local/web/index.html を修正し、コピーした JS を head タグ内に貼り付けます。

  • datakitOrigin を DataKit のアドレス(ここでは Linux の IP アドレス + ポート 9529)に変更します。
  • allowedTracingOrigins をバックエンドインターフェースのアドレス(ここでは Linux の IP アドレス + ポート 8090)に変更します。

image

パラメータ説明

  • datakitOrigin:データ転送アドレス。ここでは DataKit のドメイン名または IP を指定します。必須項目です。
  • env:アプリケーションが属する環境。必須項目です。
  • version:アプリケーションのバージョン。必須項目です。
  • trackInteractions:ユーザー操作(ボタンクリック、情報送信など)の追跡を有効にするかどうか。必須項目です。
  • traceType:トレースタイプ。デフォルトは ddtrace です。必須ではありません。
  • allowedTracingOrigins:APM と RUM のトレースを連携させるために、バックエンドサービスのドメイン名または IP を指定します。必須ではありません。

フロントエンド画面のボタンをクリックします。「Guance」→「RUM(リアルユーザーモニタリング)」にログインし、「skywalking-web-demo」をクリックして、UV、PV、セッション数、アクセスされたページなどの情報を確認します。

image

image

5 エンドツーエンドの可観測性

Guance」→「RUM(リアルユーザーモニタリング)」にログインし、「skywalking-web-demo」をクリックして、エクスプローラーに進み、「view」を選択してページの呼び出し状況を確認し、「route_change」をクリックして詳細を確認します。

image

「トレース」を選択します。

image

リクエストレコードをクリックすると、「フレームグラフ」、「スパンリスト」、「サービス呼び出し関係」、およびこのトレース呼び出しによって生成されたログを確認できます。

image

フィードバック

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