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 すりガラス効果

推薦する

MYSQL の binlog 最適化に関する考察の要約

質問質問 1: トランザクションをコミットするときに REDO ログをフラッシュすることによって発生...

vue+drf+サードパーティのスライディング検証コードアクセスの実装

目次1. 背景2. 検証プロセス3. 検証を作成する4. フロントエンドコード4.1 コアjsファイ...

MySQL Community Server 5.7.19 インストール ガイド (詳細)

MySQL公式サイトのzipファイルのダウンロードリンク https://dev.mysql.co...

数ステップでサイバーパンク2077風の視覚効果を実現するCSS

背景記事を始める前に、賽博朋克とは何か、賽博朋克2077とは何かを簡単に理解しましょう。サイバーパン...

VirtualBox+Ubuntu16でKubernetesクラスタを構築する実装

目次Kubernetesについて基本的な環境の準備VirtualBoxをインストールするUbuntu...

Docker Consul の概要とクラスター環境構築手順(グラフィカルな説明)

目次1. Dockerコンサルの概要2. nginxとconsulをベースにした自動検出と高可用性の...

負荷分散と動的・静的分離を実現するNginx+Tomcatの原理の分析

1. Nginx ロードバランシングの実装原理1. Nginxはリバースプロキシを通じて負荷分散を実...

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

1. システム環境[root@localhost ホーム]# cat /etc/redhat-re...

Docker で MySQL マスターとスレーブをデプロイする方法

画像をダウンロードMySQLイメージの選択 docker 検索 mysql MySQL 5.7 イメ...

Docker の win ping 失敗コンテナ回避ガイド

win docker-desktopを使ってコンテナ開発に接続し、ネットワーク上で色々試してみたいと...

docker nginxコンテナの起動とローカルへのマウントの詳細な説明

まず、nginx コンテナ内の構造:コンテナを入力します: docker exec -it b511...

MySQL 単一テーブルクエリの例の詳細な説明

1. データを準備するこのテーブルでは次の操作が実行されます 学生テーブルを作成 ( id int ...

ウェブデザインで注意すべき検索最適化の知識

1. 新サイトホームページのリンクレイアウト1. リンク配置の位置:リンク配置の位置によって、リンク...

Linux ファイル管理コマンド例の分析 [権限、作成、削除、コピー、移動、検索など]

この記事では、Linux ファイル管理コマンドについて例を挙げて説明します。ご参考までに、詳細は以下...

JavaScript データ型の詳細な説明

目次1. リテラル1.1 数値リテラル1.2 浮動小数点リテラル1.3 特別な値1.4 文字列リテラ...