首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >SkyWalking简介、部署及 Java Agent 安装实践对比

SkyWalking简介、部署及 Java Agent 安装实践对比

原创
作者头像
DataIntelli
修改2026-07-07 21:19:16
修改2026-07-07 21:19:16
140
举报
文章被收录于专栏:DataBuff开源APMDataBuff开源APM

摘要: Apache SkyWalking 是云原生场景下成熟的开源 APM,本文从官方架构文档出发,拆解 Probe→OAP→Storage→UI 四层栈,给出 Docker 一键后端部署与 Java Agent 无侵入接入的可复制步骤,供「先跑通链路、再评估演进」的团队参考。

很多团队第一次接触 SkyWalking,卡在两个环节:OAP 与存储怎么起、Java 进程怎么挂 Agent。下文按「懂架构 → 部署后端 → 装探针 → 对比选型」顺序展开,命令与端口均可在公网文档中交叉验证。


§1 SkyWalking 项目简介与架构解析

Apache 顶级开源可观测性平台,覆盖 Trace / Metrics / Logs / Profiling / Event 五类遥测。

Apache SkyWalking 面向分布式与云原生基础设施,负责采集、分析、聚合与可视化服务遥测数据1。与传统「只做链路」的工具不同,它在同一平台内覆盖:

  • Tracing:原生 Segment 格式,兼容 Zipkin v1/v2
  • Metrics:原生 Meter、OTel Metrics、Telegraf;可与 Istio/Envoy Service Mesh 集成
  • Logging:磁盘或网络采集,Agent 可自动绑定 Trace 上下文
  • Profiling:语言 Agent 与独立 eBPF Agent 提供代码级性能剖析
  • Event:记录发布、配置变更等关键事件,并与指标/链路关联排障

1.1 逻辑四层架构

官方文档将 SkyWalking 逻辑划分为四段2:

代码语言:txt
复制
[ Probe 探针 ]  →  gRPC / OTLP / Zipkin / Prometheus …
        ↓
[ OAP 平台后端 ]  →  聚合 · 流式分析 · 告警
        ↓
[ Storage 存储 ]  →  Elasticsearch / BanyanDB / JDBC …
        ↓
[ UI ]  →  拓扑 · Trace · 指标 · 日志 · Profiling

图 1-1 · Probe 采集多协议遥测,OAP 承担分析与聚合,Storage 插件化,UI 提供可视化控制台。(架构示意见 SkyWalking 官方文档2)

1.2 核心数据模型

SkyWalking 用 Service → Service Instance → Endpoint → Process 描述观测对象2。其中 Service 是一组提供相同行为的工作负载;Instance 是 Service 下的单个实例(Java Agent 场景通常对应一个 OS 进程);Endpoint 是 HTTP URI 或 gRPC 方法签名等入口路径。跨 K8s、Mesh、OS 等多 Layer 时,可通过 Service Hierarchy 关联同一逻辑服务在不同层级的视图。

Probe 形态: 除 Java/C#/Go/Node.js/PHP/Python 等语言 Agent 外,还支持 Service Mesh Receiver、eBPF K8s 监控,以及 OpenTelemetry、Prometheus、Zipkin 等第三方格式接入——适合「存量 Agent + 新 OTel 数据」并存的渐进路线。


§2 SkyWalking 后端部署实践

以 Docker 快速体验为主;生产环境需单独规划 Storage 集群与 OAP 水平扩展。

2.1 官方 Docker Quick Start

SkyWalking 提供一键脚本,交互式选择 ElasticsearchBanyanDB 作为存储,并启动 OAP + Booster UI3。

Linux / macOS / WSL:

