链路追踪之SkyWalking

1.什么是 SkyWalking

目前主要的一些 APM 工具有: Cat、Zipkin、Pinpoint、SkyWalking;Apache SkyWalking 是观察性分析平台和应用性能管理系统。提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案。

image.png

功能特性:

  • 多种监控手段,语言探针和服务网格(Service Mesh)
  • 多语言自动探针,Java,.NET Core 和 Node.JS
  • 轻量高效,不需要大数据
  • 模块化,UI、存储、集群管理多种机制可选
  • 支持告警
  • 优秀的可视化方案

2. SkyWalking服务端安装和配置

2.1. 基于 Docker 安装 ElasticSearch

SkyWalking 存储方案有多种,官方推荐的方案是 ElasticSearch。

2.1.1 docker-compose安装ElasticSearch

创建docker-compose.yml,内容如下:

version: '3.3'
services:
  elasticsearch:
    image: wutang/elasticsearch-shanghai-zone:6.3.2
    container_name: elasticsearch
    restart: always
    ports:
      - 9200:9200
      - 9300:9300
    environment:
      cluster.name: elasticsearch

其中,9200 端口号为 SkyWalking 配置 ElasticSearch 所需端口号,cluster.name 为 SkyWalking 配置 ElasticSearch 集群的名称

2.1.2 检查是否安装成功

浏览器访问 http://ip:9200/ ,浏览器返回如下信息即表示成功启动

image.png

2.2. 下载并启动 SkyWalking

官方已经为准备好了编译过的服务端版本,下载地址为 http://skywalking.apache.org/downloads/,这里下载的是6.x releases 版本

2.2.1 配置 SkyWalking

下载完成后解压缩,进入 apache-skywalking-apm-incubating/config 目录并修改 application.yml 配置文件

image
  • 注释 H2 存储方案
  • 启用 ElasticSearch 存储方案
  • 修改 ElasticSearch 服务器地址

2.2.2 启动 SkyWalking

修改完配置后,进入 apache-skywalking-apm-incubating\bin 目录,运行 startup.bat 启动服务端,通过浏览器访问 http://ip:8080 出现如下界面即表示启动成功

image

默认的用户名密码为:admin/admin,登录成功后,效果如下图

image

3. SkyWalking 客户端配置

3.1. Java Agent 服务器探针

探针文件在 apache-skywalking-apm-incubating/agent 目录下

image.png

3.2. IDEA部署探针

1、将 agent 整个目录拷贝到项目中
2、修改项目的 VM 运行参数,点击菜单栏中的 Run -> EditConfigurations...,修改参数如下:

-javaagent:D:\Workspace\Others\hello-spring-cloud-alibaba\agent\skywalking-agent.jar
-Dskywalking.agent.service_name=nacos-provider
-Dskywalking.collector.backend_service=localhost:11800
image.png
  • -javaagent:用于指定探针路径
  • -Dskywalking.agent.service_name:用于重写 agent/config/agent.config 配置文件中的服务名
  • -Dskywalking.collector.backend_service:用于重写 agent/config/agent.config 配置文件中的服务地址

3.3. Java方式部署探针

java -javaagent:/path/to/skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=nacos-provider -Dskywalking.collector.backend_service=localhost:11800 -jar yourApp.jar

3.4. 测试监控

任意访问写好的接口,再次访问地址http://ip:8080 ,出现如下界面即表示 SkyWalking 链路追踪配置成功。

image.png

4. 扩展知识

Maven Assembly 插件,Assembly 插件目的是提供一个把工程依赖元素、模块、网站文档等其他文件存放到单个归档文件里。
此处以将 SkyWalking 探针打包为 tar.gz 为例,为后期持续集成时构建 Docker 镜像做好准备

pom.xml 中增加插件配置


    
        
            org.apache.maven.plugins
            maven-assembly-plugin
            
                
                
                    make-assembly
                    
                    package
                    
                        
                        single
                    
                    
                        skywalking
                        
                            
                            src/main/resources/assembly.xml
                        
                    
                
            
        
    

创建 src/main/resources/assembly.xml 配置文件


    6.0.0-Beta
    
        
        tar.gz
    
    
    false
    
        
            
            false
            lib
            
            runtime
        
    
    
        
            
            agent
            
            
        
    

打包

mvn clean package
mvn clean install
  • package:会在 target 目录下创建名为 skywalking-6.0.0-Beta.tar.gz 的压缩包
  • install:会在本地仓库目录下创建名为 hello-spring-cloud-external-skywalking-1.0.0-SNAPSHOT-6.0.0-Beta.tar.gz 的压缩包

你可能感兴趣的:(链路追踪之SkyWalking)