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

【SkyWalking】单节点安装

【SkyWalking】单节点安装

  • 1. 介绍SkyWalking
  • 2. 安装SkyWalking
  • 附录

1. 介绍SkyWalking

Apache SkyWalking 是一个 开源的 APM(应用性能监控)与可观测性平台,主要用于 分布式系统的链路追踪、性能分析和服务监控。

🔑 主要功能

  1. 分布式链路追踪
    追踪跨服务的调用链路(类似 Zipkin/Jaeger,但功能更丰富)。
    支持调用链可视化,查看请求在不同服务之间的传播路径。

  2. 性能监控 (APM)
    监控服务的响应时间、吞吐量、错误率。
    提供拓扑图,展示服务依赖关系。

  3. 指标与告警
    内置指标:CPU、内存、GC、线程池、数据库调用、MQ 等。
    可以自定义告警规则,比如接口响应时间过长、错误率过高。

  4. 多语言支持
    提供 Java Agent,通过字节码增强自动埋点,无需修改代码。
    也支持 Go、Python、PHP、Node.js、C++ 等 SDK。

  5. 云原生支持
    深度集成 Kubernetes、Istio、Envoy。
    通过 Sidecar 或 Service Mesh 获取指标。


🏗️ 架构组成

  1. Agent 层
    部署在应用服务上,负责收集调用数据、性能指标并上报给后端。
    常见的就是 skywalking-agent.jar(Java 项目直接加 JVM 参数即可)。

  2. OAP Server(后端存储与分析)
    核心组件,负责接收 Agent 数据,进行聚合、分析、存储。
    存储层可以选择 ElasticSearch、H2、MySQL、TiDB、BanyanDB 等。

  3. UI 控制台
    Web 界面(Vue + Spring Boot),提供链路追踪、拓扑图、性能指标展示。


🚀 常见使用场景

  • 微服务系统链路追踪:快速定位请求在哪个微服务卡住。
  • 接口性能分析:查看慢接口、慢 SQL、异常堆栈。
  • 服务依赖拓扑:直观展示服务之间的调用关系。
  • 容器与 Service Mesh 监控:云原生场景下监控 Pod、Service 的健康状态。
  • 告警与报表:配合告警规则,提前发现问题。

2. 安装SkyWalking

github地址: https://github.com/apache/skywalking
SkyWalking官网: https://skywalking.apache.org/
B站: https://space.bilibili.com/390683219
downLoad https://skywalking.apache.org/downloads/

我将数据存储到ES中,通过docker 安装ES

docker pull elasticsearch:8.13.0docker run --name elasticsearch -p 9200:9200  -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms256m -Xmx512m" -v /root/package/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml-v /home/package/es/data:/usr/share/elasticsearch/data -v /home/package/es/plugins:/usr/share/elasticsearch/plugins -d elasticsearch:8.13.0

安装skywalking-oap、skywalking-ui的docker-compose

version: '3'
services:oap:image: apache/skywalking-oap-server:9.4.0container_name: oaprestart: alwaysports:- "11800:11800"   # gRPC- "12800:12800"   # RESTenvironment:SW_STORAGE: elasticsearchSW_STORAGE_ES_CLUSTER_NODES: elasticsearch:9200  # 连接到现有的 Elasticsearch 容器ui:image: apache/skywalking-ui:9.4.0container_name: skywalking-uirestart: alwaysports:- "8089:8080"   # 更改为8081端口,避免和现有服务冲突environment:SW_OAP_ADDRESS: http://oap:12800  # 指向OAP服务depends_on:- oap

在这里插入图片描述

