# skyWalking部署

# 安装elasticsearch

这里使用docker安装

docker run -d --restart=always -e ES_JAVA_OPTS="-Xms256m -Xmx256m" --name=elastic770 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.7.0

# 安装skyWalking

# 进入Skywalking官网,进入下载页面(下载页面 (opens new window)

# 因为我们是要在CentOS上运行,所以这里选择Linux二进制版,就是已经编译好的版本,无需我们自己编译,下载至我们的CentOS后,解压可以看到目录结构,如图:

  • agent:探针相关,后面会做更加详细的介绍。

  • bin:这里放的是oapService和webappService的启动脚本,当然也有执行两个脚本的合并脚本startup.sh。

  • config:这里主要存放的是collector的配置信息,我们需要修改这里的application.yml中的有关ElasticSearch的配置,如下图: 修改storage.elasticsearch.nameSpace为我们前面构建ElasticSearch7设置的cluster.name,笔者这里的值为docker-cluster,同时修改storage.elasticsearch.clusterNodes为我们当前构建的ElasticSearch的地址。

  • logs:存放collector和webapp-ui生成的日志。

  • webapp:这里存放的是Skywalking展示UI的jar和配置文件。

Skywalking中默认使用的端口有8080、11800、12800,请保证这些端口未被占用,如需修改,可以修改config目录中的application.yml和webapp目录中的webapp.yml。

接下来启动collector和webapp-ui,进入bin目录中,执行命令./startup.sh,如:

打开浏览器访问http://localhost:8080/,可以看到webapp-ui的仪表盘,如图: Skywalking部署到这里就结束了,下面我们开始介绍Spring Cloud如何与Skywalking整合使用。

# Spring Cloud整合Skywalking

这里我们需要使用到Skywalking的探针agent,我们在工程的跟目录中新建一个文件夹,命名为skywalking,讲刚才解压的Skywalking中的agent整个文件夹copy到skywalking,这里我们启动时只需要配置javaagen命令加载agent探针即可,在idea中使用需要修改启动配置,点击右上角的Edit Configurations...,在打开的窗口中选择Environment->VM Options,配置如下脚本:

-javaagent:D:\Development\SpringCloudLearning\chapter15\skywalking\agent\skywalking-agent.jar
-Dskywalking.agent.service_name=zuul-service
-Dskywalking.collector.backend_service=192.168.44.128:11800

如图: 还可以使用java -jar的方式来加载agent探针,我们将整个maven项目打包,运行mvn install的命令,使用java -jar的方式来启动,启动命令中增加启动参数,如下:

-javaagent:D:\Development\SpringCloudLearning\chapter15\skywalking\agent\skywalking-agent.jar -Dskywalking.agent.service_name=consumer-service -Dskywalking.collector.backend_service=192.168.44.128:11800 -jar zuul-0.0.1-SNAPSHOT.jar

顺次启动几个工程后,使用浏览器访问相关页面,多刷新几次后,我们再使用浏览器访问http://192.168.44.128:8080/,如:

  • all_heatmap:所有服务响应时间的热点图
  • all_p99:所有服务响应时间的 p99 值 点击上边栏的拓扑图,可以看到当前我们工程的一个依赖拓扑关系,如: 点击上边栏的追踪,可以看到左边是当前所有的访问请求,随便点击一个,可以在右边看到一个详细的链路追踪过程,如: 点击链路,可以看到一些标记信息,包含端点、跨度类型、成功还是失败,以及一些Exception信息,如图: 点击仪表盘页面的Service,可以看到一些服务相关的信息,如平均响应时间、平均吞吐量、平均时延统计,如图:
  • service_instance_sla:服务实例的成功率
  • service_instance_resp_time:服务实例的平均响应时间
  • service_instance_cpm:服务实例每分钟调用次数

点击仪表盘页面的Endpoint,可以看到一些端点相关的信息,如图:

  • endpoint_cpm:端点每分钟调用次数
  • endpoint_avg:端点平均响应时间
  • endpoint_sla:端点成功率
  • endpoint_p99:端点响应时间的 p99 值

点击仪表盘页面的Instance,可以看到一些JVM相关的信息,如图: 至此,Spring Cloud与Skywalking的介绍就结束了

Last Updated: 11/3/2020, 4:34:18 PM