SkyWalking基本结构
- 探针
- 基于不同的来源可能是不一样的, 但作用都是收集数据, 将数据格式化为 SkyWalking 适用的格式.
- 基于语言的原生代理
- 服务网格探针
- 第三放打点类库
- 平台后端,
- 支持数据聚合, 数据分析以及驱动数据流从探针到用户界面的流程。
- 分析包括 Skywalking 原生追踪和性能指标以及第三方来源,包括 Istio 及 Envoy telemetry , Zipkin 追踪格式化等。
- 甚至可以使用 Observability Analysis Language 对原生度量指标 和 用于扩展度量的计量系统 自定义聚合分析。
- 存储
- 通过开放的插件化的接口存放 SkyWalking 数据.
- 你可以选择一个既有的存储系统, 如 ElasticSearch, H2 或 MySQL 集群(Sharding-Sphere 管理),也可以选择自己实现一个存储系统. 当然, 我们非常欢迎你贡献新的存储系统实现。
- UI
- 一个基于接口高度定制化的Web系统,用户可以可视化查看和管理 SkyWalking 数据。
SkyWalking项目结构
- agent
- skwwalking-agent.jar 代理服务jar包
- config: 代理服务启动时使⽤的配置⽂件
- plugins: 包含多个插件,代理服务启动时会加载该⽬录下的所有插件(实际上时各种jar包) optional-plugins:可选插件,当需要⽀持某些功能时,⽐如 Spring Cloud Gateway,则需要把对 应的jar包拷⻉到plugins⽬录下;
- webapp: UI前端(web监控⻚⾯)的jar包配置⽂件
- webapp.yml : 默认配置启动UI时访问端⼝ 8080,需要更改
- listOfServers表示接收前端请求端⼝12800
- oap-libs:
- 后台应⽤的jar包,以及它的依赖jar包,⾥⾯有⼀个server-starter-*.jar就时对应的启动程序
- config:启动后台应⽤程序的配置⽂件
- application.yml:可配置存储数据库类型、⾼可⽤注册服务等 ,需要修改存储方式改为ES存储
- bin: 各种启动脚本,⼀般使⽤脚本startup.*来启动web⻚⾯和对应的后台应⽤;
- oapServer.*: 默认使⽤的后台程序的启动脚本;(使⽤的默认模式启动,还⽀持)
- oapServerInit.*: 使⽤init模式启动,在此模式下,OAP服务器启动以执⾏初始化⼯作,然后退出
- oapServerNoInit.*:使⽤no init模式启动,在此模式下,OAP服务器不进⾏初始化
- webappService.*: UI前端的启动脚本
- startup.*:组合脚本,同时启动oapServer.* ,webappService.*脚本
SkyWalking搭建
搭建版本8.6.0-es
- 下载链接:https://archive.apache.org/dist/skywalking/8.6.0/
- 首先需要修改启动端口
vi apache-skywalking-apm-bin-es7/webapp/webapp.yml,修改server.port(原8080)
- 修改存储类型
vi apache-skywalking-apm-bin-es7/config/application.yml
- sh apache-skywalking-apm-bin-es7/bin/startup.sh 启动
- 服务日志存储到apache-skywalking-apm-bin-es7/logs中
- 启动成功后会启动两个服务,⼀个是skywalking-oap-server,⼀个是skywalking-web-ui
- skywalking-oap-server服务启动后会暴露11800 和 12800 两个端⼝,分别为收集监控数据的端⼝11800和接受前端请求的端⼝12800
Java服务接入SkyWalking
- 使用Java agent方式监控服务
export SW_AGENT_NAME=sky_hora export SW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800 #skywalking Collector地址 export SW_AGENT_SPAN_LIMIT=2000 #配置链路最大Span数量,默认为300 export JAVA_AGENT=-javaagent:../apache-skywalking-apm-bin-es7/agent/skywalking-agent.jar #agent包地址 nohup java $JAVA_AGENT -jar *.jar & |
- 将上述命令写入到一个sheel脚本里,直接sh启动即可
- 控制台打印tracid,配置logback-spring.xml文件
<?xml version="1.0" encoding="UTF-8" ?> |
指标仪表盘
拓扑图
日志监控