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,博主的解决问题的思路和处理逻辑希望能够对你有所启发,大家国庆快乐🎉🎉🎉

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/54203.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机毕业设计之:音乐媒体播放及周边产品运营平台(源码+文档+讲解)

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

Json 在线可视化工具,分享几个

文章目录 1.json.cn2.json4u.cn3.jsonvisual.com4.jsoncrack5.altearius.github.io6.json.wanvb.com 前序:本文是对多种 Json 在线可视化工具 的介绍、分享。Json官网 https://www.json.org/json-en.html 个人比较中意第四款: https://jsoncrack.com/ed…

测试用例的进阶二

1. 按开发阶段划分 1.1 测试金字塔 从上到下,对于测试人员代码就是要求越来越低; 从下到上,越来越靠近用户; 从下到上,定位问题的成本越来越高; 1.2 单元测试(Unit Testing) 单元测试是对软件组成单元进…

uni-app+vue3开发微信小程序使用本地图片渲染不出来报错[渲染层网络层错误]Failed to load local image resource

我把图片放在assets里面页面通过相对路径引入。结果一直报错。 最后我把图片放在static文件夹下面。然后修改路径指向static就可以了 或者是我们必须先import 这个图片然后在使用 import banner1 from ../../assets/images/banner/banner1.png; <image :src"banner…

酒店构建数字化业产业—未来之窗行业应用跨平台架构

一、建设酒店产业数字化 二、酒店数字化产业目标 三、酒店数字化业务指标 四、酒店数字化管理层 五、酒店数字化数据应用 六、酒店数字化子系统 七、酒店数字化分析

Arthas sc(查看JVM已加载的类信息 )

文章目录 二、命令列表2.2 class/classloader相关命令2.2.5 sc&#xff08;查看JVM已加载的类信息 &#xff09;举例1&#xff1a;模糊搜索&#xff0c;xx包下所有的类举例2&#xff1a;打印类的详细信息举例3&#xff1a;打印出类的Field信息 本人其他相关文章链接 二、命令列…

C++ 游戏开发

C游戏开发 C 是一种高效、灵活且功能强大的编程语言&#xff0c;因其性能和控制能力而在游戏开发中被广泛应用。许多著名的游戏引擎&#xff0c;如 Unreal Engine、CryEngine 和 Godot 等&#xff0c;都依赖于 C 进行核心开发。本文将详细介绍 C 在游戏开发中的应用&#xff0…

DC00024基于ssm实验室预约管理系统java web项目web教师预约jsp预约管理系统

1、项目功能演示 DC00024基于web实验室预约管理系统ssm教室预约实验室预约管理系统java web项目MySQL 2、项目功能描述 基于ssm实验室预约管理系统分为用户和系统管理员两个角色。 2.1 系统管理员 1、系统登录 2、用户管理&#xff1a;修改个人信息、修改个人密码、教师管理…

执行力怎么培养?

执行力怎么培养&#xff1f; 并行&#xff1a;适合在初期养成习惯&#xff0c;不抱对结果的期望天才就是强迫症&#xff1a;适合中期修身&#xff1a;适合高级 并行&#xff1a;适合在初期养成习惯&#xff0c;不抱对结果的期望 在你开始做任何事情的时候&#xff0c;不要一开…

单调队列应用介绍

单调队列应用介绍 定义应用场景实现模板具体示例滑动窗口最大值问题描述问题分析代码实现带限制的子序列和问题描述问题分析代码实现跳跃游戏问题描述问题分析代码实现定义 队列(Queue)是另一种操作受限的线性表,只允许元素从队列的一端进,另一端出,具有先进先出(FIFO)的特…

疾风大模型气象,基于气象数据打造可视化平台

引言 随着气象数据的广泛应用&#xff0c;越来越多的行业依赖天气预报与气候分析来做出决策。从农业、航空、能源到物流&#xff0c;气象信息无时不刻影响着各行各业的运作。然而&#xff0c;气象数据本身复杂且多样&#xff0c;如何将这些数据转化为直观、易于理解的图形和信…

【微服务】组件、基础工程构建(day2)

组件 服务注册和发现 微服务模块中&#xff0c;一般是以集群的方式进行部署的&#xff0c;如果我们调用的时候以硬编码的方式&#xff0c;那么当服务出现问题、服务扩缩容等就需要对代码进行修改&#xff0c;这是非常不好的。所以微服务模块中就出现了服务注册和发现组件&…

基于深度学习的乳腺癌分类识别与诊断系统

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长 QQ 名片 :) 1. 项目简介 乳腺癌是全球最常见的癌症之一&#xff0c;早期诊断对于治疗效果至关重要。近年来&#xff0c;深度学习技术在医学图像分析领域取得了显著进展&#xff0c;能够从大量的医学影像数据中自动学习和提…

Vue3.X + SpringBoot小程序 | AI大模型项目 | 饮食陪伴官

gitee平台源码 github平台源码 饮食陪伴师是一个管理饮食的原生大模型小程序&#xff0c;优势&#xff1a; 精确营养监控&#xff1a;用户记录饮食后&#xff0c;我们会计算出食用的营养成分与分量&#xff0c;并反馈给用户。饮食建议有效&#xff1a;大模型经过我们训练具备大…

Qt 中的 QListWidget、QTreeWidget 和 QTableWidget:简化的数据展示控件

Qt 中的 QListWidget、QTreeWidget 和 QTableWidget&#xff1a;简化的数据展示控件 在 Qt 的用户界面开发中&#xff0c;展示和管理数据是常见的需求。Qt 提供了丰富的控件供开发者选择&#xff0c;其中 QListWidget、QTreeWidget 和 QTableWidget 是三个高层封装控件&#x…

程计软考题2-编译、解释程序翻译阶段

(一) 编译器和解释器的工作阶段 1.编译和解释与源程序的区别 分析&#xff1a;编译和解释是语言处理的两种基本方式。 编译过程包括词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成等阶段&#xff0c;以及符号表管理和出错处理模块。 解释过程在词法、语…

【Kubernetes】常见面试题汇总(四十三)

目录 98. kube-apiserver 和 kube-scheduler 的作用是什么&#xff1f; 99.您对云控制器管理器了解多少&#xff1f; 特别说明&#xff1a; 题目 1-68 属于【Kubernetes】的常规概念题&#xff0c;即 “ 汇总&#xff08;一&#xff09;~&#xff08;二十二&#xff09;…

网络层——IP

IP地址 结构&#xff1a; 由32位二进制数组成&#xff0c;通常用点分的形式被分为四个部分&#xff0c;每个部分1byte&#xff0c;最大值为255。 从功能的角度看&#xff0c;ip地址由两部分组成&#xff0c;网络号和主机号。网络号标识了ip所在的网段&#xff0c;主机号标识了…

基于微信的乐室预约小程序+ssm(lw+演示+源码+运行)

摘 要 随着社会的发展&#xff0c;社会的方方面面都在利用信息化时代的优势。互联网的优势和普及使得各种系统的开发成为必需。 本文以实际运用为开发背景&#xff0c;运用软件工程原理和开发方法&#xff0c;它主要是采用java语言技术和mysql数据库来完成对系统的设计。整个…

服务器使用frp做内网穿透详细教程,请码住

目录 1.内网穿透的定义 2.前提条件 3.frp下载地址 4.配置服务器端的frps.toml文件 5. 配置客户端&#xff0c;即物理服务器或者是电脑本机地址 6.添加服务端启动命令startServerFrp.sh 7.添加客户端启动命令startClientFrp.sh 8. 查看服务端启动日志 9.查看客户端启…