1. 课程导论:BPF与eBPF技术概述、Prometheus生态简介、网络观测与资源配额审计的挑战与价值

1.1 BPF 与 eBPF 技术概述

BPF(Berkeley Packet Filter)最初设计用于网络数据包过滤,其核心思想是在内核中执行用户定义的安全策略,避免将数据包拷贝到用户空间。eBPF(extended BPF)是 BPF 的演进版本,它扩展了指令集、增加了辅助函数和 Map 数据结构,使得开发者可以在不修改内核源码或加载内核模块的情况下,安全高效地注入自定义程序。

核心能力: eBPF 程序通过验证器(Verifier)确保安全性,通过 JIT 编译器实现接近原生性能,支持 kprobes、tracepoints、perf_events、XDP、tc 等多种挂载点。
关键区别: 传统 BPF 仅用于网络过滤,eBPF 则覆盖网络、跟踪、安全、性能调优等多个领域,且支持 Map 与用户态双向通信。
eBPF 程序生命周期与挂载点 用户态程序 eBPF 加载器 (bpftool/libbpf) 内核验证器 (Verifier) JIT 编译 & 注入 内核挂载点 XDP (网卡驱动层) TC (流量控制) kprobes / tracepoints perf_events eBPF Map (内核态数据交换) Perf Buffer / Ring Buffer

1.2 Prometheus 生态简介

Prometheus 是云原生计算基金会(CNCF)毕业的监控与告警系统,采用拉取(Pull)模型采集指标数据,支持多维数据模型(Metric Name + Labels)和强大的 PromQL 查询语言。其生态核心组件包括:

组件 功能 典型用途
Prometheus Server 指标采集、存储、查询、告警规则评估 核心时序数据库与计算引擎
Exporters 将第三方系统指标转换为 Prometheus 格式 Node Exporter、Blackbox Exporter、自定义 Exporter
Alertmanager 告警去重、分组、路由、静默、通知 对接 Slack、PagerDuty、邮件等
PromQL 灵活的查询与聚合语言 实时仪表盘、异常检测、历史分析
Service Discovery 自动发现目标(Kubernetes、Consul、DNS) 动态基础设施下的自动采集
生态扩展: Prometheus 与 Grafana 深度集成,支持 Thanos、VictoriaMetrics 等长期存储方案,并通过 Remote Write/Read 协议与外部系统互通。

1.3 网络观测与资源配额审计的挑战与价值

1.3.1 网络观测的挑战

  • 数据平面不可见: 传统监控工具(如 netstat、ss)只能提供统计快照,无法捕获每个数据包的流向、延迟和协议细节。
  • 内核态与用户态鸿沟: 网络栈处理在内核中完成,用户态工具难以低开销地获取连接跟踪、拥塞控制、重传等细粒度信息。
  • 容器与微服务复杂性: 服务网格(Service Mesh)、Overlay 网络(如 Calico、Cilium)引入额外封装层,传统抓包方式难以关联容器 IP 与 Pod 身份。
  • 大规模下的性能开销: 全量抓包或轮询统计在千节点集群中会产生巨大资源消耗,影响业务稳定性。

1.3.2 资源配额校准与权限审计的挑战

领域 挑战 后果
资源配额校准 容器 CPU/内存/网络带宽的实际使用与申请值偏差大;突发流量导致限流或 OOM;多租户环境下配额分配不透明 资源利用率低、SLA 违约、成本失控
权限审计 系统调用、网络连接、文件访问等敏感操作缺乏细粒度审计;传统 auditd 日志量大且难以关联容器身份 安全合规风险、事件溯源困难、取证效率低

1.3.3 课程价值:eBPF + Prometheus 的融合方案

本课程将 eBPF 的内核可观测能力与 Prometheus 的指标生态相结合,构建一套覆盖网络观测、资源配额校准与权限审计的完整方案。核心价值包括:

  1. 零侵入内核观测: 通过 eBPF 在内核中直接采集网络连接、系统调用、资源使用等数据,无需修改业务代码或重启服务。
  2. 高精度指标暴露: 将 eBPF 采集的细粒度数据(如每个 Pod 的 TCP 重传率、每秒连接数、系统调用频率)转换为 Prometheus 指标,支持实时告警与历史回溯。
  3. 配额校准与审计闭环: 基于真实观测数据校准资源配额,生成权限审计日志,并通过 Prometheus 告警规则实现异常行为自动响应。
  4. 生产级可扩展性: 结合 Cilium、Pixie 等成熟 eBPF 项目,以及 Prometheus Operator、Thanos 等云原生工具,确保方案在大规模集群中的稳定性与可维护性。
课程目标: 学完本课程后,你将能够独立设计并部署一套基于 eBPF 与 Prometheus 的网络观测与审计系统,实现从内核数据采集到业务指标可视化的全链路闭环。
eBPF + Prometheus 融合方案架构 内核层 (eBPF 采集) 网络连接跟踪 系统调用审计 资源使用统计 安全策略 中间层 (指标转换与暴露) eBPF Exporter / 自定义 Exporter Prometheus Metric 格式转换 Label 注入 (Pod/NS) 应用层 (Prometheus 生态) Prometheus Server Alertmanager Grafana 仪表盘 Thanos
注意: 本课程假设学员已具备 Linux 基础操作、Docker/Kubernetes 基本概念以及 Prometheus 初步使用经验。对于 eBPF 编程和内核原理,课程将从基础概念逐步深入,无需提前精通。