快速学习-skywalking入门

本文是Skywalking的入门教程,介绍了Skywalking作为可观测性分析平台的主要功能,包括分布式链路追踪、服务网格遥测分析和度量聚合。文章详细讲解了Skywalking的优势,如多语言支持、无侵入性探针和高效的性能。此外,还涵盖了环境搭建步骤,包括Linux和Windows下Tomcat的集成,以及Spring Boot应用的使用。最后,讨论了RocketBot的使用,如仪表盘、拓扑图、追踪和告警功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于APM不了解的同学请先查看上一篇skywalking概述

1.2 什么是Skywalking

1.2.1 Skywalking概述

根据官方的解释,Skywalking是一个可观测性分析平台(Observability Analysis Platform简称OAP)
和应用性能管理系统(Application Performance Management简称APM)。

提供分布式链路追踪、服务网格(Service Mesh)遥测分析、度量(Metric)聚合和可视化一体化解决方案。
下面是Skywalking的几大特点:

  • 多语言自动探针,Java,.NET Core和Node.JS。
  • 多种监控手段,语言探针和service mesh。
  • 轻量高效。不需要额外搭建大数据平台。
  • 模块化架构。UI、存储、集群管理多种机制可选。
  • 支持告警。
  • 优秀的可视化效果。

Skywalking整体架构如下:
在这里插入图片描述

Skywalking提供Tracing和Metrics数据的获取和聚合。

Metric的特点是,它是可累加的:他们具有原子性,每个都是一个逻辑计量单元,或者一个时间
段内的柱状图。 例如:队列的当前深度可以被定义为一个计量单元,在写入或读取时被更新统
计; 输入HTTP请求的数量可以被定义为一个计数器,用于简单累加; 请求的执行时间可以被定
义为一个柱状图,在指定时间片上更新和统计汇总。

Tracing的最大特点就是,它在单次请求的范围内,处理信息。 任何的数据、元数据信息都被绑定
到系统中的单个事务上。 例如:一次调用远程服务的RPC执行过程;一次实际的SQL查询语句;
一次HTTP请求的业务性ID。

总结,Metric主要用来进行数据的统计,比如HTTP请求数的计算。Tracing主要包含了某一次请
求的链路数据。

详细的内容可以查看Skywalking开发者吴晟翻译的文章,Metrics, tracing 和 logging 的关系 :
http://blog.oneapm.com/apm-tech/811.html

整体架构包含如下三个组成部分:

  1. 探针(agent)负责进行数据的收集,包含了Tracing和Metrics的数据,agent会被安装到服务所在的
    服务器上,以方便数据的获取。
  2. 可观测性分析平台OAP(Observability Analysis Platform),接收探针发送的数据,并在内存中使
    用分析引擎(Analysis Core)进行数据的整合运算,然后将数据存储到对应的存储介质上,比如
    Elasticsearch、MySQL数据库、H2数据库等。同时OAP还使用查询引擎(Query Core)提供HTTP查
    询接口。
  3. Skywalking提供单独的UI进行数据的查看,此时UI会调用OAP提供的接口,获取对应的数据然后
    进行展示。

1.2.2 Skywalking优势

Skywalking相比较其他的分布式链路监控工具,具有以下特点:

  • 社区相当活跃。Skywalking已经进入apache孵化,目前的start数已经超过11K,最新版本6.5.0已
    经发布。开发者是国人,可以直接和项目发起人交流进行问题的解决。
  • Skywalking支持Java,.NET Core和Node.JS语言。相对于其他平台:比如Pinpoint支持Java和
    PHP,具有较大的优势。
  • 探针无倾入性。对比CAT具有倾入性的探针,优势较大。不修改原有项目一行代码就可以进行集
    成。
  • 探针性能优秀。有网友对Pinpoint和Skywalking进行过测试,由于Pinpoint收集的数据过多,所以
    对性能损耗较大,而Skywalking探针性能十分出色。
  • 支持组件较多。特别是对Rpc框架的支持,这是其他框架所不具备的。Skywalking对Dubbo、
    gRpc等有原生的支持,甚至连小众的motan和sofarpc都支持。

