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

Windows11系统下SkyWalking环境搭建教程

目录

  • 前言
  • SkyWalking简介
  • SkyWalking下载
  • Agent监控实现
  • 启动配置
  • SkyWalking启动
  • Java应用程序启动
  • Elasticsearch安装
  • 总结


前言

本文为博主在项目环境搭建时记录的SkyWalking安装流程,希望对大家能够有所帮助,不足之处欢迎批评指正🤝🤝🤝


SkyWalking简介

SkyWalking是一个开源的分布式系统观测平台,它主要用于监控、追踪和诊断分布式系统中的服务和应用。SkyWalking 能帮助开发者和运维人员了解系统中的服务调用链路,分析性能瓶颈,监控各个服务的运行状态,及时发现问题。 简单的讲就是开发者可以通过SkyWalking来了解每个服务的状况、性能表现和调用关系。

SkyWalking下载

SkyWalking官网下载地址

我们在官网的Foundations下的SkyWalking APM的Distribution下载,这里博主是准备下载9.5.0版本,另外的话就是需要知道的是

  • 如果你想查看或者修改SkyWalking的源代码的话,可以点击Source下载src链接🙂
  • 当然就是只是想运行SkyWalking而不修改源代码建议和博主一样直接下载二进制文件

请添加图片描述
下载解压好的目录结构如下
请添加图片描述
从 SkyWalking 8.7.0版本开始,agent的相关代码已经从主程序包中拆分出来,成为独立的模块。这意味着,SkyWalking本身提供监控和追踪功能,但如果你需要在你的应用程序中进行性能监控或分布式追踪,就需要额外配置一个agent。这个agent会作为探针,植入到你的应用中,用于收集应用运行时的性能数据,比如响应时间、错误率、调用链路等🤔🤔🤔

我们需要下载和SkyWalking版本对应的agent版本, SkyWalking Agent不同版本的要求链接一览

请添加图片描述
因为博主下的serve是9.5.0的,所以这里的话从文档可以看出只能下载9.0.0版本的agent了
请添加图片描述
回到下载界面下载对应的Agents,这里博主还是下载可运行的二进制文件,有相应需求的话下载源代码🤝🤝
请添加图片描述
下载好之后进行解压,这里博主直接用命令行解压

tar -xvzf apache-skywalking-java-agent-9.0.0.tgz

请添加图片描述


Agent监控实现

解压好了之后我们要找到Agent Jar文件的路径
请添加图片描述
然后我们找一个java的应用程序进行配置JVM启动参数,博主的启动参数格式如下

-javaagent:/path/to/skywalking-agent.jar

博主在IDEA中给一个示例程序来配置启动参数,首先在IDEA界面右上角点击Edit Configurations
请添加图片描述
给示例程序添加JVM参数
请添加图片描述
然后我们也要配置agent.config文件的内容
请添加图片描述
主要涉及agent.namespace和collector.backend_service的配置

# The agent namespace 
agent.namespace=${SW_AGENT_NAMESPACE:}
  • 这个配置项定义了Agent 的命名空间。SW_AGENT_NAMESPACE是一个环境变量。如果没有设置这个环境变量,则默认为空(即没有指定命名空间)。
  • 命名空间的作用是当你有多个独立的SkyWalking集群时,Agent可以通过命名空间区分不同集群中的服务,防止数据混乱。如果你不需要区分多个集群,通常可以保持为空。

这里的话博主设置一个环境变量进行测试
请添加图片描述

# Backend service addresses.
collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:127.0.0.1:11800}
  • 这个配置项定义了SkyWalking 后端服务(OAP)的地址,Agent 会将收集到的数据发送到这个地址。
  • SW_AGENT_COLLECTOR_BACKEND_SERVICES 是一个环境变量,如果没有设置这个变量,则默认连接到 127.0.0.1:11800,这意味着后端服务在本地运行,并且监听 11800 端口。

这里博主的后端服务在本地运行就不做修改了


启动配置

在下载的SkyWalking目录中有bin文件夹,其中有启动脚本,在windows下面是bin/startup.bat
请添加图片描述
默认情况下运行启动脚本后SkyWalking UI服务会在本地运行并监听8080端口,可以通过下面的地址访问

http://localhost:8080/

但是为了避免端口冲突,我们对于UI服务的配置文件进行修改,将默认的server.port的端口号修改为8888
请添加图片描述
这里可以直接将8080修改为8888或者设置环境变量SW_SERVER_PORT两种方式都可以
请添加图片描述
另外虽然就是测试的时候博主是本地单实例运行SkyWalking,但是项目要求的环境是需要配置Nacos服务注册中心,这里博主也给出相应的修改步骤,首先是打开config文件夹下的配置文件
请添加图片描述
然后将注册中心修改为nacos,当然这里为什么要进行这一步修改呢?🤔🤔🤔对Nacos有了解需求的可以简单看看博主写的另一篇博客 Windows11系统下Nacos环境搭建教程 🫡🫡🫡

  • 希望使用Nacos来管理多个OAP实例
  • Nacos能够帮助实现负载均衡、故障检测和实例的动态拓展
    请添加图片描述

