Skywalking使用初体验
这是一个无侵入式的分布式系统的应用程序性能监视工具,专为微服务、云原生架构和基于容器(Docker、K8s、Mesos)架构而设计。
官方地址: http://skywalking.apache.org/zh/
SkyWalking 有哪些功能?
1、多种监控手段。可以通过语言探针和 service mesh 获得监控是数据。
2、多个语言自动探针。包括 Java,.NET Core 和 Node.JS。
3、轻量高效。无需大数据平台,和大量的服务器资源。
4、模块化。UI、存储、集群管理都有多种机制可选。
5、支持告警。
6、优秀的可视化解决方案。
整体架构
1、抄一张官方的图
2、部署的时候:注意三个地方,这个非常重要
- skywalking-oap: 负责接收 Agent 发送的 Tracing 数据信息,然后进行分析(Analysis Core) ,存储到外部存储器( Storage ),最终提供查询( Query )功能
- skywalking-ui : 负责提供控台,查看链路等等。
- skywalking-agent : 负责从应用中,收集链路信息,发送给 SkyWalking OAP 服务器。目前支持 SkyWalking、Zikpin、Jaeger 等提供的 Tracing 数据信息。而我们目前采用的是,SkyWalking Agent 收集 SkyWalking Tracing 数据,传递给服务器
Elasticsearch 搭建
此处使用Elasticsearch做为数据存储,安装步骤略过
此处不介绍Elasticsearch的安装与使用
下载
下载地址: http://skywalking.apache.org/zh/downloads/
本次使用案例版本为:es6
若是使用es7 , 则下面配置启动的时候选择es7配置
解压后是长这个样子的
- agent是插件包
- bin是运行文件
- config是配置文件
- logs是日志文件
- webapp是skywalking-ui的jar包以及配置文件
使用分三步走,第一步,首先启动skywalking-oap
- 先配置文件:apache-skywalking-apm-8.0.1\apache-skywalking-apm-bin\config\application.yml
修改完成后,启动命令: ./apache-skywalking-apm-bin/bin/oapService.sh
正常启动如下图所示: 确保es能正常访问
第二步,启动skywalking-ui
检查配置文件: apache-skywalking-apm-8.0.1\apache-skywalking-apm-bin\webapp\webapp.yml
server:
port: 8696 #ui启动访问地址
collector:
path: /graphql
ribbon:
ReadTimeout: 10000
# Point to all backend's restHost:restPort, split by ,
listOfServers: 127.0.0.1:12800 #上一个步骤的连接oap地址,默认配置
启动命令: ./apache-skywalking-apm-bin/bin/webappService.sh
正常启动如图所示:
至此,服务端配置完成,检验配置是否成功的时候到了
访问: http://192.168.100.110:8696/ ,能打开页面说明配置成功
第三步,skywalking-agent的使用
此处要解释一下,由于skywalking-agent是使用javaagent的方式监控
javaagent是在应用启动前就加载的,所以这里的配置是在启动命令前增加配置
#skywalking需要在启动前增加启动参数
#发现目前 SkyWalking 提供的 gateway-2.1.x-plugin 暂时只支持 Spring Cloud Gateway 的 2.1.1.RELEASE 版本
# skywalking需要在启动前增加启动参数
java -jar -javaagent:skywalking-agent.jar -jar cloud-mybatis-plugin-0.0.1-SNAPSHOT.jar
# SkyWalking Agent 配置
export SW_AGENT_NAME=demo-application # 配置 Agent 名字。一般来说,我们直接使用 Spring Boot 项目的 `spring.application.name` 。
export SW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800 # 配置 Collector 地址。就是那个12800的服务器
export SW_AGENT_SPAN_LIMIT=2000 # 配置链路的最大 Span 数量。一般情况下,不需要配置,默认为 300 。主要考虑,有些新上 SkyWalking Agent 的项目,代码可能比较糟糕。
# SkyWalking Agent jar 地址.(此jar包在apache-skywalking-apm-8.0.1\apache-skywalking-apm-bin\agent里面,不要单独拿出来使用,应整个agent文件拷贝出来,配置的时候加上文件url)
export JAVA_AGENT=-javaagent:/usr/local/agent/skywalking-agent.jar
# Jar 启动
java -jar $JAVA_AGENT -jar demo-2.2.2.RELEASE.jar
启动成功,会有类似如下命令
DEBUG 2020-01-02 19:29:29:400 main AgentPackagePath : The beacon class location is jar:file:/usr/local/agent/skywalking-agent.jar!/org/apache/skywalking/apm/agent/core/boot/AgentPackagePath.class.
INFO 2020-01-02 19:29:29:402 main SnifferConfigInitializer : Config file found in /Users/yunai/skywalking/apache-skywalking-apm-bin-es7/agent/config/agent.config.
访问web管理界面
访问前,先调用一下应用的接口,让其可以监控到链路调用,这样更好查看效果