SpringCloudAlibabaのマイクロサービスの運用と保守が1つに統合されたSkyWalking

概要概要

マイクロサービスアーキテクチャでのリクエストには複数のサービスが含まれ、サービス自体も他のサービスに依存する可能性があることは誰もが知っています。リクエストパス全体がメッシュ化されたコールチェーンを構成し、コールチェーン全体のノードになると例外が発生した場合の安定性コールチェーン全体の影響を受けます。時間内に処理されない場合、システム全体がクラッシュする可能性があります。

上記の状況に直面した場合、システムの動作を理解し、パフォーマンスの問題を分析するのに役立つツールが必要です。これにより、障害が発生したときに、問題をすばやく特定して解決できます。

この章では、マイクロサービスのSkyWalkingモニタリングを統合しましょう。結局のところ、2021年です。本番環境では、コールチェーンモニタリングとしてzipkinを使用する必要がある人はほとんどいません。

 
SkyWalkingに関する一連の記事は、「運用と保守の監視」シリーズの記事ですでに書いています。興味のある学生は、次のリンクにアクセスして表示できます。

http://javadaily.cn/category/devops

今回は、次の2つの理由から、一連のマイクロサービスで再度記述します。

  • 元のバージョンはSkyWalking6.xを使用し、新しいバージョンは8.3に達しましたが、バージョンはまったく異なります。

  • この一連の記事の整合性を維持する

バージョンの説明:ElasticSearch7.10.1 + Skywalking8.3
前提条件:JDK8を使用して仮想マシンを準備する

ElasticSearchのインストールとデプロイ

  • ダウンロード

公式ウェブサイトのダウンロードリンクは非常に遅いです、ここに中国で推奨されるダウンロードアドレスがあります:https://www.newbe.pro/Mirrors/Mirrors-Elasticsearch/

  • 解凍

ファイルをサーバーディレクトリ/ app / elasticsearchにアップロードし、解凍します

cd /app/elasticsearch
tar -zxvf elasticsearch-7.7.0-linux-x86_64.tar.gz
  • システムメモリ構成を変更する

では/etc/sysctl.conf、以下の設定を追加

vm.max_map_count = 655360

/etc/security/limits.conf増加は背中を次の

# End of file
*       soft    memlock   unlimited
*       hard    memlock   unlimited
*       hard    nofile    65536
*       soft    nofile    65536

編集してコマンドを使用した後sysctl -p、構成をリロードします

  • ElasticSearch起動ユーザーを作成する

ElasticSearchをrootユーザーが開始することは許可されていないため、ElasticSearchを開始してユーザーに対応する権限を付与するには、Elasticユーザーを作成する必要があります。

useradd elastic
chown -R elastic:elastic /app/elasticsearch/elasticsearch-7.10.1
  • 構成を変更する/app/elasticsearch/elasticsearch-7.10.1/config/elasticsearch.yml

cluster.name: sw-application
node.name: node-1
network.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts: ["127.0.0.1"]
cluster.initial_master_nodes: ["node-1"]
  • esのJVMパラメータを変更します/app/elasticsearch/elasticsearch-7.10.1/config/jvm.options

-Xms4g
-Xmx4g
  • エラスティックユーザーを切り替えてエラスティックを開始

su elastic  # 切换用户
cd /app/elasticsearch/elasticsearch-7.10.1/bin
# 启动
./elasticsearch
# 后台启动
./elasticsearch -d

このとき、次のプロンプトが表示されます

Elasticsearchの将来のバージョンでは、Java11が必要になります。[/app/java/jdk1.8.0_18 1 / jre]のJavaバージョンがこの要件を満たしていません

ElasticSearch7以降のバージョンではJDK11のサポートが必要ですが、システムはJDK8とともにインストールされ、環境変数によって設定されたJAVA_HOMEもJDK8です。

[root@tymonitor bin]# which java
/app/java/jdk1.8.0_181/bin/java

[root@tymonitor bin]# java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

「これは、ESに付属のJDKを使用するように変更する必要があります。もちろん、JDK11 +バージョンをインストールする場合、次のステップは無視できます。」

  • placelsaticsearch jdk

ファイル/app/elasticsearch/elasticsearch-7.10.1/bin/elasticsearch-env開き、次の構成を変更します

if [ ! -z "$JAVA_HOME" ]; then
  JAVA="$JAVA_HOME/bin/java"
  JAVA_TYPE="JAVA_HOME"
