dockerを使用してTomcatをデプロイし、Skywalkingに接続する

dockerを使用してTomcatをデプロイし、Skywalkingに接続する

1. 概要

前回の記事では、docker を使用して Spring Boot をデプロイし、Skywalking に接続する方法を紹介し、docker-compose を使用して Skywalking を構築する方法について説明しました。この記事では、Skywalking の構築方法は紹介しません。ここでは、主に、docker を使用して Tomcat をデプロイし、サービス リンクの追跡のために Skywalking に接続する方法について記録します。

2. dockerを使用してTomcatをデプロイし、Skywalkingに接続する

以下は、Tomcat アプリケーションを Skywalking 公式 Web サイトに接続する方法の説明です。

詳細については、公式ウェブサイトをご覧ください:スカイウォーキングエージェント公式ウェブサイト

Linux の Tomcat 7 / Tomcat 8
tomcat/bin/catalina.shの最初の行に以下を追加します。

CATALINA_OPTS="$CATALINA_OPTS -javaagent:<skywalking-agent-path>"; エクスポート CATALINA_OPTS

Windows の Tomcat 7 / Tomcat 8
tomcat/bin/catalina.bat の最初の行に以下を追加します。

"CATALINA_OPTS=-javaagent:<skywalking-agent-path>" を設定します。

JARファイルまたはSpring Boot
アプリケーションの起動コマンド ラインに-javaagentパラメータを追加します。

java -javaagent:<skywalking-agent-path> -jar yourApp.jar

注意: -javaagentパラメータは -jar パラメータの前に指定する必要があります。

tomcat のデプロイには docker を使用しているため、 tomcat/bin/catalina.shファイルを変更する予定はありません。tomcat tomcat/bin/catalina.shファイルを確認すると、次の記述があります。

画像.png

下の図では、 setenv.shを読み取るスクリプトが定義されています。

画像.png

つまり、 catalina.shスクリプトで変数を設定しないでください。カスタム変数を分離するには、カスタム環境変数をCATALINA_BASE/bin/setenv.shファイルに配置する必要があります。さらに、テストの結果、環境変数メソッドを直接使用して設定できることがわかりました。以下では、両方の方法の構成について説明します。

1. setenv.shファイルにカスタム変数を記述する

まず、Skywalking エージェントをダウンロードする必要があります。エージェントのダウンロードについては、この記事の冒頭の記事を参照してください。次に、エージェントをアクセス可能なディレクトリに配置します。ここではテストを行っているため、エージェント ディレクトリを Dockerfile と同じディレクトリにコピーしました。Dockerfile Dockerfile内容は次のとおりです。

tomcatから

ラベル maintaner="xiniao"

コピーエージェント /usr/skywalking/agent

ワークディレクトリ /usr/local/tomcat/bin

実行 echo 'CATALINA_OPTS="$CATALINA_OPTS -javaagent:/usr/skywalking/agent/skywalking-agent.jar";' > setenv.sh

ENV SW_AGENT_NAME="my-spring-demo" \
    SW_AGENT_COLLECTOR_BACKEND_SERVICES="127.0.0.1:11800"

ワークディレクトリ /usr/local/tomcat/webapps/ROOT

コピー target/my-spring-demo.war my-spring-demo.war

jar -xf my-spring-demo.war を実行します。

スカイウォーキング エージェントのその他の構成については、環境変数で定義できます。たとえば、ここでは、スカイウォーキングに表示されるサービス名をENV SW_AGENT_NAME="my-spring-demo"として指定し、スカイウォーキングのバックエンド サービス アドレスSW_AGENT_COLLECTOR_BACKEND_SERVICES="127.0.0.1:11800"指定します。スカイウォーキング UI にアクセスすると、次の内容が表示されます。

画像.png

2. 環境変数を使用してスカイウォーキングエージェントのパスを指定する

Dockerfile詳細な内容は次のとおりです。

tomcatから

ラベル maintaner="xiniao"

コピーエージェント /usr/skywalking/agent

ENV CATALINA_OPTS="$CATALINA_OPTS -javaagent:/usr/skywalking/agent/skywalking-agent.jar" \
    SW_AGENT_NAME="my-spring-demo-env" \
    SW_AGENT_COLLECTOR_BACKEND_SERVICES="127.0.0.1:11800"

ワークディレクトリ /usr/local/tomcat/webapps/ROOT

コピー target/my-spring-demo.war my-spring-demo.war

jar -xf my-spring-demo.war を実行します。

イメージをビルドするには、次のコマンドを使用します。

次のコマンドを実行して、docker build -t my-spring-demo を実行します。

