《分会场3_石鹏飞_中国联通eBPF的探索与实践_报告PPT.pdf》由会员分享,可在线阅读,更多相关《分会场3_石鹏飞_中国联通eBPF的探索与实践_报告PPT.pdf(16页珍藏版)》请在三个皮匠报告上搜索。
1、中国联通eBPF的探索与实践第三届 eBPF开发者大会w w w.e b p f t r a v e l.c o m中 国 西 安1.可观测性演进第三届 eBPF开发者大会w w w.e b p f t r a v e l.c o m中 国 西 安 新特性可以快速加载,业务受影响快速卸载 eBPF技术在网络、计算、IO应用场景演进落地实践思路 可以实时编写 bpftrace 程序,针对特定场景进行数据抓取 获取eBPF技术具有相关业务属性标签用户态和内核态程序加载REST API内核态配置用户态配置eBPF-Agentlib.so 文件lib.so 文件用户态文件eBPF.o 文件eBPF.o
2、 文件eBPF文件内核空间用户空间kprobeuprobetracepointfentry/fexithook支持远程和本地加载支持eBPF程序声明解析支持动态加载用户态处理程序.soprograms:-name:tcp_tracer path:file|http|ftp:/xxx/tcp_tracer.bpf.o type:ebpf_object|bpftrace -name:tcp_connlat_user path:http:/xxxx/tcp_tracer.so type:user_so properties:progs:xxxxmaps:xxxvariables:xxx支持用户函数初
3、始化、preload/postload操作支持 eBPF map 初始数据灌入eBPF-Agentlib.so 文件lib.so 文件处理函数eBPF.o 文件eBPF.o 文件数据采集内核空间用户空间kprobeuprobetracepointftracehook支持kafka、本地文件及内嵌tsdb输出file或tsdb数据采集与消息处理支持数据采集、消息通道与用户函数多对多关联处理支持全局配置和单独配置channels:tcp_tracer_events:type:ring_buffer events:-name:tcp_connlat_user hash:hash target_pro
4、cessor:process storage:kafka:truetmpfs:true消息事件告警存储后端查询支持进程过滤与业务标识ContainerdSystemdxxx进程PodPodPodeBPF-Agentlib.so 文件lib.so 文件处理函数eBPF.o 文件eBPF.o 文件数据采集kprobeuprobetracepointftracehookmonitormap标签用户空间内核空间xxx进程41231.标签模块分别监控Systemd进程创建的进程和Containerd创建的pod2.将需要采集数据的进程写入monitor map3.内核根据标签过滤进程数据,按需采集数据4
5、.标签模块在传输数据之前附加进程业务属性标识ring_buffer 支持监听 Containerd、Systemd(DBus)事件 支持子进程,业务属性关联,如Nginx,Envoy等 支持可限定wactch范围,降低无关事件对eBPF-Agent进程缓存的压力eBPF-Agent处理函数bpftrace支持实时下发bpftrace程序bpftrace DSL 支持支持bpftrace 程序数据解析自定义消息事件告警存储后端查询systemd-unitprograms:-name:openfile path:file:/xxx/openfile.bt type:bpftrace -name:t
6、cp_connlat_user path:http:/xxxx/openfile.so type:user_so properties:initfile:functions:-name:process type:default.通用eBPF程序配置示例func process(ctx uintptr)var event oomEventtraceCtx:=(*TracerCtx)(unsafe.Pointer(ctx)err:=binary.Read(bytes.NewBuffer(traceCtx.RingCtx.Data),binary.LittleEndian,&event)if err