安装skywalking

midoll 470 2022-03-29

window系统安装skywalking

skywalking 是一个开源的观测平台, 用于从服务和云原生基础设施收集, 分析, 聚合以及可视化数据.。生产环境下该平台是安装在linux 系统上,或者是docker容器化运行。但如果要在本地开发的话可能免不了要在windows系统下安装。
下载地址:https://archive.apache.org/dist/skywalking/

安装须知

  1. 安装之前请确保被监控的服务器上的系统时间和OAP 服务器上的系统时间是相同的。
  2. JDK 8
  3. 本教程只适合运行Skywalking 的Backend 和UI 来进行预览或演示,可能并不适合长期部署使用。如果需要在生产环境使用,请参考下边三个官方文档,进行进一步设置:
1.Backend setup document:
https://github.com/apache/skywalking/blob/master/docs/en/setup/backend/backend-setup.md

2.UI setup document:
https://github.com/apache/skywalking/blob/master/docs/en/setup/backend/ui-setup.md

3.CLI set up document:
https://github.com/apache/skywalking-cli

安装oap

windows系统安装skywalking特别简单。解压apache-skywalking-apm-8.1.0.tar.gz,进入bin目录,在cmd窗口执行命令


快速运行
win+r

打开DOS窗口
cmd

运行 startup.bat,启动skywalking
startup.bat

访问ui

在浏览器端进行访问测试:

http://localhost:8080

spring-boot实例部署

进入agent目录下的config文件夹,修改config文件,

image-1668570716534
这里先配置一下代理的本地微服务名称,比如我本地启动了2个微服务,service-order,service-storage,在config文件中只需要修改此处即可,
image-1668570732906

运行skywalking-agent.jar包

上面修改配置配置了本地的微服务名称,表示本地微服务启动之后,skywalking的数据采集服务会去寻找这两个名称对应的服务,接下来就是在本地服务启动的时候设置skywalking的参数,
image-1668570776638
在启动参数的VM options一栏添加如下参数,顾名思义,启动时,为当前服务设置一个代理监控的服务,即skywalking-agent.jar

-javaagent:D:\dev-tools\skywalikng\pro-local\agent\skywalking-agent.jar

按照上面的配置完毕之后,我们来启动一下order这个微服务,注意在order微服务中的服务名称一定要和config中的配置名称一致

或者直接在参数中配置服务名称

-javaagent:D:\skywalking\agent\skywalking-agent.jar -
Dskywalking.agent.service_name=skywalkingdemo1 -
Dskywalking.collector.backend_service=localhost:11800

启动skywalkingdemo1项目

优化skywalking

修改启动端口

修改D:\skywalking\webapp\webapp.yml 。 主要修改port: 18080

server:
  port: 18080

collector:
  path: /graphql
  ribbon:
    ReadTimeout: 10000
    # Point to all backend's restHost:restPort, split by ,
    listOfServers: 127.0.0.1:12800

更改数据库为mysql

下载mysql-connector-java-5.1.47.jar到oap-libs下。只要是mysql-connector-java-5的版本就可以。
打开D:\skywalking\config\application.yml。 selector 开启mysql 。
到Mysql中创建一个 swtest数据库。

1.更改storage.selector: ${SW_STORAGE:mysql}为mysql数据库。
2.dataSource.user: ${SW_DATA_SOURCE_USER:root},更新为自己的mysql数据库用户名
3.dataSource.password: ${SW_DATA_SOURCE_PASSWORD:root},更新为自己的mysql数据库
用户的密码


storage:
  selector: ${SW_STORAGE:mysql}
# h2:
# driver: ${SW_STORAGE_H2_DRIVER:org.h2.jdbcx.JdbcDataSource}
# url: ${SW_STORAGE_H2_URL:jdbc:h2:mem:skywalking-oap-db}
# user: ${SW_STORAGE_H2_USER:sa}
# metadataQueryMaxSize: ${SW_STORAGE_H2_QUERY_MAX_SIZE:5000}
  mysql:
    properties:
      jdbcUrl: ${SW_JDBC_URL:"jdbc:mysql://localhost:3306/swtest"}
      dataSource.user: ${SW_DATA_SOURCE_USER:root}
      dataSource.password: ${SW_DATA_SOURCE_PASSWORD:admin}
      dataSource.cachePrepStmts: ${SW_DATA_SOURCE_CACHE_PREP_STMTS:true}
      dataSource.prepStmtCacheSize:${SW_DATA_SOURCE_PREP_STMT_CACHE_SQL_SIZE:250}
      dataSource.prepStmtCacheSqlLimit:${SW_DATA_SOURCE_PREP_STMT_CACHE_SQL_LIMIT:2048}
      dataSource.useServerPrepStmts:${SW_DATA_SOURCE_USE_SERVER_PREP_STMTS:true}
      dataSource.useSSL: false
    metadataQueryMaxSize: ${SW_STORAGE_MYSQL_QUERY_MAX_SIZE:5000}

skywalking监控界面说明

1)仪表盘

监控指标的整体概览,提供一个快速访问端点的入口,比如这里展示了我们调用order服务接口,接口耗时,图形化展示接口调用过程,通过切换不同的tab,多维度的展现服务的监控参数,比如QPS,各个时间窗口的接口调用频次等
image-1668577431272

2)拓扑图

展示服务的调用链路,比如后台这个接口:http://localhost:9199/createOrder?id=15,order调用storage服务,通过仪表盘的展示图,可以很清楚的看到他们之间的调用关系,这里主要是方便快速的进行一个全局的服务调用链路的追踪
image-1668577528817

3)追踪

点击追踪,可以看到createOrder这个接口的完整调用路径,
image-1668577558815


# skywalking