else
  if [ "$(uname -s)" = "Darwin" ]; then
     # macOS has a different structure
   JAVA="$ES_HOME/jdk.app/Contents/Home/bin/java"
  else
      JAVA="$ES_HOME/jdk/bin/java"
  fi
    JAVA_TYPE="bundled jdk"
fi

着替える:

if [ "$(uname -s)" = "Darwin" ]; then
    # macOS has a different structure
    JAVA="$ES_HOME/jdk.app/Contents/Home/bin/java"
  else
    JAVA="$ES_HOME/jdk/bin/java"
  fi
  JAVA_TYPE="bundled jdk"
  • 再起動し、起動ログを確認します

  • ElasticSearchの実行ステータスを表示するブラウザ http://xx.xx.xx.xx:9200/

{
  "name" : "node-1",
  "cluster_name" : "sw-application",
  "cluster_uuid" : "AOvOVaqWQ6uWDGQRx1l4nA",
  "version" : {
    "number" : "7.10.1",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "1c34507e66d7db1211f66f3513706fdf548736aa",
    "build_date" : "2020-12-05T01:00:33.671820Z",
    "build_snapshot" : false,
    "lucene_version" : "8.7.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

SkyWalkingビルド

ダウンロードとインストール

  • ダウンロード

SkyWalking 8.3の最新バージョンを公式ウェブサイトからダウンロードします。ES7.xバージョンを使用する必要があるため、ES7バージョンをダウンロードする必要があります。

ダウンロードリンク:https://skywalking.apache.org/downloads/

バージョン:apache-skywalking-apm-es7-8.3.0.tar.gz

  • アップロードして解凍します

ダウンロードしたファイルをサーバーにアップロードします /app/skywalking/

次のコマンドを使用して、フォルダを解凍して名前を変更します。

tar -zxvf apache-skywalking-apm-es7-8.3.0.tar.gz
mv apache-skywalking-apm-bin-es7/ apache-skywalking-apm

構成

  • UIページのアクセスポートを変更する

/app/skywalking/apache-skywalking-apm/webapp/webapp.ymlを変更し、デフォルトのポート8080を他のポート8768に変更します

server:
  port: 8768
  • ストレージモードを変更する

SkyWalkingはデフォルトでストレージデータベースとしてh2を使用しますが、elasticsearch7に置き換える必要があります。

storage:
  selector: ${SW_STORAGE:elasticsearch7}
  • elasticsearch7関連の構成を変更する

nameSpaceを現在のESクラスターの名前に変更します。nameSpaceは以前のES構成と一致している必要があります。clusterNodesはノード名です。

storage:
  elasticsearch7:
    nameSpace: ${SW_NAMESPACE:"sw-application"}
    clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200}
  • スカイウォーキングを開始する

cd /app/skywalking/apache-skywalking-apm/bin
sh startup.sh
...
SkyWalking OAP started successfully!
SkyWalking Web Application started successfully!

コマンドの完了後に開始してnetstat -aptn、ポートの占有率を表示できます

ポート占有率
  • SkyWalkingアドレスにアクセスhttp://xx.xx.xx.xx:8768/

 

サービス構成

SkyWalkingがagentフォルダをアプリケーションサーバーに解凍した後、/app/service/ltc/skywalking-agent/agentアプリケーションサーバーの開始コマンドを変更すると、命令java -jar増加になり-javaagentます。

といった:

java -Xms4g -Xmx4g -javaagent:/app/service/skywalking-agent/agent/skywalking-agent.jar=agent.service_name=auth-service,agent.instance_name=auth-service-01,collector.backend_service=xx.xx.xx.xx:11800

主に3つのパラメータを設定します

  • agent.service_name = auth-service

サービス名を指定するには「必須」

  • コレクター.backend_service = xx.xx.xx.xx:11800

「必須」、バックエンドoapのアドレスを指定するために使用

  • agent.instance_name = auth-service-01

UIマップで指定されていない場合、インスタンス名の「オプション」UUID@IPフォーマットを表示します

「注:SpringCloudゲートウェイアクセスSkyWalkingは/agent/optional-plugins/apm-spring-cloud-gateway-2.x.x-plugin-8.3.0.jar/エージェント/プラグイン/ディレクトリにコピーする必要があります。」

SkyWalkingプローブをすべてのサービスに追加して開始した後、SKyWalkingのUIアドレスに再度アクセスすると、効果は次のようになります。

 

 

 

上記、私はあなたを助けたいと思っています!

 

 

おすすめ

転載: blog.csdn.net/jianzhang11/article/details/112301082