这是我参与11月更文挑战的第11天,活动详情查看:2021最后一次更文挑战
官网
是什么
分布式系统的应用程序性能监视工具,专为微服务、云原生架构和基于容器(Docker、K8s、Mesos)架构而设计。
提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案。
能干啥
- 多种监控手段。可以通过语言探针和 service mesh 获得监控是数据。
- 多个语言自动探针。包括 Java,.NET Core 和 Node.JS。
- 轻量高效。无需大数据平台,和大量的服务器资源。
- 模块化。UI、存储、集群管理都有多种机制可选。
- 支持告警。
- 优秀的可视化解决方案。
架构预览
- 上部分 Agent :负责从应用中,收集链路信息,发送给 SkyWalking OAP 服务器。目前支持 SkyWalking、Zikpin、Jaeger 等提供的 Tracing 数据信息。而我们目前采用的是,SkyWalking Agent 收集 SkyWalking Tracing 数据,传递给服务器。目前采用grpc或者http传输
- 下部分 SkyWalking OAP( Observability Analysis Platform) :负责接收 Agent 发送的 Tracing 数据信息,然后进行分析(Analysis Core) ,存储到外部存储器( Storage ),最终提供查询( Query )功能。
- 右部分 Storage :Tracing 数据存储。目前支持 ES、MySQL、Sharding Sphere、TiDB、H2 多种存储器。而我们目前采用的是 ES ,主要考虑是 SkyWalking 开发团队自己的生产环境采用 ES 为主。
- 左部分 SkyWalking UI :负责提供控台,查看链路等等。
总的来说就是 Agent 将各个应用中收集的信息 通过 http\grpc 发送到 oap,oap将执行关键数据通过Storage进行持久化,这些信息的展示、搜索都可以通过 UI 体现
安装包
agent (应用中,收集链路信息)
-
activations
-
bootstrap-plugins
-
config(配置文件)
- agent.conf(代理配置)
-
logs
- skywalking-api.log(收集日志)
-
optional-plugins
-
plugins(各种插件,适用于收集各种不同的链路信息:mysql、redis、mq.....)
-
skywalking-agent.jar(代理java应用)
bin (启动组件shell文件)
-
webappService.sh(启动 UI 界面-linux)
-
oapService.bat(启动 oap 组件-win)
-
oapService.sh(启动 oap 组件-linux)
-
oapServiceInit.bat
-
oapServiceInit.sh
-
oapServiceNoInit.bat
-
oapServiceNoInit.sh
-
startup.bat(启动 oapService 和 webappService -- win)
-
startup.sh(启动 oapService 和 webappService -- linux)
-
webappService.bat(启动 UI 界面-win)
config(oap、Storage配置文件)
-
logs(oap日志)
-
oap-libs(oap组件文件jar)
-
tools
-
webapp(UI组件)
-
skywalking-webapp.jar
-
webapp.yml
-