skywalking部署及使用看这篇就够了文档

版本:JDK1.8
ES:6.6+
这里使用的是当前最新包:apache-skywalking-apm-8.1.0

一 单机部署

1.1下载安装包:

wget https://mirrors.tuna.tsinghua.edu.cn/apache/skywalking/8.1.0/apache-skywalking-apm-8.1.0.tar.gz

1.2解压并进入config目录:

tar -zxvf apache-skywalking-apm-8.1.0.tar
cd config

1.3修改application.yml配置文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GVrCmsi3-1608185731042)(http://192.168.15.111:4999/server/index.php?s=/api/attachment/visitFile/sign/b694edcaccd072bc40af3fc8241fb4b3&showdoc=.jpg)]

storage:
  selector: ${SW_STORAGE:elasticsearch}
  elasticsearch:
    nameSpace: ${SW_NAMESPACE:"namespace-"}
    clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:127.0.0.1:9002}
    protocol: ${SW_STORAGE_ES_HTTP_PROTOCOL:"http"}
    trustStorePath: ${SW_STORAGE_ES_SSL_JKS_PATH:""}
    trustStorePass: ${SW_STORAGE_ES_SSL_JKS_PASS:""}
    user: ${SW_ES_USER:"username"}
    password: ${SW_ES_PASSWORD:"password"}

1.4 启动skw

进入bin目录

oapService.sh:启动后端数据服务
webappService.sh:启动前端页面服务
startup.sh:启动两个服务
至此单机版的就可以使用了,问默认的IP:port既可以

2. 集群部署

2.1 修改application.yml 配置文件

选择是注册中心是zookeeper还是nacos在这里插入图片描述

2.2 修改前端配置

/apache-skywalking-apm-bin/webapp/webapp.yml
listOfServers:修改为当前集群的ip:port,ip:port的列表

2.3 启动各个节点

skywalking使用介绍

skywalking架构组成:

  • Skywalking Agent: 采集tracing(调用链数据)和metric(指标)信息并上报,上报通过HTTP或者gRPC方式发送数据到Skywalking Collector
  • Skywalking Collector : 链路数据收集器,对agent传过来的tracing和metric数据进行整合分析通过Analysis Core模块处理并落入相关的数据存储中,同时会通过Query Core模块进行二次统计和监控告警
  • Storage: Skywalking的存储,支持以ElasticSearch、Mysql、TiDB、H2等作为存储介质进行数据存储
  • UI: Web可视化平台,用来展示落地的数据,目前官方采纳了RocketBot作为SkyWalking的主UI

3. skywalking主要作用:

  1. 链路监控
  2. metrics:运行时数据;健康数据;自查

3.1字节码增强

Java通过加载二进制字节码到JVM内存中完成类的加载过程。如果我们想要在JVM运行过程中,动态创建一个类就必须遵循Java编译系统组织.class文件的格式和结构,生成相应的二进制数据,然后再把这个二进制数据加载转换成对应的类,这样就可以完成类的动态创建。当前有很多方法可以完成这些功能:

  1. 使用Java代理来实现Java字节码注入
  2. 使用Javaassist对字节码进行修改
  3. 使用ASM也修改字节码

3.2skywalkingUI介绍

SkyWalking官方UI为分布式的SkyWalking观测提供了默认的、强大的可视化功能集群
SkyWalking仪表板包括以下部分:

  1. 功能选项卡选择区. 这里列出了主要特性。更多细节将在下面介绍.
  2. 重载区. 控制重新加载机制,包括定期重新加载或手动重新加载.
  3. 时间选择器. 控制时区和时间范围。这里有一个中文/英文切换按钮,默认,UI使用浏览器语言设置
    在这里插入图片描述
    Database Dashboard内可以展示数据库的响应时间、响应时间分布、吞吐量、SLA、慢SQL等详细信息,便于直观展示数据库状态
    Database Avg Response Time: 数据库平均响应时间
    Database Access Successful Rate: 数据库访问成功率
    Database Traffic: 数据库每分钟访问量
    Database Access Latency Percentile: 数据库访问延迟百分比
    Slow Statements: 慢sql
    All Database Loads:
    Un-Health Databases (Successful Rate):

3.3 仪表板

指示板提供服务、服务实例和端点的指标。这里需要了解一些度量术语

  • 吞吐量CPM,表示每分钟的调用
  • Apdex分数,参考Apdex in WIKI
  • 响应时间百分比,包括 p99, p95, p90, p75, p50.参考percentile in WIKI
  • SLA表示成功率。对于HTTP,表示响应为200的请求