执行docker compose
docker-compose -f ./docker-compose.yml  up -d
**服务器中已安装的容器**[root@iv-ye20h65dz45i3z346rvs opt]# docker ps
CONTAINER ID   IMAGE                                      COMMAND                  CREATED        STATUS                 PORTS                                                                                                                            NAMES
02b27d5bd16d   apache/skywalking-ui:9.4.0                 "bash docker-entrypo…"   11 hours ago   Up 11 hours            0.0.0.0:8089->8080/tcp, :::8089->8080/tcp                                                                                        skywalking-ui
37cc9dbd3ad1   apache/skywalking-oap-server:9.4.0         "bash docker-entrypo…"   11 hours ago   Up 2 hours             0.0.0.0:11800->11800/tcp, :::11800->11800/tcp, 1234/tcp, 0.0.0.0:12800->12800/tcp, :::12800->12800/tcp                           oap
6823738ddfae   kibana:8.13.0                              "/bin/tini -- /usr/l…"   22 hours ago   Up 22 hours            0.0.0.0:5601->5601/tcp, :::5601->5601/tcp                                                                                        kibana
f547ea4e7c76   elasticsearch:8.13.0                       "/bin/tini -- /usr/l…"   22 hours ago   Up 22 hours            0.0.0.0:9200->9200/tcp, :::9200->9200/tcp, 0.0.0.0:9300->9300/tcp, :::9300->9300/tcp                                             elasticsearch
5601964e9cf4   apacherocketmq/rocketmq-dashboard:latest   "sh -c 'java $JAVA_O…"   10 days ago    Up 10 days             0.0.0.0:8080->8080/tcp, :::8080->8080/tcp                                                                                        rocketmq-dashboard
c2a92e11947b   apache/rocketmq:5.2.0                      "./docker-entrypoint…"   10 days ago    Up 10 days             0.0.0.0:10909->10909/tcp, :::10909->10909/tcp, 9876/tcp, 0.0.0.0:10911-10912->10911-10912/tcp, :::10911-10912->10911-10912/tcp   rmqbroker
aeb3770cc3c6   apache/rocketmq:5.2.0                      "./docker-entrypoint…"   10 days ago    Up 10 days             10909/tcp, 0.0.0.0:9876->9876/tcp, :::9876->9876/tcp, 10911-10912/tcp                                                            rmqnamesrv
799332d61cf4   xuxueli/xxl-job-admin:2.4.1                "sh -c 'java -jar $J…"   10 days ago    Up 10 days             0.0.0.0:8082->8080/tcp, 0.0.0.0:23333->8080/tcp, :::8082->8080/tcp, :::23333->8080/tcp                                           xxl-job
eb21af4b3950   seataio/seata-server:2.0.0                 "/bin/bash /seata-se…"   10 days ago    Up 10 days             0.0.0.0:7091->7091/tcp, :::7091->7091/tcp, 0.0.0.0:8091->8091/tcp, :::8091->8091/tcp                                             seata-server
b967618b3e82   nacos/nacos-server:v2.5.1                  "sh bin/docker-start…"   10 days ago    Up 10 days             0.0.0.0:8848->8848/tcp, :::8848->8848/tcp, 0.0.0.0:9848->9848/tcp, :::9848->9848/tcp                                             nacos
ddd1c89bf6f9   redis:latest                               "docker-entrypoint.s…"   10 days ago    Up 10 days             0.0.0.0:6379->6379/tcp, :::6379->6379/tcp                                                                                        redis
fa31290e7d98   mysql:8.4.1                                "docker-entrypoint.s…"   10 days ago    Up 10 days (healthy)   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp                                                                             mysql-8

这里发现一个问题,8089端口的页面打开后一致不显示,发现是在docker中的网络不在一起,执行下面命令解决。


docker network create skywalking-net
docker network connect skywalking-net elasticsearch
docker network connect skywalking-net oap
docker network connect skywalking-net skywalking-ui

在本地下载 apache-skywalking-java-agent-9.4.0.tgz 也就是agent解压后,如图所示。
在这里插入图片描述

然后在项目的启动参数增加VM配置
在这里插入图片描述

-javaagent:/Users/fanzhen/Downloads/skywalking-agent/skywalking-agent.jar
-Dskywalking.agent.service_name=nft-turbo-gateway
-Dskywalking.collector.backend_service=115.190.126.xxx:11800

在这里插入图片描述

附录

1.感觉白活了!自从用了SkyWalking分布式链路追踪,睡得越来越香了 https://zhuanlan.zhihu.com/p/458923743

http://www.lryc.cn/news/625239.html

相关文章:

  • 数字货币钱包的类型、特点及使用场景
  • 8.18网络编程——基于UDP的TFTP文件传输客户端
  • Kafka文件存储机制
  • LeetCode100 -- Day1
  • LeetCode 每日一题 2025/8/11-2025/8/17
  • STM32学习笔记14-I2C硬件控制
  • 嵌入式 C++ 语言编程规范文档个人学习版(参考《Google C++ 编码规范中文版》)
  • 朝花夕拾(七)--------从混淆矩阵到分类报告全面解析​
  • 远程访问公司内网电脑怎么操作?3个简单通用的跨网异地连接管理计算机方法
  • 安全基础DAY6-服务器安全检测和防御技术
  • 超级云平台:重构数字生态的“超级连接器“
  • 2025年- H98-Lc206--51.N皇后(回溯)--Java版
  • Hadoop - 1:Hadoop 技术解析;Hadoop是什么;Hadoop优势;Hadoop组成;HDFS、YARN、MapReduce 三者关系
  • <数据集>遥感飞机识别数据集<目标检测>
  • Ubuntu下无法在huggingface下载指定模型的解决方法
  • FreeRTOS学习笔记(二)
  • MySQL的多版本并发控制(MVCC):
  • Windows系统上使用GIT
  • 基于JS实现的中国象棋AI系统:多模块协同决策与分析
  • 【C语言16天强化训练】从基础入门到进阶:Day 2
  • 计算机大数据毕业设计推荐:基于Hadoop+Spark的食物口味差异分析可视化系统【源码+文档+调试】
  • 数据转换细节揭秘:ETL如何精准映射复杂业务逻辑
  • 深入解析StatefulSet与K8s服务管理
  • 力扣 hot100 Day77
  • LeetCode:无重复字符的最长子串
  • 08.常见文本处理工具
  • vue从入门到精通:轻松搭建第一个vue项目
  • Gemini CLI 系统配置小结
  • SpringBoot3整合OpenAPI3(Swagger3)完整指南
  • EasyExcel篇