当前位置: 首页 > news >正文

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

首先了解一下单机环境

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 地址和端口进行通信。

相关文章:

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

在日常开发过程中&#xff0c;会频繁遇到对时间进行操作的场景&#xff0c;使用 Golang 中的 time 包可以很方便地实现对时间的相关操作。接下来的几篇文章会详细讲解 time 包&#xff0c;本文先讲解一下 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()是无效的&#xff0c;只能使用response.getHeaders()。 Overridepublic Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType mediaType,Class selectedConverterType, ServerHttpRequest request, ServerHttpRespo…...

Vue 3编写的父子组件示例,包括传递数据和调用父组件方法

下面是一个使用Vue 3编写的父子组件示例&#xff0c;包括传递数据和调用父组件方法&#xff1a; ChildComponent.vue&#xff1a; <template><div><p>Child Component</p><p>Message: {{ message }}</p><button click"updateMes…...

[ 容器 ] Docker 的数据管理

目录 一、Docker 的数据管理1.1 数据卷2. 数据卷容器 二、 端口映射三、容器互联&#xff08;使用centos镜像&#xff09;四、Docker 镜像的创建1&#xff0e;基于现有镜像创建2&#xff0e;基于本地模板创建3&#xff0e;基于Dockerfile 创建3.1 联合文件系统&#xff08;Unio…...

【环境配置】使用Docker搭建LAMP环境

这篇文章不是介绍DOCKER是什么&#xff0c;也不是阐述DOCKER的核心&#xff1a;镜像/容器和仓库之间的关系,它只是一篇让刚刚接触DOCKER的初学者&#xff0c;在没有完全了解DOCKER是什么之前,也能尽快的在Linux系统下面通过DOCKER来搭建一个LAMP环境&#xff0c;这是其一&#…...

MLIR (Multi-Level Intermediate Representation)

MLIR&#xff08;Multi-Level Intermediate Representation&#xff09;是一种多级中间表示的编译器基础架构&#xff0c;旨在提供通用的、可扩展的编译器基础设施。它最初由谷歌开发&#xff0c;并且现在已经成为一个开源项目&#xff0c;受到广泛关注和采用。 MLIR 的设计理…...

VR全景在酒店的发展状况如何?酒店该如何做营销?

现阶段&#xff0c;VR全景技术已经被酒店、民宿、旅游景区、房产楼盘、校园等行业所应用&#xff0c;每天都有不少人通过VR全景展示来了解酒店的设施环境&#xff0c;而酒店也可以借此机会&#xff0c;详细展示自身优势&#xff0c;更大范围吸引顾客。 VR酒店拥有真实、立体的全…...

Winform使用PictureBox控件显示图片并且自适应

一.首先我们只需要在项目文件中的/bin/Debug 下面创建一个文件夹保存你的照片。我这里文件夹名字叫Resources.。如图&#xff1a; 二. 然后我们把我们的照片放入Resources文件夹中即可。如图&#xff1a; 三.在构造器中添加picturebox控件。如图&#xff1a; 四.我们到初始化代…...

HTML中的焦点管理

前言 焦点作为页面交互中的重要一环&#xff0c;涉及到的知识点也比较多&#xff0c;有必要做一个统一的总结。 HTML 中的可获取焦点的元素 具有 href 属性的 HTMLAnchorElement/HTMLAreaElement非禁用态的 HTMLInputElement/HTMLSelectElement/HTMLTextAreaElement/HTMLBut…...

如何区分接口测试和功能测试

接口测试和功能测试的区别&#xff1a; 2023最新Jmeter接口测试从入门到精通&#xff08;全套项目实战教程&#xff09; 本文主要分为两个部分&#xff1a; 第一部分&#xff1a;主要从问题出发&#xff0c;引入接口测试的相关内容并与前端测试进行简单对比&#xff0c;总结两者…...

limit分页查询

