文章目录
- 前言
- 一、elasticsearch是什么?
- 1.拉取ElasticSearch镜像
- 2.启动ElasticSearch镜像
- 3.查看ElasticSearch状态
- 二、部署SkyWalking-oap服务+SkyWalking-ui
- 1.拉取SkyWalking-server镜像
- 2.启动SkyWalking-oap镜像
- 3.拉取SkyWalking-ui镜像
- 4.启动SkyWalking-ui镜像
- 5.查看SkyWalking-ui状态
- 三、Agent集成Java项目
- 1.下载agent
- 2.应用程序接入agent
- 3.SkyWalking-ui拓扑图显示
- 总结
前言
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存储的步骤。