搭建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部署成功,接下来可以进行客户端接入