controller层 ApiOperation("员工分页查询")GetMapping("/page")public Result<PageResult> page(EmployeePageQueryDTO employeePageQueryDTO){log.info("员工分页查询&#xff0c;参数为{}",employeePageQueryDTO);PageResult pageResul…...

mysql null 值查询不出来问题

最新遇到mysql null 值查询的问题&#xff0c;当查询这个字段有的为null 有的不为null 该字段查询条件查询为null值得将不显示。 举例 新建表 test_user name和phone得值默认值为null 我们添加一些数据 查询下name 不是张三得数据 select * from test_user where name !张…...

面试之CurrentHashMap的底层原理

首先回答HashMap的底层原理? HashMap是数组链表组成。数字组是HashMap的主体&#xff0c;链表则是主要为了解决哈希冲突而存在的。要将key 存储到&#xff08;put&#xff09;HashMap中&#xff0c;key类型实现必须计算hashcode方法&#xff0c;默认这个方法是对象的地址。接…...

Error in onLoad hook: “ReferenceError: plus is not defined“ found in

项目场景&#xff1a; 项目背景如下所示&#xff1a; 使用 HBuilder X 开发 项目&#xff0c; 调整页面时&#xff0c;直接运行到 浏览器查看页面设置效果&#xff0c;导致控制台出现下述报错信息 例如&#xff1a; 问题描述 遇到的问题如下所示&#xff1a; APP 中接收数据…...

ansible自动化运维(二)剧本、角色编写实战

&#x1f618;作者简介&#xff1a;一名运维工作人员。 &#x1f44a;宣言&#xff1a;人生就是B&#xff08;birth&#xff09;和D&#xff08;death&#xff09;之间的C&#xff08;choise&#xff09;&#xff0c;做好每一个选择。 &#x1f64f;创作不易&#xff0c;动动小…...

【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&#xff08;Very Secure FTP Daemon&#xff09;是一个在 Linux/Unix 系统上运行的一款开源免费的 FTP 服务器软件。vsftpd 支持支持 匿名用户、…...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性&#xff1a;电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中&#xff0c;电力载波技术&#xff08;PLC&#xff09;凭借其独特的优势&#xff0c;正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据&#xff0c;无需额外布…...

2.Vue编写一个app

1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...

【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】

1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件&#xff08;System Property Definition File&#xff09;&#xff0c;用于声明和管理 Bluetooth 模块相…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA

浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求&#xff0c;本次涉及的主要是收费汇聚交换机的配置&#xff0c;浪潮网络设备在高速项目很少&#xff0c;通…...

【网络安全】开源系统getshell漏洞挖掘

审计过程&#xff1a; 在入口文件admin/index.php中&#xff1a; 用户可以通过m,c,a等参数控制加载的文件和方法&#xff0c;在app/system/entrance.php中存在重点代码&#xff1a; 当M_TYPE system并且M_MODULE include时&#xff0c;会设置常量PATH_OWN_FILE为PATH_APP.M_T…...

(一)单例模式

一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...

Qemu arm操作系统开发环境

使用qemu虚拟arm硬件比较合适。 步骤如下&#xff1a; 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载&#xff0c;下载地址&#xff1a;https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...

Bean 作用域有哪些?如何答出技术深度?

导语&#xff1a; Spring 面试绕不开 Bean 的作用域问题&#xff0c;这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开&#xff0c;结合典型面试题及实战场景&#xff0c;帮你厘清重点&#xff0c;打破模板式回答&#xff0c…...

libfmt: 现代C++的格式化工具库介绍与酷炫功能

libfmt: 现代C的格式化工具库介绍与酷炫功能 libfmt 是一个开源的C格式化库&#xff0c;提供了高效、安全的文本格式化功能&#xff0c;是C20中引入的std::format的基础实现。它比传统的printf和iostream更安全、更灵活、性能更好。 基本介绍 主要特点 类型安全&#xff1a…...