SkyWalking启动

首先的话因为Nacos是服务注册和发现的中心,所以需要最先启动
请添加图片描述
然后的话便是启动OAP服务,因为OAP后端是SkyWalking的核心服务,负责处理代理agent发送来的监控数据,OAP服务启动后会向Nacos注册自己并开始接收来自 Java 应用的监控数据🤔🤔🤔
请添加图片描述
这里博主同时启动OAP服务和UI服务时窗口闪退,无法查看到错误信息,准备来一一排查错误信息

  • 首先是检查日志文件,可惜为空🤔🤔🤔
    请添加图片描述
  • 然后检查下是否端口被占用,所设置的8888端口也没有发送冲突🤔🤔🤔
    请添加图片描述
  • 使用命令行启动,结果没有出输出错误信息,仍然闪退🤔🤔🤔
    请添加图片描述
    经调研可知,SkyWalking OAP 服务默认情况下需要一个存储引擎来存储监控数据。 博主接下来带领大家下载一下Elasticsearch(SkyWalking的默认存储引擎),跳转至下文的Elasticsearch安装目录进行Elasticsearch安装的步骤,安装完毕后将配置文件中storage部分进行配置
    请添加图片描述
    双击服务仍然不能打开,用Git Bash打开输入命令
sh startup.sh

显示已成功运行?这就很奇怪了🤨🤨🤨
请添加图片描述
然后发现生成有log文件了,一看表示我正在运行的 Java 版本过低,无法运行由更高版本的 Java 编译的类文件,崩溃了啊,新版本要求JDK11😭😭😭
请添加图片描述
安装JDK吧

JDK11 安装地址

博主直接下载压缩包来解压
请添加图片描述
解压完成后博主修改了一下JAVA_HOME的环境变量,更换为jdk11的文件夹,重启一下命令行输入java版本命令,显示jdk11表示更好成功
请添加图片描述
双击oapService.bat启动OAP服务仍然闪退,查看log文件表明Nacos时没有找到用户 ,这里是因为博主没有在SkyWalking的配置文件中修正nacos的用户名和密码配置

请添加图片描述
请添加图片描述
再次运行oapService.bat在Nacos管理页面发现服务成功注册🎉🎉🎉🎉
请添加图片描述
运行webappService.bat然后访问http://localhost:8888成功打开SkyWalking的UI界面🎉🎉🎉🎉
请添加图片描述


Java应用程序启动

启动测试程序,可以看到agent代理的相关日志信息
请添加图片描述
可以发现SkyWalking的UI界面可以看到我注册的服务的信息🎉🎉🎉
请添加图片描述


Elasticsearch安装

Elasticsearch官网下载地址

这里博主直接下载Elasticsearch在Windows下的压缩包
请添加图片描述
解压后的目录结构如下
请添加图片描述
然后配置环境变量
请添加图片描述
请添加图片描述

双击bin\elasticsearch.bat启动后会在命令行窗口看到一系列的日志输出
请添加图片描述
打开elasticsearch.yml文件进行一些配置,这里把xpack.security.enabledxpack.security.http.ssl.enabled设置为false,便于我们稍后测试Elasticsearch是否成功启动,但在生产环境中不推荐这种使用。
请添加图片描述
通过访问http:localhost:9200来验证Elasticsearch是否成功启动,如果看到类似下面的JSON响应表示已成功启动

{"name": "your_node_name",#节点的名称,通常是启动 Elasticsearch 时自动分配的名称或者手动配置"cluster_name": "your_cluster_name",#集群的名称,多个节点可以属于同一个集群也可以手动修改。"cluster_uuid": "your_cluster_uuid",#集群的唯一标识符"version": {"number": "your_elasticsearch_version",#Elasticsearch 的版本号"build_flavor": "your_build_flavor",#构建版本的风格"build_type": "your_build_type",#构建的安装类型"build_hash": "your_build_hash",#当前 Elasticsearch 版本的 Git 提交哈希值"build_date": "your_build_date",#构建日期,表示 Elasticsearch 这个版本的打包日期"build_snapshot": "your_build_snapshot",#是否是开发快照版本"lucene_version": "your_lucene_version",#Elasticsearch 使用的 Lucene 库的版本号"minimum_wire_compatibility_version": "your_minimum_wire_compatibility_version","minimum_index_compatibility_version": "your_minimum_index_compatibility_version"},"tagline": "your_elasticsearch_tagline"#这是 Elasticsearch 项目的一句幽默标语
}

