1、首届中国首届中国eBPFeBPF研讨会研讨会观测云采集器观测云采集器主讲人:张文杰(观测云)主讲人:张文杰(观测云)2022-11-122022-11-12首届中国首届中国eBPFeBPF研讨会研讨会自我介绍自我介绍 姓名:张文杰 工作职责:基础技术研发团队-系统开发工程师 发展方向:可观测性 eBPF 程序语言开发 NLP 姓名:谭彪 工作职责:基础技术研发团队-资深系统开发工程师 发展方向:可观测性 架构设计首届中国首届中国eBPFeBPF研讨会研讨会目录目录0101观测云采集器观测云采集器0202eBPF eBPF 实践实践-网络观测网络观测 0303功能功能演示演示首届中国首届中国eB
2、PFeBPF研讨会研讨会观测云采集器观测云采集器纸上得来终觉浅,绝知此事要躬行。纸上得来终觉浅,绝知此事要躬行。0101首届中国首届中国eBPFeBPF研讨会研讨会什么是观测云采集器什么是观测云采集器观测云采集器是一款开源、一体式的数据采集 Agent,它提供全平台操作系统支持,拥有全面数据采集能力,涵盖基础设施、指标、日志、应用性能、用户访问以及安全巡检等各种场景。通过 eBPF 技术的引入,观测云采集器实践了网络传输层和应用层的部分协议的可观测。首届中国首届中国eBPFeBPF研讨会研讨会采集器架构采集器架构首届中国首届中国eBPFeBPF研讨会研讨会eBPF eBPF 实践实践-网络观测
3、网络观测纸上得来终觉浅,绝知此事要躬行。纸上得来终觉浅,绝知此事要躬行。0202首届中国首届中国eBPFeBPF研讨会研讨会eBPF eBPF 技术应用技术应用 为了实现网络协议可观测,观测云采集器使用了三种类型的 eBPF 程序:socket filter、kprobe、uprobe,从而能够抓取以太网帧、跟踪与 socket 和 TCP/IP 协议栈相关的内核函数以及用户共享库函数。首届中国首届中国eBPFeBPF研讨会研讨会数据采集数据采集 观测云采集器的 eBPF 网络观测功能采集并生成了三个数据集,分别为 netflow,dnsflow 和 httpflow,其 tag 基本相同,以
4、下是其 tag 名与描述:Tag Tag 名名描述描述src_ip源 IPdst_ip目标 IPsrc_port源端口dst_port目标端口transporttcp 或 udpfamilyIPv4 或 IPv6direction传输方向(incoming/outgoing)src_ip_type源 IP 类型(other/private/multicast)dst_ip_type目标 IP 类型(other/private/multicast)host主机名source数据源(netflow,httpflow,dnsflow)Tag Tag 名名描述描述pid进程 id,仅 netflowd
5、st_domain仅 netflow,来自 dnsflow 抓包记录src_k8s_namespace源 service 归属的 namespacesrc_k8s_deployment_name源 serivce 归属的 deploymentsrc_k8s_service_name源 servicesrc_k8s_pod_name源 poddst_k8s_namespace目标 service 归属的 namespacedst_k8s_deployment_name目标 serivce 归属的 deploymentdst_k8s_service_name目标 servicedst_k8s_po
6、d_name目标 podsub_source子来源,默认 N/A,如若为 Kubernetes 流量则为 K8s。首届中国首届中国eBPFeBPF研讨会研讨会传输层网络观测传输层网络观测 采集器使用 kprobe 类型 eBPF 程序获取部分内核函数的输入与返回值 通过 inet_bind(6)函数判断 src_ip+src_port 是否为服务端 通过协议栈 tcpudp 以及 ip 相关的内核函数,获取服务与客户端之间的流量大小以及 TCP 协议的连接的建立与关闭次数、重传和 RTT 信息Field Field