网络可观测性

目录

关于 DeepFlow

什么是 DeepFlow

DeepFlow 开源项目旨在为复杂的云原生和 AI 应用提供深度可观测性。
DeepFlow 通过 eBPF 实现了零代码数据采集,涵盖指标、分布式追踪、请求日志和函数性能分析,并进一步集成了 SmartEncoding,实现全栈关联和高效访问所有可观测数据。借助 DeepFlow,云原生和 AI 应用自动获得深度可观测性,免除了开发者持续在代码中埋点的繁重负担,为 DevOps/SRE 团队提供从代码到基础设施的全面监控和诊断能力。

使用 eBPF 技术

假设您对 eBPF 有基本了解,它是一种通过在沙箱中运行程序来扩展内核功能的安全高效技术,相较于传统修改内核源码和编写内核模块的方式,是一项革命性创新。eBPF 程序是事件驱动的,当内核或用户程序经过 eBPF Hook 时,会执行加载在该 Hook 点的对应 eBPF 程序。
Linux 内核预定义了一系列常用的 Hook 点,也可以通过 kprobe 和 uprobe 技术动态添加内核和应用程序中的自定义 Hook 点。
得益于即时编译(JIT)技术,eBPF 代码的执行效率可媲美原生内核代码和内核模块。
得益于验证机制,eBPF 代码运行安全,不会导致内核崩溃或进入死循环。

软件架构

DeepFlow 由两个组件组成,Agent 和 Server。Agent 运行在每个 K8s 节点、传统主机和云主机上,负责采集主机上所有应用进程的 AutoMetrics 和 AutoTracing 数据。Server 运行在 K8s 集群中,提供 Agent 管理、标签注入、数据摄取和查询服务。

安装 DeepFlow

介绍

内核要求

DeepFlow 中的 eBPF 功能(AutoTracing、AutoProfiling)对内核版本有以下要求:

架构发行版内核版本kprobeGolang uprobeOpenSSL uprobeperf
X86CentOS 7.93.10.0

1

YY

2

Y

2

Y
RedHat 7.63.10.0

1

YY

2

Y

2

Y
*4.9-4.13Y
4.14

3

YY

2

Y
4.15YY

2

Y
4.16YYY
4.17+YYYY
ARMCentOS 84.18YYYY
EulerOS5.10+YYYY
KylinOS V10 SP24.19.90-25.24+YYYY
KylinOS V10 SP34.19.90-52.24+YYYY
其他发行版5.8+YYYY

内核版本附加说明:

  1. CentOS 7.9 和 RedHat 7.6 在 3.10 内核中回移植了一些 eBPF 功能 (opens new window)。
    在这两个发行版中,DeepFlow 支持的具体内核版本如下(依赖的 Hook 点):
    • 3.10.0-957.el7.x86_64
    • 3.10.0-1062.el7.x86_64
    • 3.10.0-1127.el7.x86_64
    • 3.10.0-1160.el7.x86_64
  2. 容器内的 Golang/OpenSSL 进程不支持。
  3. 在内核版本 4.14 中,tracepoint 不能被多个 eBPF 程序附加(例如,两个或更多 deepflow-agent 不能同时运行),其他版本不存在此问题。
注意

RedHat 声明:

Red Hat Enterprise Linux 7.6 中的 eBPF 作为技术预览提供,
因此不具备完整支持,不适合生产环境部署。
其主要目的是获得更广泛的曝光,并可能在未来实现完整支持。
Red Hat Enterprise Linux 7.6 中的 eBPF 仅启用追踪功能,
允许将 eBPF 程序附加到探针、tracepoint 和 perf 事件。

部署拓扑

准备工作

存储类

DeepFlow 中的 MySQL 和 ClickHouse 需要由 Storage Class 提供的持久卷存储。

有关存储配置的更多信息,请参见存储文档

软件包

下载 DeepFlow 软件包

访问 Custom Portal 下载 DeepFlow 软件包。

如果您无法访问 Custom Portal,请联系技术支持。

上传软件包到平台

使用 violet 工具将软件包发布到平台。

有关该工具的详细使用说明,请参见CLI

安装

  1. 进入 管理员 > Marketplace > 集群插件

  2. 在插件列表中搜索“Alauda Container Platform Observability with DeepFlow”。

  3. 点击 安装,打开安装配置页面。

  4. 根据需要填写配置参数。各参数详细说明请参见下表。

  5. 等待插件状态变为 已安装

表格:配置参数

参数是否可选说明
ReplicasClickHouse 服务器和 DeepFlow 服务器的副本数。建议设置为大于等于 3 的奇数,以保证高可用性。
Storage Class用于为 MySQL 和 ClickHouse 创建持久卷的 Storage Class。未设置时使用默认 Storage Class。
MySQL Storage SizeMySQL 持久卷大小。
ClickHouse Storage SizeClickHouse 存储卷大小。
ClickHouse Data Storage SizeClickHouse 数据存储大小。
UsernameGrafana Web 控制台用户名。
PasswordGrafana Web 控制台密码。强烈建议首次登录后修改该密码。
Confirm Password确认 Grafana Web 控制台密码。
Ingress Class Name用于创建 Grafana Web 控制台 Ingress 的 Ingress Class 名称。未设置时使用默认 Ingress Class。
Ingress PathGrafana Web 控制台的 Ingress 服务路径。
Ingress TLS Secret NameGrafana Web 控制台 Ingress 使用的 TLS Secret 名称。
Ingress HostsGrafana Web 控制台 Ingress 使用的主机列表。
Agent Group Configuration默认 DeepFlow Agent 组的配置。

访问 Grafana Web UI

您可以通过 Ingress 配置中指定的主机和服务路径访问 Grafana Web UI,使用用户名和密码登录。

注意

强烈建议首次登录后修改密码。

其他资源