SkyWalking链路追踪-搭建-spring-boot-cloud-单机环境 之《10 分钟快速搭建 SkyWalking 服务》

首先了解一下单机环境

  • 第一步,搭建一个 Elasticsearch 服务。
  • 第二步,下载 SkyWalking 软件包。
  • 第三步,搭建一个 SkyWalking OAP 服务。
  • 第四步,启动一个 Spring Boot 应用,并配置 SkyWalking Agent。
  • 第五步,搭建一个 SkyWalking UI 服务。

开始搭建

准备工作,准备一个docker网络组,网络组的名字为dev。

1、先搭建一个Elasticsearch服务

按照我之前准备好的文档来就可以了。

配置Linux服务器华为云耀云服务器之docker中安装kibana与Es (虚拟机一样适用)_docker es kibana_艺舟先生的博客-CSDN博客

也可以直接使用我提供的代码

docker run \
  --name elasticsearch \
  --network=dev \
  -p 9200:9200 \
  -p 9300:9300 \
  -e "discovery.type=single-node" \
  -e ES_JAVA_OPTS="-Xms84m -Xmx512m" \
  -d elasticsearch:7.12.1

代码解释:

  • docker run:运行一个 Docker 容器的命令。

  • --name elasticsearch:设置容器的名称为 "elasticsearch"。

  • --network=dev:将容器连接到 "dev" 网络,使其能够与该网络上的其他容器进行通信。

  • -p 9200:9200-p 9300:9300:这些选项将容器的端口映射到主机的端口。本例中,容器的端口 92009300 可以通过主机上相应的端口进行访问。

  • -e "discovery.type=single-node":这个选项设置 Elasticsearch 集群的发现类型为 "single-node"。该配置用于在开发或测试环境中运行单个 Elasticsearch 节点。

  • -e ES_JAVA_OPTS="-Xms84m -Xmx512m":这个选项设置 Elasticsearch 的 Java 堆内存分配。本例中,它配置为分配最小为 84 MB (-Xms84m),最大为 512 MB (-Xmx512m) 的内存。

  • -d elasticsearch:7.12.1:这个选项指定了用于容器的 Docker 镜像。本例中使用的是 Elasticsearch 版本 7.12.1 的镜像。

总的来说,这段代码运行了一个名为 "elasticsearch" 的 Docker 容器,将其连接到 "dev" 网络。Elasticsearch 可以通过容器的 9200 和 9300 端口访问,并配置为使用单节点发现类型,并设定特定的 Java 堆内存。

我在docker上安装的过程中出现了报错,可以使用下面链接作为参考。

java.nio.file.NoSuchFileException: /usr/share/elasticsearch/config/jvm.options es启动出错(解决)_艺舟先生的博客-CSDN博客

2、第二步,下载 SkyWalking 软件包

(1)从docker上面拉取适合自己es版本的SkyWalking

我这里是es:7.17.0版本的所以拉取根据SkyWalking的文档,SkyWalking 8.0.0及更高版本支持Elasticsearch 7.x系列。由于使用的是Elasticsearch 7.17.0版本,您可以安装SkyWalking 8.0.0或更高版本。

这里提供的代码是拉取最新版本的。

docker pull apache/skywalking-oap-server:9.1.0

(2)编写启动sh文件

docker run \
--name oap \
--network=dev \
-e TZ=Asia/Shanghai \
-p 12800:12800 \
-p 11800:11800 \
--link elasticsearch:elasticsearch \
-e SW_STORAGE=elasticsearch \
-e SW_STORAGE_ES_CLUSTER_NODES=elasticsearch:9200 \
apache/skywalking-oap-server:9.1.0
  • --name oap:设置容器的名称为 "oap"。

  • --network=dev:将容器连接到 "dev" 网络,使其能够与该网络上的其他容器进行通信。

  • -e TZ=Asia/Shanghai:通过设置环境变量 "TZ",将容器的时区设置为 Asia/Shanghai。

  • -p 12800:12800-p 11800:11800:这些选项将容器的端口映射到主机的端口。本例中,容器的端口 1280011800 可以通过主机上相应的端口进行访问。

  • --link elasticsearch:elasticsearch:通过 --link 选项,将容器与名为 "elasticsearch" 的另一个容器进行链接。这将允许容器 oap 可以与 elasticsearch 容器进行通信。

  • -e SW_STORAGE=elasticsearch:通过设置环境变量 "SW_STORAGE",将 SkyWalking OAP Server 的存储设置为 Elasticsearch。

  • -e SW_STORAGE_ES_CLUSTER_NODES=elasticsearch:9200:通过设置环境变量 "SW_STORAGE_ES_CLUSTER_NODES",指定了 Elasticsearch 存储的集群节点。这里设置为 "elasticsearch:9200",表示连接到运行在 elasticsearch 容器上的 Elasticsearch 的 9200 端口。

  • apache/skywalking-oap-server:9.1.0:这部分指定了用于容器的 Docker 镜像。在此例中,使用的是 Apache SkyWalking OAP Server 版本 9.1.0 的镜像。

