关于 BPF 和 eBPF 的笔记 今天,我喜欢的 meetup 网站上有一篇我超爱的文章!Suchakra Sharma(@tuxology 在 twitter/github)的一篇非常棒的关于传统 BPF 和在 Linux 中最新加入的 eBPF 的讨论文章,正是它促使我想去写一个 eBPF 的程序! 这篇文章就是 —— BSD 包过滤器:一个新的用户级包捕获架构 我想在讨论的基础上去写一些笔记,因为,我觉得它超级棒! 开始前, linux中国 2024-07-18 捡田螺的小男孩
怎么去转换任何系统调用为一个事件:对 eBPF 内核探针的介绍 长文预警:在最新的 Linux 内核(>=4.4)中使用 eBPF,你可以将任何内核函数调用转换为一个带有任意数据的用户空间事件。这通过 bcc 来做很容易。这个探针是用 C 语言写的,而数据是由 Python 来处理的。 如果你对 eBPF 或者 Linux 跟踪不熟悉,那你应该好好阅读一下整篇文章。本文尝试逐步去解决我在使用 bcc/eBPF 时遇到的困难,以为您节省我在搜索和挖掘上花费 linux中国 2024-07-18 穿过生命散发芬芳
在 Fedora 中用 bpftrace 追踪代码 bpftrace 是一个 基于 eBPF 的新型追踪工具,在 Fedora 28 第一次引入。Brendan Gregg、Alastair Robertson 和 Matheus Marchini 在网上的一个松散的黑客团队的帮助下开发了 bpftrace。它是一个允许你分析系统在幕后正在执行的操作的追踪工具,可以告诉你代码中正在被调用的函数、传递给函数的参数、函数的调用次数等。 这篇文章的内容涉 linux中国 2024-07-17 醒在深海的猫
云原生可观测洞察及openEuler社区实践 应用可观测性可以对企业运营产生的实际数据进行分析,可观测性将成为企业数据驱动决策的最强支撑。云原生时代的基础设施更复杂,也暴露出可观测性存在一些问题,包括基础设施观测能力不足,缺乏应用视角的基础设施观测数据等,这些都为下一代云原生可观测提供了机会与挑战。 openEuler社区项目gala-gopher[ 1 ] 基于 eBPF 技术完成一系列全栈可观测实践工作。 eBPF及其对可观测的意义 eB 云运维 2024-02-02 向阳逐梦
应用监控 eBPF 版:实现高效协议解析的技术探索 作者:彦鸿 引言 随着 Kuberentes 等云原生技术的飞速发展,带来了研发与运维模式的变革。企业软件架构由单体服务向分布式、微服务演进。随着业务发展,多语言、多框架、多协议的微服务在企业中越来越多,软件架构复杂度越来越高,如何快速通过可观测工具快速定位出问题对研发人员至关重要。为满足全场景、端到端的应用监控需求,应用实时监控服务 ARMS 推出应用监控 eBPF 版,通过 eBPF 技术完善 云运维 2024-01-24 剑圣无痕
Fedora 40期待bpfman管理eBPF项目 Feddora 40正在寻找Bpfman用于充当默认的eBPF节目管理器,以简化所述eBPF节目的部署和管理。 EBPF技术已经被证明是非常健壮的,本质上是一种内核内的虚拟机,允许通过JIT编译或解释来运行时加载额外的“程序”。许多用例都是从分析到联网,多年来在众多Phoronix文章中分享了更多的用例。 对于Fedora 40,建议使用Bpfman作为默认的eBPF管理器,以便深入了解eBPF的 运维资讯 2024-01-22 共饮一杯
如何用 eBPF 改变网络编程的游戏规则 本文译自:eBPF adventures in networking 摘要:这篇文章介绍了 eBPF 在网络领域的一些应用和实践,包括 XDP、TC 和 sysprobes 三种不同的 eBPF 程序挂载方式的优缺点,以及如何使用 eBPF 实现网络数据的捕获、分析和修改。作者还分享了一些有用的 eBPF 工具和资源,以及自己开发的一个 eBPF 网络代理的项目。 我一直想写一些关于 eBPF 的 云运维 2024-01-11 穿过生命散发芬芳
用 eBPF 洞察应用层网络流量 本文译自:Application traffic with eBPF 摘要:本文介绍了如何使用 eBPF 程序捕获、分析和修改应用层的网络数据,包括 HTTP 头部和 URL 路径。作者还展示了如何使用 eBPF map 在内核和用户空间之间传递数据。 在先前的帖子中,我稍微谈到了建立 eBPF 知识,以开始更多地了解网络适配器的输入和输出情况。基本上,将以太网帧并剥离标头(以太网标头+IP 标头 云运维 2024-01-11 LOVEHL^ˇ^
基于 eBPF 构建下一代智能可观测系统 作者:梵登、千陆 本文基于 KubeCon China 2023 分享整理 我们今天分享的主题是基于 eBPF 构建下一代智能可观测系统。 在开始之前呢,我先介绍一下我们自己。我是刘恺,花名是千陆,目前是阿里云 ARMS K8s 监控子产品的负责人。这位是我的同事董善东博士,花名梵登,他是阿里云 ARMS 产品 AIOps 领域的负责人。 K8s 中的可观测挑战 本次的分享主要分为三部分内容。我们 云运维 2023-12-27 大白菜程序猿
eBPF for Windows 针对 Windows 的 eBPF 实现 此项目允许在 Windows 上使用 Linux 生态中熟悉的现有 eBPF 工具链和应用接口。也就是说,该项目将现有的 eBPF 项目作为子模块,并添加中间层,使其能在 Windows 上运行。 下图显示了本项目的基本架构和相关组件: 现有的 eBPF 工具链(clang 等)可用于从各种语言的源代码生成 eBPF 字节码。字节码可以被任何应用程序使用,也可以通过 bpftool 或 Netsh 运维资讯 2023-12-26 向阳逐梦
什么是革命性技术eBPF?为什么可观测性领域都得用它 如果有一种技术可以监控和采集任何应用信息,支持任何语言,并且应用完全无感知,零侵入,想想是不是很激动,那么这个技术是什么呢?就是eBPF,他应该是最近一两年非常热门的技术名词,我相信你或多或少都看到过,但可能不知道他能做什么,今天我们来讲讲这个革命性的技术eBPF,以及它在可观测领域的应用。 一、eBPF是什么? eBPF(extended Berkeley Packet Filter)是在Lin 系统运维 2023-12-22 捡田螺的小男孩
eBPF的发展演进从石器时代到成为神(一) 1. 前言 技术的发展往往是积跬步而至千里的。Linux从92年诞生,发展至今已经覆盖大小各类的信息基础设施。是什么样的力量,让Linux能够始终保持发展活力,又如何看待Linux之上出现的新的技术趋势? 本文试图通过梳理eBPF的演进过程,探索Linux内核的发展动力来源与发展轨迹,与大家一同畅想eBPF给内核技术、Linux生态带来的全新变局。 2. eBPF概览 2.1. 实现原理 运维资讯 2023-11-25 醒在深海的猫
龙蜥社区联合浪潮信息发布《eBPF技术实践白皮书》(附下载链接) 随着 eBPF 技术的高速发展,eBPF 已成为 Linux 内核顶 级子系统,并扩展到内核网络、存储、内存、调度和安全等子模块。这种可编程底座内核框架构建了全系统,是云计算、运维和安全等领域技术创新的基础。 龙蜥社区在 eBPF 领域进行了广泛的实践。从底层的 eBPF 低版本内核支持和 eBPF 脚本编程语言,到上层的基于 libbpf 跨平台的跟踪诊断增强框架,再到系统诊断和性能优化方面的应 系统运维 2023-11-15 穿过生命散发芬芳
解码eBPF可观测性:eBPF如何改变我们所知的观测性 在过去的两年里,云原生社区一直在热烈讨论eBPF。eBPF曾是KubeCon、eBPF Days和eBPF Summit的主题,并且越来越受欢迎。像Google和Netflix这样的公司多年来一直在使用eBPF,新的用例也不断涌现。特别是在观测性方面,eBPF被认为将是一个重大改变。 所以让我们来看看eBPF——这项技术到底是什么,它如何影响观测性,它与现有的观测性实践有什么区别,未来可能会发生什 开发运维 2023-10-13 向阳逐梦
DeeTune:基于 eBPF 的百度网络框架设计与应用 作者 | 百度APP云原生技术研发组 导读 随着云计算的技术的不断迭代演进,百度内部服务逐渐搬迁到云环境中,部署成本和效率取得明显收益,但一些可观测能力的短板和缺失逐渐显露,传统的方式往往通过植入代码进行修改来实现,但在业务形态和技术栈多样性的背景下,面临业务被侵入、沟通协调、性能、稳定性等方面的诸多问题。本文中我们介绍百度基于eBPF实现的网络框架:DeeTune,包含构建服务拓扑、流量录制、 云运维 2023-09-09 Escape
结合例子学eBPF和bcc:更好的输出机制 引 如果有这样一个需求:抓取某个系统调用对应的参数,你会如何实现呢? ChatGPT这样回答:要抓取某个系统调用的参数,您可以使用strace工具。Strace是一个跟踪系统调用和信号的工具,可以帮助您查看应用程序与操作系统之间的交互。 那如果是获取磁盘I/O的情况呢? 这是《结合例子学习eBPF和bcc》系列的第二篇文章。本文将介绍如何获取追踪目标函数的参数信息以及如何更好的进行结果输出。 di 系统运维 2023-08-23 大猫
eBPF 实践教程:使用 eBPF 用户态捕获多种库的 SSL/TLS 明文数据 随着TLS在现代网络环境中的广泛应用,跟踪微服务RPC消息已经变得愈加棘手。传统的流量嗅探技术常常受限于只能获取到加密后的数据,导致无法真正观察到通信的原始内容。这种限制为系统的调试和分析带来了不小的障碍。 但现在,我们有了新的解决方案。 eBPF技术,通过其能力在用户空间进行探测,提供了一种方法重新获得明文数据,使得我们可以直观地查看加密前的通信内容。然而,每个应用可能使用不同的库,每个库都有多 系统运维 2023-08-22 泡泡
eBPF 入门实践教程:用 bpf_send_signal 发送信号终止恶意进程 eBPF (扩展的伯克利数据包过滤器) 是 Linux 内核的一种革命性技术,允许用户在内核空间执行自定义程序,而不需要修改内核源代码或加载任何内核模块。这使得开发人员可以非常灵活地对 Linux 系统进行观测、修改和控制。 本文介绍了如何使用 eBPF 的 bpf_send_signal 功能,向指定的进程发送信号进行干预。更多的教程文档,请参考 github.com/eunomia-bpf… 系统运维 2023-08-22 穿过生命散发芬芳
基于eBPF技术构建一种应用层网络管控解决方案 引言 随着网络应用的不断发展,在linux系统中对应用层网络管控的需求也日益增加,而传统的iptables、firewalld等工具难以针对应用层进行网络管控。因此需要一种创新的解决方案来提升网络应用的可管理性。 本文将探讨如何使用eBPF技术构建一种应用层网络管控解决方案,为linux系统上的网络管控带来一种新的可能。 相关技术介绍 eBPF eBPF(Extended Berkeley Pac 系统运维 2023-08-15 剑圣无痕
深入浅出运维可观测工具(一):聊聊 eBPF 的前世今生 今天跟大家分享的 eBPF(extended Berkeley Packet Filter),相信很多技术人员已经很熟悉了。作为 Linux 社区的新宠,它备受 Goole、Facebook、Twitter 等大公司的青睐。 eBPF 究竟有什么魔力让大家这么关注 这是因为 eBPF 增加了内核的可扩展性,让内核变得更加灵活和强大。如果大家玩过乐高积木的话就会深有体会,乐高积木就是通过不断向主体添 云运维 2023-08-10 大白菜程序猿