次のコマンドを使用してコンテナを実行します。

docker run --rm -p 8080:8080 my-spring-demo

Skywalking UI にアクセスすると、次のように監視情報が表示されます。

画像.png

要約する

この記事では主に、docker を使用して tomact をデプロイし、skywalking に接続する方法を紹介します。インターネット上に関連情報があまりないため、必要な人に少しでも役立つようにここに記録します。ここでもまだいくつか問題があります。たとえば、イメージ ファイルに skywalking エージェントを直接入力するのは使いにくいです。tomcat ベース イメージをカスタマイズし、ベース イメージに skywalking エージェントを入力できると思います。このようにして、すべての tomcat がこのベース イメージを参照してイメージを構築し、skywalking に接続できます。デプロイに k8s を使用する場合、ポッド内に初期コンテナを定義できます。ポッドが起動したら、初期コンテナ内の skywalking エージェントをアプリケーションにコピーします。次の記事では、k8s で skywalking を使用する方法と、ポッドアプリケーションを侵入せずに skywalking に接続する方法を紹介します。

これで、docker を使用して tomcat をデプロイし、skywalking に接続する方法についての記事は終了です。docker を使用して tomcat をデプロイし、skywalking に接続する方法についての関連コンテンツをさらにご覧になりたい場合は、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Docker を使用してプロジェクトを迅速にデプロイするための Spring Boot の手順を完了します。
  • SpringbootはDockerデプロイメントを統合し、Dockerイメージを構築する2つの方法を実装します。
  • Docker を使用して Spring Boot アプリケーションをデプロイする例
  • SpringbootプロジェクトのDockerデプロイメント実践の詳細な説明
  • Dockerfile を使用して SpringBoot プロジェクトをデプロイする方法
  • docker を使用して Spring Boot をデプロイし、Skywalking に接続する方法

<<:  ウェブデザインとは何か

>>:  CSS3 すりガラス効果

推薦する

概要ページでのフロートとクリアフロート

1. フロート: 主な目的は、テキストを画像の周囲に折り返す効果を実現することです。また、複数列レイ...

CocosCreator でカメラトラッキングに cc.follow を使用する方法

Cocos Creator バージョン: 2.3.4デモのダウンロード: https://files...

一般的なメールボックスで正常に表示できる HTML メールを作成するためのヒント

HTML メールを送信するためのヒント: スタイルを使用してインライン CSS を記述する、使用する...

MySQL 8.0 の新機能 - 管理ポートの使用の概要

目次序文接続管理追加の接続管理ポート要約する序文皆さんの多くは、次のようなエラー メッセージに遭遇し...

スライダー間隔コンポーネントのネイティブ js 実装

この記事の例では、スライダー間隔コンポーネントを実装するためのjsの具体的なコードを参考までに共有し...

MySQLデータベースはsysbenchに基づくOLTPベンチマークテストを実装します

Sysbench は、MySQL データベース ストレージ エンジン InnoDB のディスク I/...

Vue が配列の変更を監視できない問題の解決方法

目次1. Vueリスナー配列2. vueが配列の変更を監視できない状況1. Vueリスナー配列Vue...

MySQLとOracleの誤解の詳細な説明

目次本質的な違いデータベースセキュリティ権限スキーマの移行パターンオブジェクトの類似性スキーマオブジ...

Apache ソースコードのインストールと仮想ホストの設定に関する詳細なチュートリアル

ソースからApacheをインストールする1. Apacheソースコードをアップロードして必要なソフト...

ubuntu15.10 での hadoop2.7.2 の詳細なインストールと設定

Linux での Hadoop インストール チュートリアルはインターネットや書籍に多数ありますが、...

MySQL 8.0.18 のインストールと設定方法のグラフィックチュートリアル

この記事は、参考のためにMySQL 8.0.18のインストールと設定のグラフィックチュートリアルを記...

Dockerfile を使用して Docker でイメージを構築する方法

イメージを構築するこれまで、テストやデモンストレーションにさまざまなイメージを使用しました。多くの場...

初心者のための入門チュートリアル⑤:ウェブサイト登録はとても簡単、簡単な登録のヒント

スペースを購入してウェブサイトを構築したことがある友人なら、ウェブサイトは正式に開設する前に登録する...

クラウドデータ移行サービスの観点から見たMySQLの大規模テーブル抽出モードの原理分析

概要: MySQL JDBC 抽出にはどのような方法を使用すればよいでしょうか? その方法を説明しま...

各 Nginx プロセスで開くことができるファイルの最大数を設定する方法

1. システム内で開いているファイルの最大数を確認する #現在のリソース制限設定を表示する ulim...