当前位置: 首页 > 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.dtcms.com/a/338390.html

相关文章:

  • Linux命令大全-rmdir命令
  • Java中的 “128陷阱“
  • vue从入门到精通:轻松搭建第一个vue项目
  • go语言条件语if …else语句
  • rem 响应式布局( rem 详解)
  • 鼠标右键没有“通过VSCode打开文件夹”
  • FreeRTOS【3-1】创建第一个多任务程序复习笔记
  • STM32驱动SG90舵机全解析:从PWM原理到多舵机协同控制
  • Sring框架-IOC篇
  • ​​Java核心知识体系与集合扩容机制深度解析​
  • JavaSE高级-02
  • JDBC的使用
  • 【Python】Python Socket 网络编程详解:从基础到实践​
  • Street Crafter 阅读笔记
  • IDEA创建项目
  • MYSQL中读提交的理解
  • MySQL新手教学
  • lesson41:MySQL数据库进阶实战:视图、函数与存储引擎全解析
  • springBoot启动报错问题汇总
  • OVS:ovn是如何支持组播的?
  • LwIP 核心流程总结
  • wishbone总线
  • thinkphp8:一、环境准备
  • c++26新功能—可观测检查点
  • torch.nn.Conv1d详解
  • C++最小生成树
  • 高等数学 8.5 曲面及其方程
  • Python打卡Day45 预训练模型
  • 【加密PMF】psk-pmk-ptk
  • 【168页PPT】IBM五粮液集团数字化转型项目实施方案建议书(附下载方式)