skywalking 9.x入门(一) 安装skywalking及监控 springboot 服务

这里是weihubeats,觉得文章不错可以关注公众号小奏技术,文章首发。拒绝营销号,拒绝标题党

背景

本次我们的目的就是对skywalking整体架构有一个了解,然后学习一下基于docker如何搭建skywalking,然后就是spring boot项目如何基于agent接入skywalking

本文所用到的官方文档都会在文章中给出,授人以鱼不如授人以渔

skywalking版本

使用最新官方版本9.4.0

官方文档地址

skywalking整体架构

这里引用官方的架构图
逻辑上分四个部分

  • Probes(探针): 收集遥测数据。包括各种格式(SkyWalking,Zipkin,OpenTelemetry,Prometheus,Zabbix等)的指标,跟踪,日志和事件

遥测数据(telemetry data):用于确定应用程序是否健康并按设计执行>的信息称为遥测数据。
这里感觉这个翻译很怪,但是查询了比较多资料好像确实翻译是遥测数据

  • Platform backend(平台后端):平台后端支持数据聚合、分析和流流程,涵盖跟踪、指标、日志和事件。充当聚合器角色和/或接收者角色
  • Storage(存储):存储通过开放/可插拔接口存储SkyWalking数据。您可以选择现有的实现,例如 ElasticSearch、H2、MySQL、TiDB、BanyanDB,也可以自己实现
  • UI:一个高度可定制的基于Web的界面,允许SkyWalking最终用户可视化和管理SkyWalking数据。

skywalking设计目标

  1. 保持可观测性
  2. 拓扑、度量和跟踪
  3. 重量轻
  4. 可插拔
  5. 便携性
  6. 互操作性

这里由于是入门,所以我们大致知道有这么些东西,但不用去了解太多
后面我们会学习是如何设计的,以及一些源码分析

运行原理

这张图很清晰的说明了原理。
一个ui也就是一个前端访问页面
一个agent/probe 负责对client的数据采集上报到Backend,然后Backend将数据存储在Storage

安装 skywalking

安装Platform backend

这里我们先安装后台,基于docker安装,存储我们使用默认的h2,也就是内存数据库,无需搭建其他的存储

线上肯定不会使用h2数据库,因为重启数据就丢了,一般线上用 Elasticsearch存储会多一点

docker安装

docker run --name skywalking-oap --restart always -d -p 11800:11800 -p 12800:12800 -p 9412:9412 apache/skywalking-oap-server:9.4.0

安装Ui

docker run --name skywalking-ui --restart always -d -p 8080:8080 -e SW_OAP_ADDRESS=http://192.168.1.1:12800 -e SW_ZIPKIN_ADDRESS=http://192.168.1.1:9412 apache/skywalking-ui:9.4.0

注意这里SW_OAP_ADDRESSSW_ZIPKIN_ADDRESS地址不要写 127.0.0.1 或者localhost这样是访问不通的,因为是两个不同的docker容器,用自己本机内网ip即可

验证

安装完成后我们访问 http://127.0.0.1:9412

页面就长的像下面这个样子

java项目agnet接入

目前最新版本的agent是v8.15.0,我们下载这个最新的就好

下载解压完目录是如下的:

这里我们接入的项目以一个简单的spring boot项目为例

这里项目的源码可以在github:github.com/weihubeats/… 下载

我们在项目启动参数VM options添加如下参数

-javaagent:/Users/xiaozoujishu/Downloads/skywalking-agent/skywalking-agent.jar
-DSW_AGENT_NAME=order-service
-DSW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800

  • javaagent:就是我们刚才下载agent的路径
  • DSW_AGENT_NAME: 服务名
  • DSW_AGENT_COLLECTOR_BACKEND_SERVICES:数据上报地址

然后启动服务,启动完服务,我们调用下测试接口

多点几次,然后我们去我们的ui页面查看效果

就可以看到我们服务的一些监控信息了。

总结

本次我们的skywalking入门就结束了,我们介绍了skywalking是什么?
基于docker如何安装,以及spring boot项目如何基于agent监控。

我们会我们继续学习微服务下的全链路log id传递以及全链路id传递

© 版权声明
THE END
喜欢就支持一下吧
点赞0

Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYYcwjf1' (Errcode: 28 - No space left on device) in /www/wwwroot/583.cn/wp-includes/class-wpdb.php on line 2345
admin的头像-五八三
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

图形验证码
取消
昵称代码图片