• SkyWalking 链路追踪 搭建


    SkyWalking 是什么?

    分布式系统的应用程序性能监视工具,专为微服务、云原生架构和基于容器(Docker、K8s、Mesos)架构而设计。

    提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案。

    SkyWalking 有哪些功能?

    • 多种监控手段。可以通过语言探针和 service mesh 获得监控是数据。
    • 多个语言自动探针。包括 Java,.NET Core 和 Node.JS。
    • 轻量高效。无需大数据平台,和大量的服务器资源。
    • 模块化。UI、存储、集群管理都有多种机制可选。
    • 支持告警。
    • 优秀的可视化解决方案。

    SkyWalking 整体架构如何?

    架构图

    整个架构,分成上、下、左、右四部分:

    • 上部分 Agent :负责从应用中,收集链路信息,发送给 SkyWalking OAP 服务器。目前支持 SkyWalking、Zikpin、Jaeger 等提供的 Tracing 数据信息。而我们目前采用的是,SkyWalking Agent 收集 SkyWalking Tracing 数据,传递给服务器。
    • 下部分 SkyWalking OAP :负责接收 Agent 发送的 Tracing 数据信息,然后进行分析(Analysis Core) ,存储到外部存储器( Storage ),最终提供查询( Query )功能。
    • 右部分 Storage :Tracing 数据存储。目前支持 ES、MySQL、Sharding Sphere、TiDB、H2 多种存储器。而我们目前采用的是 ES ,主要考虑是 SkyWalking 开发团队自己的生产环境采用 ES 为主。
    • 左部分 SkyWalking UI :负责提供控台,查看链路等等。

    搭建skywalking

    步骤:

    1.下载 SkyWalking 软件包

    2.搭建一个 SkyWalking OAP 服务

    3.搭建一个 SkyWalking UI 服务

    4.启动一个 Spring Boot 应用,并配置 SkyWalking Agent

    1.下载 SkyWalking 软件包:

    skywalking是通过jar包方式启动,需要下载jar包,地址:https://skywalking.apache.org/downloads/

     

     重要的目录结构分析如下:

    • agent:客户端需要指定的目录,其中有一个jar,就是负责和客户端整合收集日志
    • bin:服务端启动的脚本
    • config:一些配置文件的目录
    • logs:oap服务的日志目录
    • oap-libs:oap所需的依赖目录
    • webapp:UI服务的目录

    2.搭建一个 SkyWalking OAP 服务

    启动之前需要对配置文件做一些修改,修改如下:

    /config/application.yml这个是oap服务的配置文件,需要修改注册中心为zookeeper,如下图:

    不修改的话 默认是 standalone 单机环境

    启动oap服务:对应的启动脚本oapService.bat,Linux下对应的后缀是sh

    logs/skywalking-oap-server.log 日志文件,查看是否有错误日志。

    3.搭建一个 SkyWalking UI 服务

    webapp/webapp.yml这个是UI服务的配置文件,其中有一个server.port配置,是UI服务的端口,默认8080,我将其改成8888,避免端口冲突

    启动UI服务:对应的启动脚本webappService.bat,Linux下对应的后缀是sh

    还有一个startup.bat启动文件,可以直接启动上述两个服务

     访问:http://localhost:8888/,直接进入UI端

    4.启动一个 Spring Boot 应用,并配置 SkyWalking Agent

    想要传输数据必须借助skywalking提供的agent,只需要在启动参数指定即可,命令如下:

    -javaagent:D:\soft\apache-skywalking-apm-bin-es7\agent\skywalking-agent.jar
    -Dskywalking.agent.service_name=xc-springboot
    -Dskywalking.collector.backend_service=127.0.0.1:11800

    上述命令解析如下:

    • -javaagent:指定skywalking中的agent中的skywalking-agent.jar的路径
    • -Dskywalking.agent.service_name:指定在skywalking中的服务名称,一般是微服务的spring.application.name
    • -Dskywalking.collector.backend_service:指定oap服务绑定的地址,由于这里是本地,并且oap服务默认的端口是11800,因此只需要配置为127.0.0.1:11800

    上述参数可以在命令行通过java -jar xxx指定,在IDEA中操作如下图:

     调用任意应用接口后 查看skywalking的UI端

    SkyWalking UI 界面

    如下图所示:

    这里,我们会看到 SkyWalking 中非常重要的三个概念:

    • 服务(Service) :表示对请求提供相同行为的一系列或一组工作负载。在使用 Agent 或 SDK 的时候,你可以定义服务的名字。如果不定义的话,SkyWalking 将会使用你在平台(例如说 Istio)上定义的名字。这里,我们可以看到 Spring Boot 应用的服务为 "demo-application",就是我们在环境变量 SW_AGENT_NAME 中所定义的。

    • 服务实例(Service Instance) :上述的一组工作负载中的每一个工作负载称为一个实例。就像 Kubernetes 中的 pods 一样, 服务实例未必就是操作系统上的一个进程。但当你在使用 Agent 的时候, 一个服务实例实际就是操作系统上的一个真实进程。这里,我们可以看到 Spring Boot 应用的服务为 {agent_name}-pid:{pid}@{hostname},由 Agent 自动生成。关于它,我们在「5.1 hostname」小节中,有进一步的讲解,胖友可以瞅瞅。

    • 端点(Endpoint) :对于特定服务所接收的请求路径, 如 HTTP 的 URI 路径和 gRPC 服务的类名 + 方法签名。这里,我们可以看到 Spring Boot 应用的一个端点,为 API 接口 /demo/echo

    拓扑图

    点击「拓扑图」菜单,进入查看拓扑图的界面。如下图所示:SkyWalking UI 界面 —— 拓扑图

     追踪

    点击「追踪」菜单,进入查看链路数据的界面。如下图所示:SkyWalking UI 界面 —— 追踪

    SkyWalking 数据持久化

    SkyWalking 日志监控

    SkyWalking 监控告警

    官方gitee:

    https://gitee.com/OpenSkywalking/sky-walking

    查看文章:

    https://skywalking.apache.org/zh/2020-04-19-skywalking-quick-start/

    https://mp.weixin.qq.com/s/POFgkwdKQgDsq5ponvvOvQ

  • 相关阅读:
    Java8-Stream-No.10
    Java8-Stream-No.09
    Java8-Stream-No.08
    Java8-Stream-No.07
    Java8-Stream-No.06
    Java8-Stream-No.05
    Java8-Stream-No.04
    Java8-Stream-No.03
    Java8-Stream-No.02
    Java8-Stream-No.01
  • 原文地址:https://www.cnblogs.com/ooo0/p/15597705.html
Copyright © 2020-2023  润新知