ebpf基础篇(一) -------- hello ebpf

发布时间:2023年12月23日

很多东西的学习都开始于一个’hello world’, ebpf也不例外。

实验环境: ubuntu 20.04

确认linux内核打开了如下选项

CONFIG_BPF=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPF_JIT=y
CONFIG_HAVE_EBPF_JIT=y
CONFIG_BPF_EVENTS=y
CONFIG_FTRACE_SYSCALLS=y
CONFIG_FUNCTION_TRACER=y
CONFIG_HAVE_DYNAMIC_FTRACE=y
CONFIG_DYNAMIC_FTRACE=y
CONFIG_HAVE_KPROBES=y
CONFIG_KPROBES=y
CONFIG_KPROBE_EVENTS=y
CONFIG_ARCH_SUPPORTS_UPROBES=y
CONFIG_UPROBES=y
CONFIG_UPROBE_EVENTS=y
CONFIG_DEBUG_FS=y

安装bpftrace

sudo apt-get install -y bpftrace

跟踪进程打开哪些文件

# bpftrace -e 'tracepoint:syscalls:sys_enter_openat { printf("hello ebpf %s %s\n", comm, str(args->filename)); }'
Attaching 1 probe...
hello ebpf code /etc/hosts
hello ebpf feishu /proc/self/status
hello ebpf DetectThread /proc/stat
hello ebpf DetectThread /proc/self/status
hello ebpf code /etc/hosts

使用docker image

为了简化环境安装,可以将常用ebpf工具制作成镜像.
具体制作脚本我已做好,可以下载使用:
https://github.com/happyAnger66/perf

本篇内容通过一个hello ebpf 的bpftrace命令跟踪进程打开文件的例子,展示了ebpf的强大功能。
最后分享了一个将ebpf工具打包成docker image的例子.
下一篇将介绍一下ebpf的发展历史和基本原理.

文章来源:https://blog.csdn.net/happyAnger6/article/details/135165642
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。