总结

本文记录了博主搭建SkyWalking环境从头到尾的步骤,中间会遇到一些bug,博主的解决问题的思路和处理逻辑希望能够对你有所启发,大家国庆快乐🎉🎉🎉

相关文章:

Windows11系统下SkyWalking环境搭建教程

目录 前言SkyWalking简介SkyWalking下载Agent监控实现启动配置SkyWalking启动Java应用程序启动Elasticsearch安装总结 前言 本文为博主在项目环境搭建时记录的SkyWalking安装流程,希望对大家能够有所帮助,不足之处欢迎批评指正🤝&#x1f91…...

前端BOM常用操作

BOM操作常用命令详解及代码案例 BOM(Browser Object Model)是浏览器对象模型,是浏览器提供的JavaScript操作浏览器的API。BOM提供了与网页无关的浏览器的功能对象,虽然没有正式的标准,但现代浏览器已经几乎实现了Java…...

【Go】-viper库的使用

目录 viper简介 viper使用 通过viper.Set设置值 读取配置文件说明 读取配置文件 读取多个配置文件 读取配置项的值 读取命令行的值 io.Reader中读取值 写配置文件 WriteConfig() 和 SafeWriteConfig() 区别: viper简介 配置管理解析库,是由大神 Steve Fr…...

JavaWeb酒店管理系统(详细版)

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...

C++ | 定长内存池 | 对象池

文章目录 C | 定长内存池 | 对象池一、内存池的引入二、代码中的内存池实现 - ObjectPool类(一)整体结构(二)内存分配 - New函数(三)内存回收 - Delete函数 三、内存池在TreeNode示例中的性能测试演示四、脱…...

python画图|自制渐变柱状图

在前述学习过程中,我们已经通过官网学习了如何绘制渐变的柱状图及其背景。 掌握一门技能的最佳检验方式就是通过实战,因此,本文尝试做一些渐变设计。 前述学习记录可查看链接: Python画图|渐变背景-CSDN博客 【1】柱状图渐变 …...

基于RPA+BERT的文档辅助“悦读”系统 | OPENAIGC开发者大赛高校组AI创作力奖

在第二届拯救者杯OPENAIGC开发者大赛中,涌现出一批技术突出、创意卓越的作品。为了让这些优秀项目被更多人看到,我们特意开设了优秀作品报道专栏,旨在展示其独特之处和开发者的精彩故事。 无论您是技术专家还是爱好者,希望能带给…...

K8S部署流程

一、war打包镜像(survey,analytics,trac系统) 代码打包成war准备tomcat的server.xml文件&#xff0c;修改connector中8080端口为项目的端口 修改前&#xff1a; <Connector port"8080" protocol"HTTP/1.1"connectionTimeout"20000"redirect…...

DevExpress WinForms中文教程:Data Grid - 如何添加或删除行?

本教程介绍DevExpress WinForm的Data Grid控件UI元素和API&#xff0c;它们使您和最终用户能够添加或删除数据行。您将首选学习如何启用内置的数据导航器&#xff0c;然后学习如何使用Microsoft Outlook启发的New Item行添加新记录。最后教程将向您展示基本的API&#xff0c;它…...

u盘格式化后数据能恢复吗?2024年Top4恢复神器来帮忙

在这个电脑和手机满天飞的时代&#xff0c;U盘是我们用来存东西和传文件的得力助手&#xff0c;特别重要。但是&#xff0c;有时候U盘可能会不小心被格式化了&#xff0c;里面的重要文件就不见了。那么&#xff0c;U盘格式化后的数据还能恢复吗&#xff1f;当然可以。今天会告诉…...

深度学习·Argparse

Argparse 命令行选项、参数和子命令解析器 ArgumentParser 命令行传参数->解析参数->获得对应参数 初始化&#xff1a;parser argparse.ArgumentParser(descriptionxxx)添加命令行参数&#xff1a; parser.add_argument("--training_filepath", typestr, he…...

制造企业为何需要PLM系统?PLM系统解决方案对制造业重要性分析

制造企业为何需要PLM系统&#xff1f;PLM系统解决方案对制造业重要性分析 新华社9月23日消息&#xff0c;据全国组织机构统一社会信用代码数据服务中心统计&#xff0c;我国制造业企业总量突破600万家。数据显示&#xff0c;2024年1至8月&#xff0c;我国制造业企业数量呈现稳…...

http协议中的header详细讲解

