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.mfbz.cn/a/885402.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

828华为云征文|华为云Flexus云服务器X实例部署 即时通讯IM聊天交友软件——高性能服务器实现120W并发连接

营运版的即时通讯IM聊天交友系统:特点可发红包,可添加多条链接到用户网站和应用,安卓苹果APPPC端H5四合一 后端开发语言:PHP, 前端开发语言:uniapp混合开发。 集安卓苹果APPPC端H5四合一APP源码&#xff0…

微信小程序——婚礼邀请函

目的 1.掌握微信小程序的开发技术,包括页面布局、交互设计、数据存储等。 2.学会运用微信小程序的各种组件和 API,实现个性化的婚礼邀请函功能。 3.通过制作婚礼邀请函小程序,提升创意设计和用户体验优化的能力。 4.了解如何在小程序中整…

JAVA并发编程系列(11)线程池底层原理架构剖析

面试官:说说JAVA线程池的几个核心参数? 之前我们用了10篇文章详细剖析了synchronized、volatile、CAS、AQS、ReentrantLock、Semaphore、CountDownLatch、CyclicBarrier、并发锁、Condition等各个核心基础原理,今天开始我们说说并发领域的各种…

信息安全数学基础(24)模为奇数的平方剩余与平方非剩余

前言 在信息安全数学基础中,模为奇数的平方剩余与平方非剩余是数论中的一个重要概念,特别是在密码学和安全协议中扮演着关键角色。当模数为奇数时,我们通常关注的是模为奇素数的平方剩余与平方非剩余,因为奇合数的情况更为复杂且…

自己做个国庆75周年头像生成器

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 下载相关代码:【免费】《自己做个国庆75周年头像生成器》代码资源-CSDN文库 又是一年国庆节,今年使用国旗做…

智慧城市交通管理中的云端多车调度与控制

城市交通管理中的云端多车调度与控制 智慧城市是 21世纪的城市基本发展方向,为了实现智慧城市建设的目标,人们需要用现代化的手段去管理和控制城市中的各种资源和设施。智能交通控制与管理是智慧城市中不可缺少的一部分,因为现代城市交通系统…

【2024工业3D异常检测文献】CMDIAD: 基于跨模态蒸馏驱动的多模态工业异常检测

Incomplete Multimodal Industrial Anomaly Detection via Cross-Modal Distillation 1、Background 近年来,基于3D点云和RGB图像的多模态工业异常检测(IAD)研究强调了利用模态间的冗余性和互补性对于精确分类和分割的重要性。 在项目中,提出了CMDIAD方…

亲身体验Llama 3.1:开源模型的部署与应用之旅

文章目录 1 Llama 3.1系列的诞生2 大型模型的未来发展3 使用教程4 Llama 3.1在客户服务中的运用 1 Llama 3.1系列的诞生 在人工智能的浪潮中,大型语言模型(LLM)正以其独特的魅力和潜力,成为深度学习领域的一颗耀眼明星。 这些模…

大模型增量训练--基于transformer制作一个大模型聊天机器人

针对夸夸闲聊数据集,利用UniLM模型进行模型训练及测试,更深入地了解预训练语言模型的使用方法,完成一个生成式闲聊机器人任务。 项目主要结构如下: data 存放数据的文件夹 dirty_word.txt 敏感词数据douban_kuakua_qa.txt 原始语…

【算法篇】二叉树类(2)(笔记)

目录 一、Leetcode 题目 1. 左叶子之和 (1)迭代法 (2)递归法 2. 找树左下角的值 (1)广度优先算法 (2)递归法 3. 路径总和 (1)递归法 (2…

JavaScript类型转换和相等性详解

类型转换 10"objects" //10objects,数字10转换为字符串 "7"*"4" //28,两个字符串均转为数字,只要不是加,其他都按两个数字算 var n 1-"x"// NaN,字符串x无法转化为数字 n"objects"//…

大模型训练:K8s 环境中数千节点存储最佳实践

今天这篇博客来自全栈工程师朱唯唯,她在前不久举办的 KubeCon 中国大会上进行了该主题分享。 Kubernetes 已经成为事实的应用编排标准,越来越多的应用在不断的向云原生靠拢。与此同时,人工智能技术的迅速发展,尤其是大型语言模型&…

通信工程学习:什么是CSMA/CD载波监听多路访问/冲突检测

CSMA/CD:载波监听多路访问/冲突检测 CSMA/CD(Carrier Sense Multiple Access/Collision Detect),即载波监听多路访问/冲突检测,是一种用于数据通信的介质访问控制协议,广泛应用于局域网(特别是以…

rpm方式安装jdk1.8

1、查询系统中是否已经安装jdk rpm -qa |grep java 或 rpm -qa |grep jdk 2、卸载已有的openjdk rpm -e --nodeps java-1.7.0-openjdk rpm -e --nodeps java-1.7.0-openjdk-headless rpm -e --nodeps java-1.8.0-openjdk rpm -e --nodeps java-1.8.0-openjdk-headless3、安装j…

考拉悠然携手中国系统打造城市智能中枢,让城市更聪明更智慧

在21世纪的科技浪潮中,智慧城市建设已成为推动城市现代化进程的重要引擎。随着人工智能技术的飞速发展,AI正以前所未有的速度融入智慧城市管理的每一个角落,从交通出行到公共安全,从环境保护到城市管理,无一不彰显着智…

2.1 HuggingFists系统架构(二)

部署架构 上图为HuggingFists的部署架构。从架构图可知,HuggingFists主要分为服务器(Server)、计算节点(Node)以及数据库(Storage)三部分。这三部分可以分别部署在不同的机器上,以满足系统的性能需求。为部署方便,HuggingFists社区版将这三部…

生产环境升级mysql流程及配置主从服务

之前写到过mysql升级8.4的文章, 因此不再介绍mysql的安装过程 避免服务器安装多个mysql引起冲突的安装方法_安装两个mysql会冲突吗-CSDN博客 生产环境升级mysql8.4.x流程 安装mysql 参考之前文章: 避免服务器安装多个mysql引起冲突的安装方法_安装两个mysql会冲突吗-CSDN博客…

尚硅谷MyBatis笔记

Mybatis简介 MyBatis历史 MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下,iBatis3.x正式更名为MyBatis。代码于2013年11月迁移到GithubiBatis一词来源于“intern…

yolov8/9/10模型在仪表盘、指针表检测中的应用【代码+数据集+python环境+训练/应用GUI系统】

可视化训练系统 可视化应用系统 yolov8/9/10模型在仪表盘、指针表检测中的应用【代码数据集python环境训练/应用GUI系统】 背景意义 随着科学技术的快速发展,机器视觉以及人工智能等技术逐渐从理论走向实践,并在各个领域得到广泛应用。机器视觉检测系统…

使用powershell的脚本报错:因为在此系统中禁止执行脚本

1.添加powershell功能环境: 2.启动powershell的执行策略 因为在此系统中禁止执行脚本。 set-executionpolicy unrestricted