代码语言:bash
复制
bash <(curl -sSL https://skywalking.apache.org/quickstart-docker.sh)

Windows PowerShell:

代码语言:powershell
复制
Invoke-Expression ([System.Text.Encoding]::UTF8.GetString(
  (Invoke-WebRequest -Uri https://skywalking.apache.org/quickstart-docker.ps1 -UseBasicParsing).Content))

脚本完成后,典型端口如下4:

  • Agent / gRPC 上报:11800(OAP 默认 collector 端口)
  • OAP HTTP REST:12800
  • Booster UI:8080(浏览器访问控制台)

销毁环境:

代码语言:bash
复制
docker compose --project-name=skywalking-quickstart down

2.2 源码仓库中的 compose 配置

若需自定义镜像版本或存储,可在官方仓库使用 profile 启动4:

代码语言:bash
复制
# Elasticsearch 存储
docker compose --profile elasticsearch up

# BanyanDB 存储(SkyWalking 自研时序+追踪库)
docker compose --profile banyandb up

也可单独运行 OAP 容器并指定存储后端,例如 BanyanDB:

代码语言:bash
复制
export RELEASE_VERSION=10.4.0
docker run --name oap -d --restart always \
  -e SW_STORAGE=banyandb \
  -e SW_STORAGE_BANYANDB_TARGETS=banyandb:17912 \
  apache/skywalking-oap-server:${RELEASE_VERSION}

运维提示: 生产环境常见拓扑是「OAP 集群 + ES/OpenSearch 或 BanyanDB 集群 + UI」。Storage 选型直接决定磁盘成本与 Trace 查询延迟;10.x 版本在 BanyanDB 集成上持续加深,适合新项目评估。


§3 SkyWalking Java Agent 安装与配置

字节码增强、无侵入接入;JDK 8–25 可用5。

3.1 获取 Agent 包

从 Apache SkyWalking Java Agent 发行包中解压 agent/ 目录,核心文件为 skywalking-agent.jar,插件位于 plugins/,配置位于 config/agent.config5。

3.2 关键配置项

编辑 agent.config(或通过环境变量覆盖):

代码语言:properties
复制
# 服务名(英文标识,UI 中展示)
agent.service_name=${SW_AGENT_NAME:YourAppName}

# OAP 地址(默认本机 11800)
collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:127.0.0.1:11800}

在 Docker Compose 或 K8s 中,常用环境变量写法与官方 e2e 用例一致6:

代码语言:bash
复制
SW_AGENT_NAME=order-service
SW_AGENT_COLLECTOR_BACKEND_SERVICES=oap:11800

3.3 挂载到 JVM

可执行 JAR:

代码语言:bash
复制
java -javaagent:/path/to/skywalking-agent/skywalking-agent.jar \
     -jar yourApp.jar

Tomcat(catalina.sh 首行):

代码语言:bash
复制
CATALINA_OPTS="$CATALINA_OPTS -javaagent:/path/to/skywalking-agent.jar"; export CATALINA_OPTS

注意 -javaagent 必须放在 -jar 之前5。启动后等待数十秒,在 UI「General Service」拓扑中应能看到对应 Service。

3.4 插件与可选能力

plugins/ 目录下插件默认全部启用;删除某个 jar 即可禁用对应中间件探针(Dubbo、Feign、HttpClient、JDBC 等)。可选插件在 optional-plugins/,按需拷贝到 plugins/ 激活5。若使用 ZGC 的 JRE,需 OAP 9.7.0+ 才兼容5。


§4 Databuff 项目简介、架构与 AI 对话能力

开源 AI Native OpenTelemetry APM · 三组件极简栈。

Databuff · 三组件架构

Databuff 三组件架构
Databuff 三组件架构

图 4-1 · Databuff 三组件架构:OTel 接入 Ingest,Doris 统一存储,Web 平台承载 APM UI 与 AI 多智能体。

4.1 定位与架构

Databuff 是面向 OpenTelemetry 标准的开源 APM:默认接收 OTLP Trace 与 Metrics,在同一存储上提供查询、告警与 AI 辅助排障7。Databuff 已收录于 opentelemetry.io 官方 Vendors 生态名单,标注 Native OTLP 原生消费遥测数据,可在 OpenTelemetry 官网公开验证9。官网将其概括为三层:

代码语言:txt
复制
[ OpenTelemetry SDK / Java Agent ]
        │ OTLP gRPC 4317 / HTTP 4318
        ▼
[ Ingest 接入 ] ── Trace 组装 · 指标分钟聚合
        ▼
[ Doris 统一存储 ] ── Trace / 指标 / 拓扑 / 告警
        ▼
[ Web 平台 ] ── APM UI + AI 多智能体(Brain / Query / Inspection)

与 SkyWalking 的四层栈相比,Databuff 把「分析引擎 + 存储 + 查询」收敛为 Ingest + Doris + Web,安装脚本一条命令即可在 Docker 环境拉起 Demo8:

代码语言:bash
复制
curl -fsSL https://www.databuff.ai/databuff/ai-apm-install.sh | bash

安装完成后终端会输出 Web UI 地址(默认 27403)与 OTLP 接入点(如 4318/v1/traces)7。

应用侧使用标准 OTel 环境变量即可,无需专有 Agent 协议:

代码语言:bash
复制
export OTEL_SERVICE_NAME=order-service
export OTEL_EXPORTER_OTLP_ENDPOINT=http://<host>:4318
java -javaagent:opentelemetry-javaagent.jar -jar order-service.jar

Databuff Demo · 应用性能 · 服务列表

Databuff 应用性能服务列表
Databuff 应用性能服务列表

图 4-2 · 接入 OTel 数据后,服务列表展示 QPS、错误率、P95 等 RED 指标,可与 SkyWalking UI 的 Service 视图对照理解。

4.2 AI 对话能力展示

Databuff 的 AI 并非外挂聊天框,而是直接读取 APM 存储:Brain 理解意图后调度 Query、Inspection 等专家,通过 Tool 层查询指标、Trace、拓扑与告警7。平台还支持 MCP,将外部工具注册到数字专家。

Databuff Demo · AI 平台首页

Databuff AI 平台:智能问数与智能巡检
Databuff AI 平台:智能问数与智能巡检

图 4-3 · AI 平台提供「智能问数」「智能巡检」模式,内置「查服务列表 / 拓扑 / 趋势」等一键提示词。

Databuff Demo · 自然语言问数结果

AI 问数返回服务列表表格
AI 问数返回服务列表表格

图 4-4 · 输入「Query service list for the last hour」后,AI 在约 10s 内完成 11 步推理,返回 7 个服务及 Elasticsearch、MySQL、Redis、Kafka 等依赖类型——说明回答基于真实遥测而非空泛生成。

Databuff Demo · 全局拓扑

Databuff 全局服务拓扑
Databuff 全局服务拓扑

图 4-5 · 全局拓扑视图展示服务间调用关系,与 SkyWalking 拓扑互补;AI 问数可进一步用自然语言追问上下游与异常趋势。


§5 Databuff vs SkyWalking 对比

同一目标(看清分布式系统),不同设计取舍。

维度

Apache SkyWalking

Databuff

架构

Probe + OAP + Storage + UI 四层

Ingest + Doris + Web 三层

默认接入

SkyWalking Java Agent(gRPC 11800)

OTLP 4317/4318 标准协议

后端部署

OAP + ES/BanyanDB 等存储集群

Docker 脚本约 5 分钟起 Demo7

Java 探针

skywalking-agent.jar + agent.config

OTel Java Agent + 环境变量

扩展方式

OAL/MAL/LAL 规则 DSL

AI Tool / Skill / Expert + MCP

AI 能力

对话式问数、巡检、多智能体编排

更适用

Mesh/eBPF、四支柱一体、深度 SkyWalking 生态

OTel 统一接入、快速 POC、AI 辅助值班

实践建议: 若团队已按本文完成 SkyWalking 后端 + Java Agent 接入,可保留存量链路;对新微服务并行挂载 OTel Agent 指向 Databuff,用同一业务流量对比「部署步骤、UI 查询、AI 问数」三项体验,再决定是否扩大 OTel 比例。二者并非互斥——SkyWalking OAP 本身也支持 OTLP Receiver2。


§6 小结

行业视角下,Gartner 在可观测性平台研究中强调,系统复杂度的飞升和运营负担激增,推动了对 AI SRE 智能体的主动管理和可靠性的需求10。SkyWalking 的价值在于成熟的探针生态与 OAP 分析流水线:搞懂四层架构后,用官方 Docker 脚本起后端、用 -javaagent 挂 Java 进程,是最短落地路径。Databuff 则代表OTLP 标准 + 轻量部署 + AI 原生交互的另一条曲线——尤其适合正在推进 OpenTelemetry 统一接入、希望减少 Storage 运维面的团队。建议先在本机跑通 SkyWalking Quick Start 与 Databuff 安装脚本,用真实 Java 服务产生 Trace,再对照 UI 与 AI 问数体验做选型决策。


引用资料

1 https://skywalking.apache.org/docs/main/latest/readme/

2 https://skywalking.apache.org/docs/main/latest/en/concepts-and-designs/overview/

3 https://skywalking.apache.org/docs/main/latest/en/setup/backend/backend-docker/

4 https://github.com/apache/skywalking/tree/master/docker

5 https://skywalking.apache.org/docs/skywalking-java/latest/en/setup/service-agent/java-agent/readme/

6 https://github.com/apache/skywalking/tree/master/test/e2e-v2

7 https://opentelemetry.io/ecosystem/vendors/

8 https://www.gartner.com/reviews/market/observability-platforms

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • §1 SkyWalking 项目简介与架构解析
    • 1.1 逻辑四层架构
    • 1.2 核心数据模型
  • §2 SkyWalking 后端部署实践
    • 2.1 官方 Docker Quick Start
    • 2.2 源码仓库中的 compose 配置
  • §3 SkyWalking Java Agent 安装与配置
    • 3.1 获取 Agent 包
    • 3.2 关键配置项
    • 3.3 挂载到 JVM
    • 3.4 插件与可选能力
  • §4 Databuff 项目简介、架构与 AI 对话能力
    • 4.1 定位与架构
    • 4.2 AI 对话能力展示
  • §5 Databuff vs SkyWalking 对比
  • §6 小结
  • 引用资料
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档