[TOC]
ビルドSkyWalkingサービス(ElasticSearch 7の場合)
リファレンスの使用に基づいてSkyWalking:
公式文書:
ダウンロードアーカイブ
まず、以下のアドレスでダウンロードアドレス、公式のダウンロードをSkyWalkingを取得する必要があります。
ドッキングESサービスのバージョン7.xの必要性は、そうここElasticSearch 7のために選択されたので、ここで私は、6.6.0のバイナリパッケージの最新バージョンを選択しました:
ダウンロードおよび抽出は、次のステップのためにサーバーにコピーをダウンロード:
[root@localhost ~]# cd /usr/local/src
[root@localhost /usr/local/src]# wget http://mirror.bit.edu.cn/apache/skywalking/6.6.0/apache-skywalking-apm-es7-6.6.0.tar.gz
[root@localhost /usr/local/src]# mkdir ../skywalking && tar -zxvf apache-skywalking-apm-es7-6.6.0.tar.gz -C ../skywalking --strip-components 1
[root@localhost /usr/local/src]# cd ../skywalking/
[root@localhost /usr/local/skywalking]# ll -rh # 解压后的目录文件如下
total 88K
drwxr-xr-x 2 root root 53 Dec 28 18:22 webapp
-rw-rw-r-- 1 1001 1002 2.0K Dec 24 14:10 README.txt
drwxrwxr-x 2 1001 1002 12K Dec 24 14:28 oap-libs
-rwxrwxr-x 1 1001 1002 32K Dec 24 14:10 NOTICE
drwxrwxr-x 3 1001 1002 4.0K Dec 28 18:22 licenses
-rwxrwxr-x 1 1001 1002 29K Dec 24 14:10 LICENSE
drwxr-xr-x 2 root root 221 Dec 28 18:22 config
drwxr-xr-x 2 root root 241 Dec 28 18:22 bin
drwxrwxr-x 8 1001 1002 143 Dec 24 14:21 agent
[root@localhost /usr/local/skywalking]#
コンフィギュレーション
プローブ、後端プラットフォーム、ストレージ、およびユーザインタフェース:論理的に4つの分割構成をSkyWalking。データのアップロードエージェントの監視を収集するために使用されるバックエンドサービスプラットフォームは、コア・コンフィギュレーション・ファイルが配置されていますconfig/application.yml
。
要件がない場合は、基本的に構成を変更することなく、直接サービスをSkyWalking開始することができます。しかし、通常のオンラインそこにデータの永続性のニーズを監視し、H2、このメモリデータベースを使用して、デフォルトをSkyWalkingされ、永続ストレージの特性を持っていません。我々は、ストレージコンポーネントとしてのストレージ構成、アクセスelasticsearchサービスを変更する必要がありますので。
まず、コメントアウトするデフォルトH2のデータベース構成:
[root@ip-236-048 skywalking]# vim config/application.yml
# h2:
# driver: ${SW_STORAGE_H2_DRIVER:org.h2.jdbcx.JdbcDataSource}
# url: ${SW_STORAGE_H2_URL:jdbc:h2:mem:skywalking-oap-db}
# user: ${SW_STORAGE_H2_USER:sa}
# metadataQueryMaxSize: ${SW_STORAGE_H2_QUERY_MAX_SIZE:5000}
注アンロックの設定をelasticsearch7し、次のように改正します:
storage:
elasticsearch7:
# nameSpace: ${SW_NAMESPACE:""}
clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:192.168.3.10:9200}
protocol: ${SW_STORAGE_ES_HTTP_PROTOCOL:"http"}
# trustStorePath: ${SW_SW_STORAGE_ES_SSL_JKS_PATH:"../es_keystore.jks"}
# trustStorePass: ${SW_SW_STORAGE_ES_SSL_JKS_PASS:""}
# user: ${SW_ES_USER:""}
# password: ${SW_ES_PASSWORD:""}
indexShardsNumber: ${SW_STORAGE_ES_INDEX_SHARDS_NUMBER:2}
indexReplicasNumber: ${SW_STORAGE_ES_INDEX_REPLICAS_NUMBER:0}
# Those data TTL settings will override the same settings in core module.
recordDataTTL: ${SW_STORAGE_ES_RECORD_DATA_TTL:7} # Unit is day
otherMetricsDataTTL: ${SW_STORAGE_ES_OTHER_METRIC_DATA_TTL:45} # Unit is day
monthMetricsDataTTL: ${SW_STORAGE_ES_MONTH_METRIC_DATA_TTL:18} # Unit is month
# Batch process setting, refer to https://www.elastic.co/guide/en/elasticsearch/client/java-api/5.5/java-docs-bulk-processor.html
bulkActions: ${SW_STORAGE_ES_BULK_ACTIONS:1000} # Execute the bulk every 1000 requests
flushInterval: ${SW_STORAGE_ES_FLUSH_INTERVAL:10} # flush the bulk every 10 seconds whatever the number of requests
concurrentRequests: ${SW_STORAGE_ES_CONCURRENT_REQUESTS:2} # the number of concurrent requests
resultWindowMaxSize: ${SW_STORAGE_ES_QUERY_MAX_WINDOW_SIZE:10000}
metadataQueryMaxSize: ${SW_STORAGE_ES_QUERY_MAX_SIZE:5000}
segmentQueryMaxSize: ${SW_STORAGE_ES_QUERY_SEGMENT_SIZE:200}
advanced: ${SW_STORAGE_ES_ADVANCED:""}
他の一般的な必要性はgRPC APIのREST APIのためのデフォルトの通信ポート12800、デフォルトの通信ポート11800をskywalking、リスニングIPとポート番号を変更することです。これらは、設定ファイルで変更することができ、私はデフォルトのままにするためにここにいます:
core:
default:
# Mixed: Receive agent data, Level 1 aggregate, Level 2 aggregate
# Receiver: Receive agent data, Level 1 aggregate
# Aggregator: Level 2 aggregate
role: ${SW_CORE_ROLE:Mixed} # Mixed/Receiver/Aggregator
restHost: ${SW_CORE_REST_HOST:0.0.0.0}
restPort: ${SW_CORE_REST_PORT:12800}
restContextPath: ${SW_CORE_REST_CONTEXT_PATH:/}
gRPCHost: ${SW_CORE_GRPC_HOST:0.0.0.0}
gRPCPort: ${SW_CORE_GRPC_PORT:11800}
- 詳述され、他の設定項目公式文書
ラン
設定を完了した後、実行bin
ディレクトリのstartup.sh
スクリプトは、サービスをskywalking開始します。
[root@localhost /usr/local/skywalking]# bin/startup.sh
SkyWalking OAP started successfully!
SkyWalking Web Application started successfully!
[root@localhost /usr/local/skywalking]#
ファイアウォールのニーズがポートを開く場合は、デフォルトでポート8080をリッスンするためにコンソールサービスをSkyWalking:
[root@localhost /usr/local/skywalking]# firewall-cmd --zone=public --add-port=8080/tcp --permanent
success
[root@localhost /usr/local/skywalking]# firewall-cmd --reload
success
[root@localhost /usr/local/skywalking]#
あなたは、リモートの送信を許可する場合は、開く必要11800(gRPC)とデータ12800(残り)ポート、トランスポート・ポートが収集したリモートエージェント:
[root@localhost /usr/local/skywalking]# firewall-cmd --zone=public --add-port=11800/tcp --permanent
success
[root@localhost /usr/local/skywalking]# firewall-cmd --zone=public --add-port=12800/tcp --permanent
success
[root@localhost /usr/local/skywalking]# firewall-cmd --reload
success
[root@localhost /usr/local/skywalking]#
適切に正常に起動した後、次のようにホーム・ページにアクセスするには、ブラウザを使用します。
- ヒント: skywalkingはあなたがelasticsearchサービスを初めて接続する場合には、サービスへのインデックスESの多くを作成する必要がskywalkingので、もっとゆっくり開始します。だから、完了が作成されていない前に、このページをご覧空白になります。この時点で、ログの開始時に見ていることによって決定することができるパスを記録し、完了です。
logs/skywalking-oap-server.log
使用
skywalkingは、通常、データを監視対象かどうかを確認するためにプローブを引き継ぐためのプロジェクトのための統合されたJavaエージェント。まず、2つの単純な春のクラウドプロジェクト、すなわち消費者と生産者を作成します。
ナコス発見、openfeignとウェブ:プロジェクトの両方のコンポーネントは、依存性に基づいて含まれています。SkyWalkingはJavaエージェントの道を介してプローブの言語をデータを収集し、アップロードすることがあるので、そうzipkinのような追加の依存関係および設定を追加する必要はありません。
シンプルなコールのフォローを達成するために提供生産者、消費者のコール・インタフェースは、リンクSkyWalkingに効果を発揮します。次のようにそのため、生産者コードインタフェースライトです。
@Slf4j
@RestController
@RequestMapping("/producer")
public class ProducerController {
@GetMapping
public String producer() {
log.info("received a request");
return "this message from producer";
}
}
消費者はまた、このインターフェイスへのインターフェイスは、プロデューサー・インターフェースと呼ばれています。コードは以下の通りであります:
@Slf4j
@RestController
@RequiredArgsConstructor
@RequestMapping("/consumer")
public class ConsumerController {
private final ProducerClient producerClient;
@GetMapping
public String consumer() {
log.info("consumer something");
// 通过feign调用
String result = producerClient.producer();
return "consumer: " + result;
}
}
ProducerClient
コードは以下の通りであります:
@FeignClient("producer")
public interface ProducerClient {
@GetMapping("/producer")
String producer();
}
対応するアーカイブプラットフォームをダウンロードするには、ダウンロードページの前に取得するので、プランをSkyWalkingローカルデバッグのJavaエージェントのjarパッケージを使用する必要性のために:
次のようにファイルディレクトリの内容を抽出した後:
私たちは、主に、エージェントのディレクトリの下のjarパッケージを使用します。
便宜上、各サービス・エージェントのためのディレクトリの単一のコピーがありません。方法のJVM起動パラメータを追加することによって、構成アイテムをオーバーライドします。
# 指定java agent的jar包路径
-javaagent:E:\skywalking\apache-skywalking-apm-bin\agent\skywalking-agent.jar
# 指定skywalking agent的服务名称,通常对应项目的服务名称
-Dskywalking.agent.service_name=consumer
# 指定skywalking后端平台收集服务的连接ip及端口号
-Dskywalking.collector.backend_service=192.168.10.6:11800
上記の手順を完了した後、コンフィギュレーション・インタフェースは、IDEAのガイドクラスJVM起動パラメータに設けられています。次のとおりです。
- プロデューサーのサービスは同図に設定されている、サービス名は、それを変更するには
二つのプロジェクトを開始し、その後、アクセスされた/consumer
インターフェースを:
このとき、SkyWalkingページを監視するために、ページを「追跡」と入力し、正しい時間枠を選択すると、インターフェイスのリンクトラッキング情報を見ることができます:
その他の機能
サービストポロジー:
サービス監視:
サービスインスタンスを監視します:
エンドポイントのモニタリング:
何の監視ページ上のデータ、ログやエラーメッセージなしが見つからないプロジェクトが適切にエージェントの成功を統合した場合、それでも、それは最も可能性の高い適切な時期を選択しませんでした。