Skywalking分布式追踪系统-架构设计和安装(含Elasticsearch)
分布式系统的应用程序性能监视工具,专为微服务、云主机架构和基于容器(Docker、K8s、Mesos)架构而设计。
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,具体如下图所示。
从上到下是应用(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,略过。
(2)然后,安装好 Elasticsearch 6.x,并修改相关的配置,并启动。
Elasticsearch 下载地址:
https://www.elastic.co/cn/downloads/
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
- bin目录 - 是启动命令;
- config目录 - 是es的启动配置文件,里面的配置需要和Skywalking collector中的配置信息对应上。
首先,将elasticsearch.yml 中的 cluster.name 配置为 CollectorDBCluster,只要和后面的Collector 的配置一致即可。
然后,进入 bin目录,执行 elasticsearch.bat 命令(windows平台)。
执行命令:curl http://localhost:9200/ 验证 Elasticsearch 运行正常。
(3)下载Skywalking最新版本,并启动。
Skywalking 当前最新版本为 6.x了。
下载URL:
https://www.apache.org/dyn/closer.cgi/incubator/skywalking/6.0.0-GA/apache-skywalking-apm-incubating-6.0.0-GA.zip
解释一下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 之前,需要修改config 目录中application.yml 文件中的clusterName,和之前Elasticsearch 中设置的cluster.name为CollectorDBCluster 保持一致。
bat 为 windows 环境使用,sh 为 linux 环境使用,我们可以分别启动 oapService 和 webappService,也可以通过 startup 一次性全部启动,从 startup 中的命令可以知道其实就是分别启动 oapService 和 webappService。
startup.bat -- 启动Skywalking。
(4)都启动成功之后,访问地址 http://localhost:8080,如下图示。
输入默认的用户名、密码:admin/admin,登录后可以看到下图所示的页面。
其中web(UI 进程)通过 127.0.0.1:10800 访问本地collector,无须额外的配置。
后续,通过使用agent 启动服务,就可以监控服务的运行情况了。