skyWalking简介
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:负责展示信息和提供预警的功能.
安装部署
单机环境
- 搭建一个 Elasticsearch 服务.
- 下载 SkyWalking 软件包.
- 搭建一个 SkyWalking OAP 服务.
- 启动一个 Spring Boot 应用,并配置 SkyWalking Agent.
- 搭建一个 SkyWalking UI 服务.
具体步骤
- 下载skyWalking包
- 启动oap
1 | sh bin/oapService.sh |
- 启动web UI
1 | sh bin/webappService.sh |
默认地址http://127.0.0.1:8080
- 应用集成
1 | -javaagent:/home/ss/opt/apache-skywalking-apm-bin-es7/agent/skywalking-agent.jar |
功能和概念简介
- 服务(Service):表示对请求提供相同行为的一系列或一组工作负载.agent的使用对象,可以通过
SW_AGENT_NAME
定义 - 服务实例(Service Instance):上述的一组工作负载中的每一个工作负载称为一个实例.相同服务的多个实例
- 端点(Endpoint):对于特定服务所接收的请求路径, 如HTTP的URI路径和gRPC服务的类名+方法签名.在spring中,对应就是一个api.
集群部署
一般在生产环境中,需要使用集群部署来保证高可用,但是如果要求不高的话,单机也可以,即使skyWalking挂了也不会影响应用的正常运行
- 搭建es集群
- 搭建一个注册中心,目前 SkyWalking 支持 Zookeeper、Kubernetes、Consul、Nacos 作为注册中心
- 搭建OAP服务集群,并注册到服务中心上
- 监控的spring boot应用,需要配置skyWalking agent,并且设置
SW_AGENT_COLLECTOR_BACKEND_SERVICES
地址数组,就是OAP服务的地址数组 - 还可以搭建skyWalking UI服务的集群,使用nginx进行负责均衡
总体可以看到,任何一个环节都是集群,来满足高可用
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 李嘉图!