服务、实例和仪表板选择器可以手动重新加载,而不是重新加载整个页面。注意,重载区域** 不会重载这些选择器
在这里插入图片描述

3.4 仪表板 APM

  • 第一栏:不同内容主题的监控面板,应用/数据库/容器等
  • 第二栏:操作,包括编辑/导出当前数据/倒入展示数据/不同服务端点筛选展示
  • 第三栏:不同纬度展示,服务/实例/端点在这里插入图片描述

3.4.2 Global全局维度

  • 第一栏:Global、Server、Instance、Endpoint不同展示面板,可以调整内部内容
  • Services load:服务每分钟请求数
  • Slow Services:慢响应服务,单位ms
  • Un-Health services(Apdex):Apdex性能指标,1为满分。
  • Global Response Latency:百分比响应延时,不同百分比的延时时间,单位ms
  • Global Heatmap:服务响应时间热力分布图,根据时间段内不同响应时间的数量显示颜色深度
  • 底部栏:展示数据的时间区间,点击可以调整。

3.4.3 service维度在这里插入图片描述- Service Apdex(数字):当前服务的评分

  • Service Apdex(折线图):不同时间的Apdex评分
  • Successful Rate(数字):请求成功率
  • Successful Rate(折线图):不同时间的请求成功率
  • Servce Load(数字):每分钟请求数
  • Servce Load(折线图):不同时间的每分钟请求数
  • Service Avg Response Times:平均响应延时,单位ms
  • Global Response Time Percentile:百分比响应延时
  • Servce Instances Load:每个服务实例的每分钟请求数
  • Show Service Instance:每个服务实例的最大延时
  • Service Instance Successful Rate:每个服务实例的请求成功率

3.4.4 Instance实例维度

在这里插入图片描述- Service Instance Load:当前实例的每分钟请求数

  • Service Instance Successful Rate:当前实例的请求成功率
  • Service Instance Latency:当前实例的响应延时
  • JVM CPU:jvm占用CPU的百分比
  • JVM Memory:JVM内存占用大小,单位m
  • JVM GC Time:JVM垃圾回收时间,包含YGC和OGC
  • JVM GC Count:JVM垃圾回收次数,包含YGC和OGC
  • CLR XX:类似JVM虚拟机

3.4.5 Endpoint端点(API)维度

在这里插入图片描述

  • Endpoint Load in Current Service:每个端点的每分钟请求数
  • Slow Endpoints in Current Service:每个端点的最慢请求时间,单位ms
  • Successful Rate in Current Service:每个端点的请求成功率
  • Endpoint Load:当前端点每个时间段的请求数据
  • Endpoint Avg Response Time:当前端点每个时间段的请求行响应时间
  • Endpoint Response Time Percentile:当前端点每个时间段的响应时间占比
  • Endpoint Successful Rate:当前端点每个时间段的请求成功率

3.5 拓扑结构

拓扑图用指标显示服务和实例之间的关系

  • 拓扑显示包含所有服务的默认全局拓扑.
  • 服务选择器 支持显示直接关系,包括上游和下游.
  • 自定义组 提供服务组的任意子拓扑功能.
  • 服务下钻 当您单击任何服务时打开。该图形可以对所选择的服务进行度量、- - 跟踪和告警查询.
  • 服务指标的关系 提供服务RPC交互的度量以及这两个服务的实例

3.6 跟踪查询

  1. 跟踪部分列表 不是跟踪列表。每个跟踪都有几个属于不同服务的段。 如果通过所有服务或通过跟踪id进行查询,可以在其中列出具有相同跟踪id的不同段.
  2. 跨度 是否可单击,每个跨度的细节将在左侧弹出.
  3. 跟踪视图 提供3个典型的和不同的使用视图来可视化跟踪
    在这里插入图片描述

4.告警

在这里插入图片描述

# Sample alarm rules.
# 1:过去3分钟内服务平均响应时间超过1秒
# 2:服务成功率在过去2分钟内低于80%
# 3:服务90%响应时间在过去3分钟内低于1000毫秒
# 4:服务实例在过去2分钟内的平均响应时间超过1秒
# 5:端点平均响应时间过去2分钟超过1秒
# 6:数据库的响应时间在最后10分钟的2分钟内超过1秒

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_38130094/article/details/111314266