安装 Deepsight
本文面向 Deepsight 用户,说明如何获取、安装和启动 Deepsight Server 与 Deepsight Probe。 配置项说明见用户配置说明,手工前台调试见手工运行与前台调试。
首次使用时,建议先按目标选择入口:
- 只想先把 Claude Code 接到 Deepsight MCP:看LLM 快速接入
- 想在同一台机器上跑通 Server + Probe + MCP + Task:看单机完整演示
- Server 与 Probe 不在同一台机器:看分布式部署
默认用户路径是使用同版本 release 包安装。 本文只覆盖 release 包安装与运行。
一、组件与部署模式
Deepsight 由两个运行组件组成:
deepsight-server:gRPC 接收端,接收 Probe 上报的遥测数据。deepsight-probe:部署在被观测主机上的采集端,加载 eBPF 程序并主动连接 Server。
Probe 和 Server 是同一 Deepsight release 的配套组件,但运行和发布产物分离。必须同版本配套使用,避免 proto/gRPC 契约快速演进阶段出现字段或语义不一致。当前 TaskChannel 契约已经完成 lockstep breaking replacement,不支持旧 stream shape 混用,也不支持混合版本 Probe/Server。
1.1 TCP 分布式部署
TCP 是跨机器部署的默认模式。Server 监听一个 TCP 地址,Probe 通过 probe.exporter.endpoint 主动连接 Server。跨机器部署时,需要把 Server 监听地址和 Probe endpoint 改成内网可达地址。当前 TLS/mTLS 尚未实现,不应直接暴露到公网。
1.2 UDS 单机部署
UDS 适合 Probe 与 Server 在同一台机器运行的场景,例如本机试用、开发验证或低网络暴露面的单机部署。Server 创建 Unix socket,Probe 连接同一路径。
release 安装中的 single-node-demo preset 默认使用:
server.listen.network=unixserver.listen.address=/run/deepsight/grpc.sockprobe.exporter.endpoint.network=unixprobe.exporter.endpoint.address=/run/deepsight/grpc.sockserver.mcp.listen.address=127.0.0.1:50052
二、系统要求
Server:
- Linux 用户态服务
- 能监听 TCP 地址或 Unix socket
- 当前 TLS/mTLS 未实现,
tls.enabled必须保持false
Probe:
- Linux kernel >= 5.x
- cgroup v2
- BTF 可用,通常应存在
/sys/kernel/btf/vmlinux - root 或足够的 eBPF capability,用于加载和 attach eBPF 程序
- 能访问 Server 的 TCP 地址或 Unix socket 路径
检查 BTF:
ls -la /sys/kernel/btf/vmlinux三、安装方式
3.1 推荐:使用 release 包安装
Deepsight Probe 采用 CO-RE eBPF 方式,发布目标是预构建二进制。CO-RE 不要求用户在目标机器上从源代码构建;构建方可以提前把 eBPF object 编进 Probe 二进制,用户运行时只需要满足现代内核、BTF、cgroup v2 和 eBPF 权限要求。
推荐从 Deepsight 发布页下载同一版本的 release 包:
deepsight-linux-amd64-v0.2.0.tar.gzdeepsight-linux-amd64-v0.2.0.tar.gz.sha256
下载后校验 checksum:
sha256sum -c deepsight-linux-amd64-v0.2.0.tar.gz.sha256解包:
tar -xzf deepsight-linux-amd64-v0.2.0.tar.gz
cd deepsight-linux-amd64-v0.2.0
sha256sum -c checksums.txt安装二进制:
sudo install -m 0755 bin/deepsight-server /usr/local/bin/deepsight-server
sudo install -m 0755 bin/deepsight-probe /usr/local/bin/deepsight-probe
sudo install -m 0755 bin/deepsight-mcp-stdio /usr/local/bin/deepsight-mcp-stdio其中 deepsight-mcp-stdio 是本地 IDE/开发调试用的独立 MCP stdio adapter, 桥接到 Server 的 MCP Streamable HTTP 入口;不使用 stdio MCP client 时可以先不安装。
如果你想避免手工复制二进制、配置和 systemd unit,release 包现在提供基于 preset 的一键安装脚本:
sudo ./install.sh --preset single-node-demo它会自动:
- 按场景选择
server/probe/server+probe - 安装对应的 preset 配置到
/etc/deepsight/ - 安装
deepsight-init-client - 把
buffer.event_store_path改成/var/lib/deepsight/deepsight-events.db - 安装 systemd unit 到
/etc/systemd/system/ - 对
--role all/--role server自动创建deepsight系统用户/组,并让deepsight-server以该非 root 账号运行 - 按需要启用并启动
deepsight-server/deepsight-probe
preset 建议:
- 单机完整演示:
sudo ./install.sh --preset single-node-demo - 接收端主机:
sudo ./install.sh --preset split-server --server-address <server-ip>:50051 - 被观测主机:
sudo ./install.sh --preset split-probe --probe-address <server-ip>:50051
如果是跨机器部署,可显式覆盖地址:
sudo ./install.sh \
--preset split-probe \
--probe-address 10.0.0.10:50051权限边界:
deepsight-server是纯用户态服务,标准 systemd 安装会以deepsight非 root 用户运行。deepsight-probe仍需要 root 或等价 eBPF capability 来加载/attach eBPF 程序,因此当前继续以 root 运行。
install.sh 是当前面向普通用户和交付场景的主安装入口。 它假定输入已经是一个完整 release 包,而不是源码目录。
如果你是在源码仓库里验证本地构建产物,不要使用本文的 release 入口; 改看从源码构建并安装运行时。
四、启动顺序
- 启动
deepsight-server - 启动
deepsight-probe - 检查 Server 日志中是否出现 Probe register
- 检查 Probe 日志中是否出现 gRPC stream established
- 检查 Server 是否持续收到
PushTelemetrybatch
注意,如果你手工关闭了 server.task_channel.enabled,Server 会对 TaskChannel 返回 Unimplemented。Probe 会记录 warning,并继续运行数据面上报,这不是安装失败; 显式启用后当前已接入 hello-gated control plane、TaskState/ticket 和 MCP Tool/result query 闭环。
五、当前限制
- TLS/mTLS 尚未实现,所有配置中的
tls.enabled必须为false。 - Server MCP/LLM 用户入口已经实现;当前仓库与 release 提供的 example 配置默认已打开,主路径使用 Streamable HTTP,本地 IDE/开发调试可使用独立
deepsight-mcp-stdioadapter。如果你不希望暴露控制面或 MCP 入口,可以在部署前手工关闭。 - 仓库的 example 配置为了 LLM/MCP 全功能演示与验收,默认三模块全开,并已打开 MCP 与 TaskChannel;如果你只想做最小采集或不需要控制面 / MCP 暴露,可以在部署前手工关闭相应模块或开关。
completion/complete、resource subscription 和logging/setLevel当前未实现,调用时会返回结构化 feature-disabled 错误。- Pod/Container 归因是 best-effort;没有容器或 Kubernetes cgroup identity 的主机上相关字段可能为空。
- Probe 的真实 eBPF attach 依赖目标主机内核、BTF、cgroup v2 和权限环境。