理解するために分散追跡と監視を実現しますか?

概要概要

SkyWalkingは、オープンソースのObservability Analysis Platformであり、サービスおよびクラウドネイティブインフラストラクチャからデータを収集、分析、集約、および視覚化するために使用されます。SkyWalkingは、複数のクラウドプラットフォーム間でも、分散システムを明確に観察する簡単な方法を提供します。SkyWalkingは、特にクラウドネイティブのコンテナベースの分散システム向けに設計された最新のアプリケーションパフォーマンスモニタリングシステムです。

公式ウェブサイト:http://skywalking.apache.org/zh/ Githubホームページ:https://github.com/apache/skywalking

1はじめに

パブリックアカウント:Javaシニアアーキテクト、「idea」と入力して永続的な登録を取得してください!「入力アリババクラウドを取得するには、」アリババクラウドネットワークディスクのパブリックテストアドレスを

SkyWalkingは、サービス、サービスインスタンス、およびエンドポイントの可観測性を提供します。サービス、インスタンス、エンドポイントの概念は今日どこにでもあるので、まずSkyWalkingでそれらが何を意味するのかを理解しましょう

サービスは、リクエストに同じ動作を提供する一連のワークロードを表します。RBIまたはSDKを使用する場合、サービスの名前を定義できます。SkyWalkingは、Istioなどのプラットフォームで定義された名前を使用することもできます。

サービスインスタンス(サービスインスタンス)上記の一連のワークロードの各ワークロードはインスタンスと呼ばれます。Kubernetesのポッドと同様に、サービスインスタンスは必ずしもオペレーティングシステム上のプロセスではありません。ただし、管理エージェントを使用している場合時間、サービスインスタンスは実際にはオペレーティングシステム上の実際のプロセスです。

エンドポイントHTTPURIパスやgRPCサービスクラス名+メソッド署名など、特定のサービスが受信するリクエストパス。

  1. 建築

SkyWalkingのコアは、データ分析と測定結果のストレージプラットフォームであり、分析と測定データをHTTPまたはgRPCを介してSkyWalking Collectorに送信します。SkyWalkingCollectorは、データを分析して集約し、Elasticsearch、H2、MySQL、TiDBなどに保存します。 、そして最後に、SkyWalkingUIのビジュアルインターフェイスを介して最終結果を表示できます。Skywalkingは、複数のソースと複数の形式からのデータ収集をサポートしています。複数の言語のSkywalking Agent、Zipkin v1 / v2、Istioサーベイ、Envoyメトリック、その他のデータ形式。

SkyWalkingは、論理的に4つの部分に分かれています。プローブ、プラットフォームバックエンド、ストレージ、ユーザーインターフェイスです。

  • 調査。ソースによって異なる場合がありますが、その役割は、データを収集し、SkyWalkingに適した形式にデータをフォーマットすることです。

  • プラットフォームバックエンド。データ集約、データ分析、およびプローブからユーザーインターフェイスへのデータフローを駆動するプロセスをサポートします。分析には、Skywalkingのネイティブ追跡およびパフォーマンス指標のほか、IstioおよびEnvoyテレメトリ、Zipkin追跡フォーマットなどのサードパーティソースが含まれます。Observability Analysis Languageを使用して、ネイティブメトリックの集計分析と拡張メトリックのメータリングシステムをカスタマイズすることもできます。

  • ストレージ。オープンプラグインインターフェースを介してSkyWalkingデータを保存します。ElasticSearch、H2、MySQLクラスター(Sharding-Sphere管理)などの既存のストレージシステムを選択するか、ストレージシステムを自分で実装することを選択できます。もちろん、歓迎します。新しいストレージシステムの実装に貢献します。

  • UI。インターフェースに基づいて高度にカスタマイズされたWebシステムであるため、ユーザーはSkyWalkingデータを視覚的に表示および管理できます。

3.機能