http协议中的header详细讲解 HTTP 协议和 TCP/IP 协议族内的其他众多的协议相同&#xff0c;用于客户端和服务器之间的通信。 请求访问文本或图像等资源的一端称为客户端&#xff0c;而提供资源响应的一端称为服务器端。 HTTP 协议规定&#xff0c;请求从客户端发出&#xf…...

探索后量子安全:基于格加密技术的未来密码学展望

在信息技术日新月异的今天&#xff0c;量子计算作为下一代计算技术的代表&#xff0c;正逐步从理论走向实践。量子计算的出现对现有的加密体系构成了严重威胁&#xff0c;尤其是基于大数分解和离散对数难题的传统密码学&#xff08;如RSA和Diffie-Hellman协议&#xff09;。为了…...

WPF之UI进阶--完整了解wpf的控件和布局容器及应用

前面三篇有关WPF的基础介绍&#xff0c;分别介绍了wpf与winform的异同&#xff0c;wpf的事件生成和使用以及数据绑定。但我们还缺乏一副好的“皮囊”&#xff0c;所以从这篇开始我们来开始学习wpf的UI相关的内容&#xff0c;首当其冲的就是布局容器。 其实我们知道&#xff0c;…...

unity一键注释日志和反注释日志

开发背景&#xff1a;游戏中日志也是很大的开销&#xff0c;虽然有些日志不打印但是毕竟有字符串的开销&#xff0c;甚至有字符串拼接的开销&#xff0c;有些还有装箱和拆箱的开销&#xff0c;比如Debug.Log(1) 这种 因此需要注释掉&#xff0c;当然还需要提供反注释的功能&am…...

VBA数据库解决方案第十五讲:Recordset集合中单个数据的精确处理

《VBA数据库解决方案》教程&#xff08;版权10090845&#xff09;是我推出的第二套教程&#xff0c;目前已经是第二版修订了。这套教程定位于中级&#xff0c;是学完字典后的另一个专题讲解。数据库是数据处理的利器&#xff0c;教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法…...

甄选范文“论软件需求管理”,软考高级论文,系统架构设计师论文

论文真题 软件需求管理是一个对系统需求变更了解和控制的过程。需求管理过程与需求开发过程相互关联,初始需求导出的同时就要形成需求管理规划,一旦启动了软件开发过程,需求管理活动就紧密相伴。 需求管理过程中主要包含变更控制、版本控制、需求跟踪和需求状态跟踪等4项活…...

Android Studio Dolphin 中Gradle下载慢的解决方法

我用的版本Android Studio Dolphin | 2021.3.1 Patch 1 1.Gradle自身的版本下载慢 解决办法&#xff1a;修改gradle\wrapper\gradle-wrapper.properties中的distributionUrl 将https\://services.gradle.org/distributions为https\://mirrors.cloud.tencent.com/gradle dis…...

Excel实现省-市-区/县级联

数据准备 准备省份-城市映射数据&#xff0c;如下&#xff1a; 新建sheet页&#xff0c;命名为&#xff1a;省-市数据源&#xff0c;然后准备数据&#xff0c;如下所示&#xff1a; 准备城市-区|县映射数据&#xff0c;如下&#xff1a; 新建sheet页&#xff0c;命名为&#x…...

在软件开发中正确使用MySQL日期时间类型的深度解析

在日常软件开发场景中&#xff0c;时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志&#xff0c;到供应链系统的物流节点时间戳&#xff0c;时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库&#xff0c;其日期时间类型的…...

大数据学习栈记——Neo4j的安装与使用

本文介绍图数据库Neofj的安装与使用&#xff0c;操作系统&#xff1a;Ubuntu24.04&#xff0c;Neofj版本&#xff1a;2025.04.0。 Apt安装 Neofj可以进行官网安装&#xff1a;Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...

SkyWalking 10.2.0 SWCK 配置过程

SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外&#xff0c;K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案&#xff0c;全安装在K8S群集中。 具体可参…...

MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例

一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢

随着互联网技术的飞速发展&#xff0c;消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁&#xff0c;不仅优化了客户体验&#xff0c;还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用&#xff0c;并…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言&#xff1a; 在人工智能快速发展的浪潮中&#xff0c;快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型&#xff08;LLM&#xff09;。该模型代表着该领域的重大突破&#xff0c;通过独特方式融合思考与非思考…...

Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器

第一章 引言&#xff1a;语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域&#xff0c;文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量&#xff0c;支撑着搜索引擎、推荐系统、…...

React19源码系列之 事件插件系统

事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版&#xff01;&#xff01;&#xff01;6.8截至答题&#xff0c;大家注意呀&#xff01; 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:&#xff08; B &#xff09; A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

使用LangGraph和LangSmith构建多智能体人工智能系统

现在&#xff0c;通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战&#xff0c;比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...