springcloud整合skywalking


前言

springcloud项目整合skywalking,使用ElasticSearch进行存储。
elasticsearch和skywalking-oap和skywalking-ui都使用docker启动。


一、elasticsearch是什么?

Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。作为 Elastic Stack 的核心,Elasticsearch 会集中存储数据,飞快完成搜索,微调相关性,进行强大的分析,并轻松缩放规模。

1.拉取ElasticSearch镜像

进入服务器运行命令拉取docker镜像: docker pull elasticsearch:7.7.1 (我这里服务器jdk版本是11,elasticsearch8.x及以上版本支持jdk版本最低为jdk17)

2.启动ElasticSearch镜像

启动命令:

docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m 
-Des.logs.node_index_directory=logs 
-Des.logging.file.max_history=7"
-e "discovery.type=single-node" elasticsearch:7.7.1

其中"discovery.type=single-node" 单例模式启动,这里-Des.logs.node_index_directory=logs指定了日志文件的目录(在Elasticsearch Docker镜像中通常是/usr/share/elasticsearch/logs)注意将日志文件映射到外部,外部文件夹需要授权。
,-Des.logging.file.max_history=7设置了日志文件保留的最大天数。
目的为了防止请求量过多导致es存储量增大,磁盘空间不够。

3.查看ElasticSearch状态

访问 服务器ip+端口,上面的步骤端口映射到9200,所以这里访问 ip:9200 出现如下图所示即为成功。
在这里插入图片描述

二、部署SkyWalking-oap服务+SkyWalking-ui

OAP:observability analysis platform可观测性分析平台,负责接收客户端上报的数据,对数据进行分析,聚合,计算后将数据进行存储,并且还会提供一些查询API进行数据的查询,这个模块其实就是链路追踪系统的Collector收集器
SkyWalking UI: Web可视化平台,用来展示落地的数据。

1.拉取SkyWalking-server镜像

拉取SkyWalking-server镜像:

 docker pull apache/skywalking-oap-server:8.6.0-es7

2.启动SkyWalking-oap镜像

执行启动命令,在启动参数中直接设定了存储器和ES服务器,这样就不需要在容器中再次进行配置:

docker run --name skywalking-oap --restart always -d  -e TZ=Asia/Shanghai -p 12800:12800 -p 11800:11800 -e SW_STORAGE=elasticsearch7 -e SW_STORAGE_ES_CLUSTER_NODES=填写你的ip:9200 apache/skywalking-oap-server:8.6.0-es7

重要参数说明:-e SW_STORAGE=elasticsearch 指定存储器 -e SW_STORAGE_ES_CLUSTER_NODES=ES服务器的IP:9200 这里要指定ES服务器的IP和端口(上面安装es配置的端口)

3.拉取SkyWalking-ui镜像

拉取SkyWalking-ui镜像,尽量与SKyWalking-server的版本保持一致

docker pull apache/skywalking-ui:8.6.0 

4.启动SkyWalking-ui镜像

docker run -d --name skywalking-ui --restart=always -e TZ=Asia/Shanghai -p 8080:8080 --link skywalking-oap:oap -e SW_OAP_ADDRESS=oap:12800 apache/skywalking-ui:8.6.0

说明: -e SW_OAP_ADDRESS=oap:12800 其中oap需要替换成部署skywalking-oap-server服务器的IP地址,这里链接到skywalking-oap,修改时只需要修改oap的ip不需要修改ui。

5.查看SkyWalking-ui状态

访问http://你的ip:8080 出现如下界面表示成功。
在这里插入图片描述
注意: 需要先成功启动elasticsearch再启动oap服务,最后再启动ui。

三、Agent集成Java项目

Skywalking Agent:链路数据采集tracing(调用链数据)和metric(指标)信息并上报,上报通过HTTP或者gRPC方式发送数据到Skywalking Collector。

1.下载agent

Downloads | Apache SkyWalking 下载
在这里插入图片描述

我这里放在服务器的目录是/var/java/skywalking/skywalking-agent/skywalking-agent.jar

2.应用程序接入agent

例如网关服务启动命令如下:

nohup java 
-javaagent:/var/java/skywalking/skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=gateway -Dskywalking.trace.ignore_path=GET:/actuator,GET:/actuator/**,/actuator/**,/actuator,Lettuce/**,SpringCloudGateway/** 
-Dskywalking.collector.backend_service=你的ip:11800 
-jar 你的微服务jar包 --spring.cloud.nacos.discovery.group=nacos组>/dev/null 2>&1 

其中 -javaagent 参数为agent的jar包存放全路径名,-Dskywalking.agent.service_name参数为该应用服务的服务名,-Dskywalking.collector.backend_service 参数为该应用服务的IP+端口。
Dskywalking.trace.ignore_path=需要过滤的路径(这里可以省略,因为我的项目中部署了监控,有很多请求这里不需要查看链路所以过滤掉方便在ui上查看)
-jar后接自己项目jar包启动命令

注意:Spring Cloud Gateway 是基于 WebFlux 实现,必须搭配上apm-spring-cloud-gateway-2.1.x-plugin 和 apm-spring-webflux-x.x-plugin 两个插件
将agent/optional-plugins下的两个插件 复制到 agent/plugins目录下后按照上面的启动命令启动gateway服务。

在这里插入图片描述
在这里插入图片描述

3.SkyWalking-ui拓扑图显示

应用程序正常接入agent后,服务上有请求后会在拓扑图上显示相应的链路。
在这里插入图片描述

总结

以上是安装skywalking并用es存储的步骤。

SpringCloud是一个开源的分布式系统开发框架,可以用于快速构建基于Java的微服务架构。而SkyWalking是一个开源的分布式APM(Application Performance Management)系统,用于监控、诊断和管理分布式系统的性能。 要实现SpringCloud服务整合SkyWalking,首先我们需要在SpringCloud微服务架构中集成SkyWalking的Agent组件。通过在每个微服务应用中引入SkyWalking的Agent,就可以实现对每个微服务节点的性能监控。其次,我们还需要在SkyWalking的Server端配置和管理各个微服务应用的监控数据,以便进行统一的性能分析和故障定位。 在服务整合的过程中,还需要考虑一些细节问题,比如Agent的版本兼容性、监控数据的采集频率和存储策略、以及监控数据的可视化展示等。同时,还需要注意Agent的性能开销和系统资源消耗,避免给微服务应用带来过大的性能损耗。 通过整合SpringCloudSkyWalking,我们可以实现对整个微服务架构的性能监控和分析,及时发现系统中的性能瓶颈和故障节点,为系统的稳定性和可靠性提供保障。同时,还可以利用SkyWalking的可视化监控界面,直观地展示微服务架构的性能指标和运行情况,为开发人员和运维人员提供更加直观和有效的管理工具。 总之,SpringCloud服务整合SkyWalking是一个非常有益的举措,可以提升微服务架构的可观测性和可管理性,为系统的稳定性和高效性提供保障。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值