1.2.3 Skywalking主要概念介绍

使用如下案例来进行Skywalking主要概念的介绍,Skywalking主要概念包含:

  • 服务(Service)
  • 端点(Endpoint)
  • 实例(Instance)

在这里插入图片描述

上图中,我们编写了用户服务,这是一个web项目,在生产中部署了两个节点:192.168.1.100和
192.168.1.101。

  • 用户服务就是Skywalking的服务(Service),用户服务其实就是一个独立的应用(Application),在
    6.0之后的Skywalking将应用更名为服务(Service)。
  • 用户服务对外提供的HTTP接口/usr/queryAll就是一个端点,端点就是对外提供的接口。
  • 192.168.1.100和192.168.1.101这两个相同服务部署的节点就是实例,实例指同一服务可以部署
    多个。

1.3 环境搭建

接下来我们在虚拟机CentOS中搭建Skywalking的可观测性分析平台OAP环境。Skywalking默认使用H2
内存中进行数据的存储,我们可以替换存储源为ElasticSearch保证其查询的高效及可用性。

具体的安装步骤可以在Skywalking的官方github上找到:
https://github.com/apache/skywalking/blob/master/docs/en/setup/README.md

  1. 创建目录
mkdir /usr/local/skywalking

建议将虚拟机内存设置为3G并且将CPU设置成2核,防止资源不足。
当前dev环境配置为2C4G,且apollo和skywalking公用集群,所以,
测试时请轻一点

  1. 资源版本

当前dev环境es版本为6.4.0, skywalking使用的是6.5.0.
搭建时请自行到官网下载

  1. 首先安装elasticsearch,将压缩包解压。
tar -zxvf ./elasticsearch-6.4.0.tar.gz

修改Linux系统的限制配置,将文件创建数修改为65536个。

  1. 修改系统中允许应用最多创建多少文件等的限制权限。Linux默认来说,一般限制应用最多
    创建的文件是65535个。但是ES至少需要65536的文件创建数的权限。
  2. 修改系统中允许用户启动的进程开启多少个线程。默认的Linux限制root用户开启的进程可
    以开启任意数量的线程,其他用户开启的进程可以开启1024个线程。必须修改限制数为
    4096+。因为ES至少需要4096的线程池预备。
vi /etc/security/limits.conf

#新增如下内容在limits.conf文件中
es soft nofile 65536
es hard nofile 65536
es soft nproc 4096
es hard nproc 4096

修改系统控制权限,ElasticSearch需要开辟一个65536字节以上空间的虚拟内存。Linux默认不允许任
何用户和应用程序直接开辟这么大的虚拟内存。

vi /etc/sysctl.conf
#新增如下内容在sysctl.conf文件中,当前用户拥有的内存权限大小
vm.max_map_count=262144

#让系统控制权限配置生效
sysctl -p

建一个用户, 用于ElasticSearch启动。

ES在5.x版本之后,强制要求在linux中不能使用root用户启动ES进程。所以必须使用其他用户启
动ES进程才可以。

#创建用户
useradd es
#修改上述用户的密码
passwd es
#创建密码记得不能太过简单
#修改elasicsearch目录的拥有者
chown -R es elasticsearch-6.4.0

当前dev环境可以直接使用以下非root账户
账号: appdeploy
密码: BrysjHhrhl!@12

使用es用户启动elasticsearch

#切换用户
su es
#到ElasticSearch的bin目录下
cd bin/
#后台启动
./elasticsearch -d

默认ElasticSearch是不支持跨域访问的,所以在不修改配置文件的情况下我们只能从虚拟机内部进行访
问测试ElasticSearch是否安装成功,使用curl命令访问9200端口:

curl http://localhost:9200

如果显示出如下信息,就证明ElasticSearch安装成功:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值