技术博客

阅读约 8 分钟

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

从 SkyWalking 四层架构、Docker 后端部署到 Java Agent 无侵入接入,并对比 Databuff OTLP 三组件栈与 AI 问数能力。含可复制命令与 Demo 现场截图。

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

SkyWalking · 开源 APM · OpenTelemetry · Databuff · 全链路追踪

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

1SkyWalking 项目简介与架构解析

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

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

  • 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 逻辑划分为四段:

[ Probe 探针 ] → gRPC / OTLP / Zipkin / Prometheus … ↓ [ OAP 平台后端 ] → 聚合 · 流式分析 · 告警 ↓ [ Storage 存储 ] → Elasticsearch / BanyanDB / JDBC … ↓ [ UI ] → 拓扑 · Trace · 指标 · 日志 · Profiling
图 1-1 · Probe 采集多协议遥测,OAP 承担分析与聚合,Storage 插件化,UI 提供可视化控制台。

图 1-1 · Probe 采集多协议遥测,OAP 承担分析与聚合,Storage 插件化,UI 提供可视化控制台。

图 1-1 · Probe 采集多协议遥测,OAP 承担分析与聚合,Storage 插件化,UI 提供可视化控制台。

1.2 核心数据模型

SkyWalking 用 Service → Service Instance → Endpoint → Process 描述观测对象。其中 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 数据」并存的渐进路线。

◆ ◆ ◆

2SkyWalking 后端部署实践

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

2.1 官方 Docker Quick Start

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

Linux / macOS / WSL:

bash <(curl -sSL https://skywalking.apache.org/quickstart-docker.sh)

Windows PowerShell:

Invoke-Expression ([System.Text.Encoding]::UTF8.GetString( (Invoke-WebRequest -Uri https://skywalking.apache.org/quickstart-docker.ps1 -UseBasicParsing).Content))

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

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

销毁环境:

docker compose --project-name=skywalking-quickstart down

2.2 源码仓库中的 compose 配置

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

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

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

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 集成上持续加深,适合新项目评估。

◆ ◆ ◆

3SkyWalking Java Agent 安装与配置

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

3.1 获取 Agent 包

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

3.2 关键配置项

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

# 服务名(英文标识,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 用例一致:

SW_AGENT_NAME=order-service SW_AGENT_COLLECTOR_BACKEND_SERVICES=oap:11800

3.3 挂载到 JVM

可执行 JAR:

java -javaagent:/path/to/skywalking-agent/skywalking-agent.jar \ -jar yourApp.jar

Tomcat(catalina.sh 首行):

CATALINA_OPTS="$CATALINA_OPTS -javaagent:/path/to/skywalking-agent.jar"; export CATALINA_OPTS

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

3.4 插件与可选能力

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

◆ ◆ ◆

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

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

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

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

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

4.1 定位与架构

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

[ 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 环境拉起 Demo:

curl -fsSL https://www.databuff.ai/databuff/ai-apm-install.sh | bash

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

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

export OTEL_SERVICE_NAME=order-service export OTEL_EXPORTER_OTLP_ENDPOINT=http://<host>:4318 java -javaagent:opentelemetry-javaagent.jar -jar order-service.jar
图 4-2 · 接入 OTel 数据后,服务列表展示 QPS、错误率、P95 等 RED 指标,可与 SkyWalking UI 的 Service 视图对照理解。

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

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

4.2 AI 对话能力展示

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

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

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

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

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

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

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

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

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

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

◆ ◆ ◆

5Databuff vs SkyWalking 对比

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

维度Apache SkyWalkingDatabuff
架构Probe + OAP + Storage + UI 四层Ingest + Doris + Web 三层
默认接入SkyWalking Java Agent(gRPC 11800)OTLP 4317/4318 标准协议
后端部署OAP + ES/BanyanDB 等存储集群Docker 脚本约 5 分钟起 Demo
Java 探针skywalking-agent.jar + agent.configOTel Java Agent + 环境变量
扩展方式OAL/MAL/LAL 规则 DSLAI Tool / Skill / Expert + MCP
AI 能力对话式问数、巡检、多智能体编排
更适用Mesh/eBPF、四支柱一体、深度 SkyWalking 生态OTel 统一接入、快速 POC、AI 辅助值班

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

◆ ◆ ◆

6小结

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

◆ ◆ ◆

7引用资料

  • 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://www.databuff.ai/
  • 8. https://www.databuff.ai/databuff/ai-apm-install.sh
  • 9. https://opentelemetry.io/ecosystem/vendors/ (OpenTelemetry 官方 Vendors 生态名单 · Databuff 条目)
  • 10. https://www.gartner.com/reviews/market/observability-platforms (Gartner Observability Platforms 市场定义与 AI 可观测论述)

◆ ◆ ◆

◆ ◆ ◆

了解更多:github.com/databufflabs/databuff