skyWalking简介

skyWalking 是什么

FROM http://skywalking.apache.org/
分布式系统的应用程序性能监视工具,专为微服务、云原生架构和基于容器(Docker、K8s、Mesos)架构而设计.
提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案.

项目历史

最早出现于2016年,然后2017-12-08年进入apache孵化,大约2019-01-29时候,差不多孵化结束了,然后开始产品,此时已经是6.0.0-GA版本

下面一张图可以看出,差不多,主要就一个contributors,占据了1/3之一的提交,可能50%的工作都是他完成的,从16年到现在,已经5年了

然后,skyWalking一直因为优秀的设计,不断受到关注,star历史,可以看出来是平稳上升

功能列表

skyWalking 有哪些功能?

FROM http://skywalking.apache.org/

  • 多种监控手段.可以通过语言探针和 service mesh 获得监控是数据.
  • 多个语言自动探针.包括 Java,.NET Core 和 Node.JS.
  • 轻量高效.无需大数据平台,和大量的服务器资源.
  • 支持告警.
  • 多种监控手段.可以通过语言探针和 service mesh 获得监控是数据.
  • 优秀的可视化解决方案.

架构

  • Receiver Cluster :负责从应用中,收集链路信息,发送给 Aggregator Cluster 服务器.
  • Aggregator Cluster :负责接收 Agent 发送的 Tracing 数据信息,然后进行分析(Analysis Core),存储到外部存储器( Storage ),最终提供查询( Query )功能.
  • Storage Options:Tracing 数据存储.目前支持 ES、MySQL、Sharding Sphere、TiDB、H2 多种存储器.主要推荐分布式存储并且查询性能极好,比如ES.
  • Alarm Notification,Exporter:负责展示信息和提供预警的功能.

安装部署

单机环境

  1. 搭建一个 Elasticsearch 服务.
  2. 下载 SkyWalking 软件包.
  3. 搭建一个 SkyWalking OAP 服务.
  4. 启动一个 Spring Boot 应用,并配置 SkyWalking Agent.
  5. 搭建一个 SkyWalking UI 服务.

具体步骤

  1. 下载skyWalking包
  2. 启动oap
1
sh bin/oapService.sh
  1. 启动web UI
1
sh bin/webappService.sh

默认地址http://127.0.0.1:8080

  1. 应用集成
1
-javaagent:/home/ss/opt/apache-skywalking-apm-bin-es7/agent/skywalking-agent.jar

功能和概念简介

  1. 服务(Service):表示对请求提供相同行为的一系列或一组工作负载.agent的使用对象,可以通过SW_AGENT_NAME定义
  2. 服务实例(Service Instance):上述的一组工作负载中的每一个工作负载称为一个实例.相同服务的多个实例
  3. 端点(Endpoint):对于特定服务所接收的请求路径, 如HTTP的URI路径和gRPC服务的类名+方法签名.在spring中,对应就是一个api.

集群部署

一般在生产环境中,需要使用集群部署来保证高可用,但是如果要求不高的话,单机也可以,即使skyWalking挂了也不会影响应用的正常运行

  1. 搭建es集群
  2. 搭建一个注册中心,目前 SkyWalking 支持 Zookeeper、Kubernetes、Consul、Nacos 作为注册中心
  3. 搭建OAP服务集群,并注册到服务中心上
  4. 监控的spring boot应用,需要配置skyWalking agent,并且设置SW_AGENT_COLLECTOR_BACKEND_SERVICES地址数组,就是OAP服务的地址数组
  5. 还可以搭建skyWalking UI服务的集群,使用nginx进行负责均衡

总体可以看到,任何一个环节都是集群,来满足高可用