什么是Skywalking
Skywalking是apache基金会下面的一个开源APM项目,为微服务架构和云原生架构系统设计。它通过探针自动收集所需的指标,并进行分布式追踪。通过这些调用链路以及指标,Skywalking APM会感知应用间关系和服务间关系,并进行响应的指标统计。Skywalking支持链路追踪和监控应用组件基本涵盖主流框架和容器,如国产RPC Dubbo和motan等,国际化的spring boot,spring cloud。
Skywalking提供分布式链路追踪、服务网格(Service Mesh)遥测分析、度量(Metric)聚合和可视化一体解决方案。下面是几大特点:
●多语言自动探针,Java,.NET Core和Node.JS
●多种监控手段,语言探针和service mesh。
●轻量高效。不需要额外搭建大数据平台。
●模块化架构。UI、存储、集群管理多种机制可选。
●支持告警。
●优秀的可视化效果。
Skywaiking的主要概念
使用如下案例进行Skywalking的主要概念的介绍。Skywaiking主要概念包含:
- 服务(Service)
- 端点(Endpoint)
- 实例(Instance)
如上图所示,客户端通过接口/usr/query/all访问写的SpringBoot的服务,其实SpringBoot被部署在两个服务器上。接口/usr/query/all就是端点,SpringBoot项目就是服务,部署在两个服务上,就是两个实例。
Skywalking环境搭建(单机版)
前提及版本
skywalking版本:6.5.0
安装步骤
解压
对压缩包进行解压,解压后如图所示
修改数据库
此处使用默认的内置数据库h2(不需要任何配置,内置)。
修改前端访问的端口
修改apache-skywalking-apm-bin\webapp\webapp.yml,此处修改一个随意的端口,用于前端web的访问
启动服务
apache-skywalking-apm-bin/bin下的startup.sh
此时目录下就会出现logs文件夹,里面有日志,可以查看启动的日志用于排查问题
访问前端页面
打开端口(上面配置的9010端口)
/sbin/iptables -I INPUT -p tcp --dport 9010 -j ACCEPT
访问http://ip:9010/
Skywalking监控SpringBoot
其中
springboot-demo-0.0.1-SNAPSHOT.jar是我自己的服务,
skywalking-agent.jar是解压目录中的jar
java -javaagent:/apache-skywalking-apm-bin/agent/skywalking-agent.jar -jar springboot-demo-0.0.1-SNAPSHOT.jar &
访问自己服务中的接口,然后刷新SkyWalking页面就会监控到SpringBoot服务,如下图所示