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:这些选项将容器的端口映射到主机的端口。本例中,容器的端口9200和9300可以通过主机上相应的端口进行访问。 -
-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:这些选项将容器的端口映射到主机的端口。本例中,容器的端口12800和11800可以通过主机上相应的端口进行访问。 -
--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 地址和端口进行通信。
相关文章:
SkyWalking链路追踪-搭建-spring-boot-cloud-单机环境 之《10 分钟快速搭建 SkyWalking 服务》
首先了解一下单机环境 第一步,搭建一个 Elasticsearch 服务。第二步,下载 SkyWalking 软件包。第三步,搭建一个 SkyWalking OAP 服务。第四步,启动一个 Spring Boot 应用,并配置 SkyWalking Agent。第五步,…...
Rabbit MQ整合springBoot
一、pom依赖二、消费端2.1、application.properties 配置文件2.2、消费端核心组件 三、生产端3.1、application.properties 配置文件2.2、生产者 MQ消息发送组件四、测试1、生产端控制台2、消费端控制台 一、pom依赖 <dependency><groupId>org.springframework.boo…...
Golang 中的 time 包详解(一):time.Time
在日常开发过程中,会频繁遇到对时间进行操作的场景,使用 Golang 中的 time 包可以很方便地实现对时间的相关操作。接下来的几篇文章会详细讲解 time 包,本文先讲解一下 time 包中的结构体 time.Time。 time.Time time.Time 类型用来表示一个…...
CMU 15-445 -- Database Recovery - 18
CMU 15-445 -- Database Recovery - 18 引言ARIESLog Sequence NumbersNormal ExecutionTransaction CommitTransaction AbortCompensation Log Records Non-fuzzy & fuzzy CheckpointsSlightly Better CheckpointsFuzzy Checkpoints ARIES - Recovery PhasesAnalysis Phas…...
HTTP Header定制,客户端使用Request,服务器端使用Response
在服务器端通过request.getHeaders()是无效的,只能使用response.getHeaders()。 Overridepublic Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType mediaType,Class selectedConverterType, ServerHttpRequest request, ServerHttpRespo…...
Vue 3编写的父子组件示例,包括传递数据和调用父组件方法
下面是一个使用Vue 3编写的父子组件示例,包括传递数据和调用父组件方法: ChildComponent.vue: <template><div><p>Child Component</p><p>Message: {{ message }}</p><button click"updateMes…...
[ 容器 ] Docker 的数据管理
目录 一、Docker 的数据管理1.1 数据卷2. 数据卷容器 二、 端口映射三、容器互联(使用centos镜像)四、Docker 镜像的创建1.基于现有镜像创建2.基于本地模板创建3.基于Dockerfile 创建3.1 联合文件系统(Unio…...
【环境配置】使用Docker搭建LAMP环境
这篇文章不是介绍DOCKER是什么,也不是阐述DOCKER的核心:镜像/容器和仓库之间的关系,它只是一篇让刚刚接触DOCKER的初学者,在没有完全了解DOCKER是什么之前,也能尽快的在Linux系统下面通过DOCKER来搭建一个LAMP环境,这是其一&#…...
MLIR (Multi-Level Intermediate Representation)
MLIR(Multi-Level Intermediate Representation)是一种多级中间表示的编译器基础架构,旨在提供通用的、可扩展的编译器基础设施。它最初由谷歌开发,并且现在已经成为一个开源项目,受到广泛关注和采用。 MLIR 的设计理…...
VR全景在酒店的发展状况如何?酒店该如何做营销?
现阶段,VR全景技术已经被酒店、民宿、旅游景区、房产楼盘、校园等行业所应用,每天都有不少人通过VR全景展示来了解酒店的设施环境,而酒店也可以借此机会,详细展示自身优势,更大范围吸引顾客。 VR酒店拥有真实、立体的全…...
Winform使用PictureBox控件显示图片并且自适应
一.首先我们只需要在项目文件中的/bin/Debug 下面创建一个文件夹保存你的照片。我这里文件夹名字叫Resources.。如图: 二. 然后我们把我们的照片放入Resources文件夹中即可。如图: 三.在构造器中添加picturebox控件。如图: 四.我们到初始化代…...
HTML中的焦点管理
前言 焦点作为页面交互中的重要一环,涉及到的知识点也比较多,有必要做一个统一的总结。 HTML 中的可获取焦点的元素 具有 href 属性的 HTMLAnchorElement/HTMLAreaElement非禁用态的 HTMLInputElement/HTMLSelectElement/HTMLTextAreaElement/HTMLBut…...
如何区分接口测试和功能测试
接口测试和功能测试的区别: 2023最新Jmeter接口测试从入门到精通(全套项目实战教程) 本文主要分为两个部分: 第一部分:主要从问题出发,引入接口测试的相关内容并与前端测试进行简单对比,总结两者…...
limit分页查询
controller层 ApiOperation("员工分页查询")GetMapping("/page")public Result<PageResult> page(EmployeePageQueryDTO employeePageQueryDTO){log.info("员工分页查询,参数为{}",employeePageQueryDTO);PageResult pageResul…...
mysql null 值查询不出来问题
最新遇到mysql null 值查询的问题,当查询这个字段有的为null 有的不为null 该字段查询条件查询为null值得将不显示。 举例 新建表 test_user name和phone得值默认值为null 我们添加一些数据 查询下name 不是张三得数据 select * from test_user where name !张…...
面试之CurrentHashMap的底层原理
首先回答HashMap的底层原理? HashMap是数组链表组成。数字组是HashMap的主体,链表则是主要为了解决哈希冲突而存在的。要将key 存储到(put)HashMap中,key类型实现必须计算hashcode方法,默认这个方法是对象的地址。接…...
Error in onLoad hook: “ReferenceError: plus is not defined“ found in
项目场景: 项目背景如下所示: 使用 HBuilder X 开发 项目, 调整页面时,直接运行到 浏览器查看页面设置效果,导致控制台出现下述报错信息 例如: 问题描述 遇到的问题如下所示: APP 中接收数据…...
ansible自动化运维(二)剧本、角色编写实战
😘作者简介:一名运维工作人员。 👊宣言:人生就是B(birth)和D(death)之间的C(choise),做好每一个选择。 🙏创作不易,动动小…...
【Spring框架】@Resource注入以及与@Autowired的区别
目录 使用Resource设置name的方式来重命名注入的对象区别 使用Resource设置name的方式来重命名注入的对象 package com;import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.spr…...
FTP服务器的搭建和配置上传脚本
文章目录 前言一、配置本地用户可上传权限ftp服务器1、用户登录ftp 二、配置FTP上传脚本文件1.脚本代码如下 补充知识 前言 vsftpd(Very Secure FTP Daemon)是一个在 Linux/Unix 系统上运行的一款开源免费的 FTP 服务器软件。vsftpd 支持支持 匿名用户、…...
vscode里如何用git
打开vs终端执行如下: 1 初始化 Git 仓库(如果尚未初始化) git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...
iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...
STM32F4基本定时器使用和原理详解
STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...
从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...
【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)
1.获取 authorizationCode: 2.利用 authorizationCode 获取 accessToken:文档中心 3.获取手机:文档中心 4.获取昵称头像:文档中心 首先创建 request 若要获取手机号,scope必填 phone,permissions 必填 …...
Java + Spring Boot + Mybatis 实现批量插入
在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法:使用 MyBatis 的 <foreach> 标签和批处理模式(ExecutorType.BATCH)。 方法一:使用 XML 的 <foreach> 标签ÿ…...
GruntJS-前端自动化任务运行器从入门到实战
Grunt 完全指南:从入门到实战 一、Grunt 是什么? Grunt是一个基于 Node.js 的前端自动化任务运行器,主要用于自动化执行项目开发中重复性高的任务,例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...
MySQL 知识小结(一)
一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库,分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷,但是文件存放起来数据比较冗余,用二进制能够更好管理咱们M…...
基于IDIG-GAN的小样本电机轴承故障诊断
目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) 梯度归一化(Gradient Normalization) (2) 判别器梯度间隙正则化(Discriminator Gradient Gap Regularization) (3) 自注意力机制(Self-Attention) 3. 完整损失函数 二…...