这段代码运行了一个名为 "oap" 的 Docker 容器,将其连接到 "dev" 网络。容器的时区设置为 Asia/Shanghai,通过端口映射,使得容器的 12800 和 11800 端口可以通过主机上的相应端口进行访问。容器与 elasticsearch 容器链接,指定 SkyWalking OAP Server 使用 Elasticsearch 作为存储,并将其连接到运行在 elasticsearch 容器上的 Elasticsearch。

(3)安装管理页面

docker run -d --name skywalking-ui \
--restart=always \
--network=dev \
-e TZ=Asia/Shanghai \
-p 8081:8080 \
--link oap:oap \
-e SW_OAP_ADDRESS=http://oap:12800 \
apache/skywalking-ui:9.1.0
  • -d:该选项表示在后台运行容器。

  • --name skywalking-ui:设置容器的名称为 "skywalking-ui"。

  • --restart=always:设置容器在启动时自动重新启动。

  • --network=dev:将容器连接到 "dev" 网络,使其能够与该网络上的其他容器进行通信。

  • -e TZ=Asia/Shanghai:通过设置环境变量 "TZ",将容器的时区设置为 Asia/Shanghai。

  • -p 8081:8080:这个选项将容器的端口映射到主机的端口。本例中,容器的端口 8080 可以通过主机上的 8081 端口进行访问。

  • --link oap:oap:通过 --link 选项,将容器与名为 "oap" 的另一个容器进行链接。这将允许容器 skywalking-ui 可以与 oap 容器进行通信。

  • -e SW_OAP_ADDRESS=http://oap:12800:通过设置环境变量 "SW_OAP_ADDRESS",指定了 SkyWalking-UI 连接到的 SkyWalking OAP Server 的地址。这里设置为 http://oap:12800,表示连接到运行在 oap 容器上的 SkyWalking OAP Server,并使用端口 12800 进行通信。

  • apache/skywalking-ui:9.1.0:这部分指定了用于容器的 Docker 镜像。在此例中,使用的是 Apache SkyWalking-UI 版本 9.1.0 的镜像。

这段代码运行了一个名为 "skywalking-ui" 的 Docker 容器,将其连接到 "dev" 网络。容器在启动时会自动重新启动,并通过端口映射,使得容器的 8080 端口可以通过主机上的 8081 端口进行访问。容器与 oap 容器链接,指定 SkyWalking-UI 使用运行在 oap 容器上的 SkyWalking OAP Server,并通过 http://oap:12800 地址和端口进行通信。

相关推荐
bohu8311 天前
skywalking实现链路追踪-笔记
笔记·skywalking·单机模式
lvyuanj11 天前
IDEA skywalking 启动报错 ClassNotFoundException InstanceConstructorInterceptor
java·intellij-idea·skywalking
cominglately14 天前
centos部署SkyWalking以及在springcloud项目中搭配loki使用
spring cloud·centos·skywalking
白露与泡影16 天前
SkyWalking 和 ELK 链路追踪实战
elk·wpf·skywalking
不爱吃米饭_16 天前
SkyWalking 和 ELK 链路追踪实战
elk·wpf·skywalking
m0_6726565419 天前
SpringBoot教程(三十二) SpringBoot集成Skywalking链路跟踪
spring boot·后端·skywalking
inventecsh20 天前
docker-compose部署skywalking 8.1.0
docker·容器·skywalking
林中伊人20 天前
go引入skywalking
skywalking
wgslucky25 天前
skywalking 配置elasticsearch持久化
大数据·elasticsearch·skywalking
canxiusi25 天前
SkyWalking没办法自动创建ES索引问题
大数据·elasticsearch·skywalking