SkyWalkingには次のコア機能があります。

  • 可観測性を維持します。SkyWalkingは、ターゲットシステムの展開方法に関係なく、ターゲットシステムの監視を維持するためのソリューションまたは統合された方法を常に提供します。これに基づいて、SkyWalkingはいくつかのランタイムプローブを提供します。

  • トポロジー。パフォーマンス指標と追跡統合分散システムを理解するための最初のステップは、そのトポロジ構造図を観察することです。トポロジ図は、複雑なシステムを単純な図で視覚化できます。トポロジ図に基づいて、運用および保守サポートシステムは関連しています。人々はより多くのパフォーマンス指標を必要としています。サービス/インスタンス/エンドポイント/コールについてリンクトレース(トレース)は詳細なログであり、この種のパフォーマンス指標にとって意味があります。たとえば、エンドポイントの待ち時間が非常に長くなる時期を知りたい場合は、理解したいと思います。最も遅いリンクと理由を見つけてください。したがって、これらの要件は全体像から詳細までであり、不可欠であることがわかります。SkyWalkingは、これらの要件を可能にする一連の機能を統合して提供します。また、理解しやすくします。 。

  • 軽量。軽量に保つ必要がある2つの側面があります。(1)プローブ、通常はgRPCなどのネットワーク伝送フレームワークに依存します。この場合、依存関係ライブラリの競合や仮想マシンの負荷を防ぐために、プローブはできるだけ小さくする必要があります。 (JVM永続生成メモリ占有圧力など)。(2)監視プラットフォームとして、これはプロジェクト環境全体のセカンダリシステムにすぎないため、独自の軽量フレームワークを使用してバックエンドコアサービスを構築します。 tビッグデータ関連のプラットフォームを展開および維持する必要がある場合、SkyWalkingはテクノロジースタックの観点から十分にシンプルである必要があります。

  • プラグ可能。SkyWalkingコアチームは多くのデフォルトの実装を提供しますが、これは確かに十分ではなく、すべてのシナリオに適用することは不可能であるため、プラグ可能な機能をサポートするために多数の機能を提供します。

  • ポータブル。SkyWalkingは、次のようなさまざまな環境で実行できます。(1)Eurekaなどの従来のレジストリを使用する(2)Spring Cloud、Apache Dubboなどのサービス検出を含むRPCフレームワークを使用する(3)最新のサービスネットワークを使用するインフラストラクチャ(4)クラウドサービスを使用する(5)クロスクラウド展開。これらすべての場合において、SkyWalkingはうまく機能するはずです

  • 相互運用可能。可観測性は広大な分野です。強力なコミュニティがあっても、SkyWalkingはすべての側面をサポートできるわけではありません。したがって、SkyWalkingは、主にZipkin、Jaeger、OpenTracing、OpenCensusなどのプローブなどの他の運用および保守サポートシステムとの相互運用性をサポートします。SkyWalking。データ形式。既存のライブラリを置き換える必要がないため、エンドユーザーにとって非常に便利です。

4.スカイウォーキングをインストールしてデプロイします

1.jdk1.8をデプロイします

2.ESを展開します

  1. スカイウォーキングを展開する

SkyWalkingの起動には2つの部分が含まれます。1つはSkyWalkingCollector(oapService)で、もう1つはSkyWalking UI(webappService)で、SkyWalkingが解凍された後のbinディレクトリです。

-- 下载安装
wget https://mirror.bit.edu.cn/apache/skywalking/8.0.1/apache-skywalking-apm-es7-8.0.1.tar.gz
tar -xzvf apache-skywalking-apm-es7-8.0.1.tar.gz -C /usr/local/
mv /usr/local/apache-skywalking-apm-bin-es7  /usr/local/skywalking

-- 修改配置,使用 elasticsearch7 作为存储
--选择连接ES7数据库,配置命名空间、IP地址、生命周期策略等参数。
--默认情况下,记录类数据保存3天,指标类数据保存7天,每间隔5分钟做一次滚动删除。
vim /usr/local/skywalking/config/application.yml
=========================================================================
storage:
  selector: ${SW_STORAGE:elasticsearch7}
  elasticsearch7:
    nameSpace: ${SW_NAMESPACE:"skyworking"}
    clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200}
core:
  default:
    enableDataKeeperExecutor: ${SW_CORE_ENABLE_DATA_KEEPER_EXECUTOR:true} # Turn it off then automatically metrics data delete will be close.
    dataKeeperExecutePeriod: ${SW_CORE_DATA_KEEPER_EXECUTE_PERIOD:5} # How often the data keeper executor runs periodically, unit is minute
    recordDataTTL: ${SW_CORE_RECORD_DATA_TTL:3} # Unit is day
    metricsDataTTL: ${SW_CORE_RECORD_DATA_TTL:7} # Unit is day

4.日常の運用と保守

-- 启动
/usr/local/skywalking/bin/startup.sh

5.アプリケーションアクセススカイウォーキングプローブ

SkyWalkingでは、プローブはターゲットシステムに統合されたエージェントまたはSDKライブラリを表し、リンク追跡やパフォーマンスインジケータなどのテレメトリデータを収集します。ターゲットシステムのテクノロジースタックによって、プローブは上記の機能を実現する方法が大きく異なる場合がありますが、基本的には同じです。つまり、データを収集してフォーマットし、バックエンドに送信します。

1.ダウンロードして解凍します

ターゲットシステムアプリケーションサーバーにログインし、公式ダウンロードパッケージのエージェントフォルダーを指定されたディレクトリにコピーします

unzip  apm-agent.zip  -d /usr/local

2.構成を変更します

デプロイメントアプリケーションのTomcatを入力し、tomcat / bin / catalina.shファイルを開き、動的プロキシ構成を追加し、サービス名、インスタンス名、バックエンドIPアドレス、ログ保持期間、収集要求パラメーター、およびsql実行パラメーターを設定します。通常、構成ファイルの最初に追加されます。

CATALINA_OPTS="$CATALINA_OPTS -javaagent:/usr/local/apm-agent/skywalking-agent.jar=agent.service_name=fsl_sit.portal,agent.instance_name=portal119,collector.backend_service=172.1xxxx:11800,logging.max_history_files=3,plugin.mysql.trace_sql_parameters=true,plugin.springmvc.collect_http_params=true"; export CATALINA_OPTS

3.Tomcatアプリケーションを再起動します

ps -ef|grep java|grep -v grep | awk '{print $2}' | xargs kill -9
  ./startup.sh

6.インターフェース表示の一部

Skywalkingは、リンクトラッキングを実行するのに役立つだけでなく、データベースで低速のSQLを取得し、さらに最適化するのにも役立ちます。興味のある友人はそれをテストできます。

おすすめ

転載: blog.csdn.net/qq_17010193/article/details/114898585