SkyWalking 分布式追踪系统

 

SkyWalking 分布式追踪系统

随着微服务架构的流行,一些微服务架构下的问题也会越来越突出,比如一个请求会涉及多个服务,而服务本身可能也会依赖其他服务,整个请求路径就构成了一个网状的调用链,而在整个调用链中一旦某个节点发生异常,整个调用链的稳定性就会受到影响,所以会深深的感受到银弹这个词是不存在的,每种架构都有其优缺点 。

 

面对以上情况, 我们就需要一些可以帮助理解系统行为、用于分析性能问题的工具,以便发生故障的时候,能够快速定位和解决问题,这时候 APM(应用性能管理)工具就该闪亮登场了。

目前主要的一些 APM 工具有: CatZipkinPinpointSkyWalking,这里主要介绍 SkyWalking ,它是一款优秀的国产 APM 工具,包括了分布式追踪、性能指标分析、应用和服务依赖分析等。

下面是 SkyWalking 6.x 的架构图:

 

 

 

说明: SkyWalking 的核心是数据分析和度量结果的存储平台,通过 HTTP gRPC 方式向 SkyWalking Collecter 提交分析和度量数据,SkyWalking Collecter 对数据进行分析和聚合,存储到 ElasticsearchH2MySQLTiDB 等其一即可,最后我们可以通过 SkyWalking UI 的可视化界面对最终的结果进行查看。Skywalking 支持从多个来源和多种格式收集数据:多种语言的 Skywalking Agent Zipkin v1/v2 Istio 勘测、Envoy 度量等数据格式。

整体架构看似模块有点多,但在实际上还是比较清晰的,主要就是通过收集各种格式的数据进行存储,然后展示。所以搭建 Skywalking 服务我们需要关注的是 SkyWalking CollecterSkyWalking UI 和 存储设备,SkyWalking CollecterSkyWalking UI 官方下载安装包内已包含,最终我们只需考虑存储设备即可。

 

环境要求

 JDK8+

 Elasticsearch 7.x 集群

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

Elasticsearch下载安装 参考官方教程, 下载解压后对config/elasticsearch.yml 做如下修改:

 

vim config/elasticsearch.yml

cluster.name: es-cluster

#node.name: node-1 其他两节点

#node.name: node-2

node.name: node-1

path.data: /home/es/data

path.logs: /home/es/logs

network.host: 192.168.177.202    //本机IP

http.port: 9200

transport.tcp.port: 9300

http.cors.enabled: true

http.cors.allow-origin: "*"

discovery.zen.ping.unicast.hosts: ["192.168.177.200", "192.168.177.201", "192.168.177.202"]

cluster.initial_master_nodes: ["192.168.177.200:9300", "192.168.177.201:9300", "192.168.177.202:9300"]

 

bin/elasticsearch 前台启动,后台启动 -d

 

复制解压修改后的整个目录结构到其他节点,然后启动即可

 

查看集群状态:

http://192.168.177.201:9200/_cluster/health/

 

下载 SkyWalking

需要Java环境

SkyWalking 个人建议直接下载官方编译好(tar.az)的,下载地址

 

config/application.yml 的默认数据存储开启是的 h2(可以先默认H2),稍后需要修改数据存储为 Elasticsearch -7在启动 SkyWalking 之前,确保 Elasticsearch 已启动

主要是这两点,其他打开注释部分即可。

nameSpace: ${SW_NAMESPACE:"elastic"}

clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:172.16.45.6:9200,172.16.45.7:9200,172.16.45.8:9200}

 

 启动SkyWalking

bin/startup.sh

默认端口为8080

 

这是来自官网的图示

 

 

 

 

Java 项目接入

参考 部署 skywalking javaagentskywalking-agent.jar 位于下载包的 agent 目录下

修改config/agent.config 对应的skywalking-server IP

# Backend service addresses.

collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:172.16.45.10:11800}

 

java -jar xxx.jar 命令添加 相关启动参数即可,启动后可查看logs 相关信息

查看skywalking-server 的图示

 

这是公司的实际项目链路

 

 

posted @ 2020-05-28 16:07  carl007  阅读(234)  评论(0编辑  收藏  举报