搭建skywalking 服務端
一. 所需第三方軟件
- XShell
- Xftp
- Visual Studio 2019
- .net Core 2.2 SDK
- JDK8+
- Elasticsearch 6.3.2
- centos7
- docker
二. 實驗架構
本次實驗采用2台服務器Elasticsearch 放在centos7上,collector和客戶端放在一起收集本機web服務器提供的數據。如果對skywalking架構不了解的同學可以先去了解一下。這里就不多做介紹了。
三. 安裝運行環境
1. 安裝java
根據博客上的命令行在centos7上安裝失敗了,命令如下
wget --no-check-certificate --no-cookie --header "Cookie: oraclelicense=accept-securebackup-cookie;" http://download.oracle.com/otn-pub/java/jdk/8u171-b11/512cd62ec5174c3487ac17c61aaa89e8/jdk-8u171-linux-x64.rpm
所以在本地上下載的jdk-8u221-linux-x64.rpm 在用Xftp傳到centos上,然后用一下命令安裝
rpm -ivh jdk-8u221-linux-x64.rpm
安裝完后使用命令檢查安裝是否成功
java -version

2. 部署Elasticsearch
我們使用docker安裝elasticsearch,使用命令拉取鏡像並且啟動容器
docker run -p 9200:9200 -p 9300:9300 -e cluster.name=elasticsearch -e xpack.security.enabled=false --name=elasticsearch --restart=always -d wutang/elasticsearch-shanghai-zone:6.3.2
使用命令查看啟動的容器
docker ps -a

可以去主機的9200端口查看ui界面

3. 部署collector
下載skywalking下載
這里使用的是6.x版本,相比於5.x版本,6.x版本的ui界面高大上許多。下載完解壓后目錄如下

由於skywalking默認是使用h2作為數據存儲,我們是使用官方推薦的elasticsearch作為數據存儲,所以我們要修改一下配置文件 config\application.yml,注釋掉h2的配置,打開elasticsearch的配置,並且配置好elasticsearch的地址。

配置信息
/config/application.yml
cluster:
# 單節點模式
standalone:
# zk用於管理collector集群協作.
# zookeeper:
# 多個zk連接地址用逗號分隔.
# hostPort: localhost:2181
# sessionTimeout: 100000
# 分布式 kv 存儲設施,類似於zk,但沒有zk重型(除了etcd,consul、Nacos等都是類似功能)
# etcd:
# serviceName: ${SW_SERVICE_NAME:"SkyWalking_OAP_Cluster"}
# 多個節點用逗號分隔, 如: 10.0.0.1:2379,10.0.0.2:2379,10.0.0.3:2379
# hostPort: ${SW_CLUSTER_ETCD_HOST_PORT:localhost:2379}
core:
default:
# 混合角色:接收代理數據,1級聚合、2級聚合
# 接收者:接收代理數據,1級聚合點
# 聚合器:2級聚合點
role: ${SW_CORE_ROLE:Mixed} # Mixed/Receiver/Aggregator
# rest 服務地址和端口
restHost: ${SW_CORE_REST_HOST:localhost}
restPort: ${SW_CORE_REST_PORT:12800}
restContextPath: ${SW_CORE_REST_CONTEXT_PATH:/}
# gRPC 服務地址和端口
gRPCHost: ${SW_CORE_GRPC_HOST:localhost}
gRPCPort: ${SW_CORE_GRPC_PORT:11800}
downsampling:
- Hour
- Day
- Month
# 設置度量數據的超時。超時過期后,度量數據將自動刪除.
# 單位分鍾
recordDataTTL: ${SW_CORE_RECORD_DATA_TTL:90}
# 單位分鍾
minuteMetricsDataTTL: ${SW_CORE_MINUTE_METRIC_DATA_TTL:90}
# 單位小時
hourMetricsDataTTL: ${SW_CORE_HOUR_METRIC_DATA_TTL:36}
# 單位天
dayMetricsDataTTL: ${SW_CORE_DAY_METRIC_DATA_TTL:45}
# 單位月
monthMetricsDataTTL: ${SW_CORE_MONTH_METRIC_DATA_TTL:18}
storage:
elasticsearch:
# elasticsearch 的集群名稱
nameSpace: ${SW_NAMESPACE:"local-ES"}
# elasticsearch 集群節點的地址及端口
clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:192.168.2.10:9200}
# elasticsearch 的用戶名和密碼
user: ${SW_ES_USER:""}
password: ${SW_ES_PASSWORD:""}
# 設置 elasticsearch 索引分片數量
indexShardsNumber: ${SW_STORAGE_ES_INDEX_SHARDS_NUMBER:2}
# 設置 elasticsearch 索引副本數
indexReplicasNumber: ${SW_STORAGE_ES_INDEX_REPLICAS_NUMBER:0}
# 批量處理配置
# 每2000個請求執行一次批量
bulkActions: ${SW_STORAGE_ES_BULK_ACTIONS:2000}
# 每 20mb 刷新一次內存塊
bulkSize: ${SW_STORAGE_ES_BULK_SIZE:20}
# 無論請求的數量如何,每10秒刷新一次堆
flushInterval: ${SW_STORAGE_ES_FLUSH_INTERVAL:10}
# 並發請求的數量
concurrentRequests: ${SW_STORAGE_ES_CONCURRENT_REQUESTS:2}
# elasticsearch 查詢的最大數量
metadataQueryMaxSize: ${SW_STORAGE_ES_QUERY_MAX_SIZE:5000}
# elasticsearch 查詢段最大數量
segmentQueryMaxSize: ${SW_STORAGE_ES_QUERY_SEGMENT_SIZE:200}
配置完后進入 bin目錄,執行批處理文件,windows下為startup.bat,linux為 startup.sh。啟動成功后訪問8080端口。出現如下界面則說明skywalking部署成功,接下來可以進行客戶端接入

