Skywalking分布式追踪系统-架构设计和安装(含Elasticsearch)

分布式系统的应用程序性能监视工具,专为微服务、云主机架构和基于容器(Docker、K8s、Mesos)架构而设计。

Skywalking分布式追踪系统-架构设计和安装(含Elasticsearch)

Skywalking

SkyWalking开源项目由吴晟于2015年创建,同年10月在GitHub上作为个人项目开源。

2017年11月,SkyWalking社区正式决定,寻求加入Apache基金会,希望能使项目成为更为开放、全球化和强大的APM开源产品,并加强来自社区的合作和交流。最终实现构建一款功能强大、简单易用的开源APM产品。

2017年12月8日,Apache软件基金会孵化器项目管理委员会 ASF IPMC宣布“SkyWalking全票通过,进入Apache孵化器”。

2019年4月,SkyWalking 毕业成为 Apache 顶级项目。

SkyWalking一个开源可观测性平台,用于收集、分析、聚合和可视化来自服务和云原生基础设施的数据。SkyWalking提供了一种简单的方法,可以让你清晰的查看分布式系统、甚至是跨云环境中。它更像是现代化APM(Application Performance Manager),专为云原生、基于容器和分布式系统而设计的。

SkyWalking的架构设计

整体架构主要由四部分组成:collector、agent、web、storage,具体如下图所示。

Skywalking分布式追踪系统-架构设计和安装(含Elasticsearch)

从上到下是应用(Traced Application Cluster)级别的接入,可以使用SDK形式的接入,也可以使用非入侵性的Agent形式的接入,agent 将数据转化成 Skywalking Trace数据协议,通过HTTP或者gRPC发送到collector(Skywalking Collector Cluster),collector对收集到的数据进行分析和聚合,最后存储到Elasticsearch或者H2中,一般情况下H2 用于测试。

在上图右边的Skywalking UI是通过 HTTP+GraphQL进行数据获取展示。

Skying Collector环境安装

环境要求

1. JDK8+

2. Elasticsearch 6.x

3. 8080,10800,11800,12800 端口不被占用

(1)首先,安装好JDK环境。

So easy,略过。

Skywalking分布式追踪系统-架构设计和安装(含Elasticsearch)

(2)然后,安装好 Elasticsearch 6.x,并修改相关的配置,并启动。

Elasticsearch 下载地址:

https://www.elastic.co/cn/downloads/

Skywalking分布式追踪系统-架构设计和安装(含Elasticsearch)

Elasticsearch 当前最新版本,已经是7.x了,但是Elasticsearch 7.x 和Skywalking 6.x还存在兼容性问题,可以下载Elasticsearch 6.3.0版本。

Elasticsearch 6.3.0 下载地址:

https://www.elastic.co/cn/downloads/past-releases/elasticsearch-6-3-0

Skywalking分布式追踪系统-架构设计和安装(含Elasticsearch)

  • bin目录 - 是启动命令;
  • config目录 - 是es的启动配置文件,里面的配置需要和Skywalking collector中的配置信息对应上。

首先,将elasticsearch.yml 中的 cluster.name 配置为 CollectorDBCluster,只要和后面的Collector 的配置一致即可。

Skywalking分布式追踪系统-架构设计和安装(含Elasticsearch)

然后,进入 bin目录,执行 elasticsearch.bat 命令(windows平台)。

Skywalking分布式追踪系统-架构设计和安装(含Elasticsearch)

执行命令:curl http://localhost:9200/ 验证 Elasticsearch 运行正常。

Skywalking分布式追踪系统-架构设计和安装(含Elasticsearch)

(3)下载Skywalking最新版本,并启动。

Skywalking 当前最新版本为 6.x了。

Skywalking分布式追踪系统-架构设计和安装(含Elasticsearch)

下载URL:

https://www.apache.org/dyn/closer.cgi/incubator/skywalking/6.0.0-GA/apache-skywalking-apm-incubating-6.0.0-GA.zip

Skywalking分布式追踪系统-架构设计和安装(含Elasticsearch)

解释一下Skywalking 目录结构:

  • agent是探针目录;
  • bin 存放的是collectorService 和 webappService 的启动脚本,startup可以同时启动前面2个脚本的合并命令;
  • config 是collector的相关配置信息;
  • webapp 是存放Skywalking展示UI的jar和配置文件;
  • oap-libs 存放后端的所有jar 文件;
  • logs(在启动Skywalking之后,会生成logs目录)存放启动collector和web后生成的日志文件,有助于分析启动过程中的一些异常情况。

Skywalking 默认使用 8080,10800,11800,12800 这些端口( 因此先排除端口占用情况)。如果修改端口,则需要在Skywalking 的config 目录下的application.yml 文件和 webapp下面的 webapp.yml 配置文件中修改。

SkyWalking 的启动包括两部分,一个是 SkyWalking Collector(oapService) ,一个是 SkyWalking UI(webappService),SkyWalking 解压后的 bin 目录:

Skywalking分布式追踪系统-架构设计和安装(含Elasticsearch)

在启动Skywalking 之前,需要修改config 目录中application.yml 文件中的clusterName,和之前Elasticsearch 中设置的cluster.name为CollectorDBCluster 保持一致。

Skywalking分布式追踪系统-架构设计和安装(含Elasticsearch)

bat 为 windows 环境使用,sh 为 linux 环境使用,我们可以分别启动 oapService 和 webappService,也可以通过 startup 一次性全部启动,从 startup 中的命令可以知道其实就是分别启动 oapService 和 webappService。

startup.bat -- 启动Skywalking。

Skywalking分布式追踪系统-架构设计和安装(含Elasticsearch)

(4)都启动成功之后,访问地址 http://localhost:8080,如下图示。

Skywalking分布式追踪系统-架构设计和安装(含Elasticsearch)

输入默认的用户名、密码:admin/admin,登录后可以看到下图所示的页面。

Skywalking分布式追踪系统-架构设计和安装(含Elasticsearch)

其中web(UI 进程)通过 127.0.0.1:10800 访问本地collector,无须额外的配置。

后续,通过使用agent 启动服务,就可以监控服务的运行情况了。

相关推荐