Skip to content

mbs0221/learning-bcc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

Learning BCC with ChatGPT

sudo apt install bpfcc-tools python3-bpfcc

案例教学

案例:网络连接计数

接下来,让我们通过一个案例教学来演示如何使用BCC的功能接口。假设我们想要跟踪系统中的网络连接,并统计特定端口的连接数量。

python3 conn_count.py

案例:监控系统中的文件访问

在这个案例中,我们将学习如何使用eBPF来监控系统中的文件访问,包括打开文件、关闭文件、读取文件和写入文件等操作。

python3 file_access.py

案例:网络连接监控

在这个案例中,我们将学习如何使用eBPF来监控网络连接,包括建立连接、关闭连接和传输数据等操作。

python network_monitor.py

案例:文件访问监控

在这个案例中,我们将学习如何使用eBPF来监控系统中的文件访问操作,包括文件的打开、读取和写入等操作。

python file_monitor.py

案例:网络连接跟踪

在这个案例中,我们将学习如何使用eBPF来跟踪网络连接,包括连接的建立、断开以及数据包的传输等操作。

python network_tracker.py

案例:系统调用监控

在这个案例中,我们将学习如何使用eBPF来监控系统调用的使用情况,包括系统调用的频率和参数等。

python syscall_monitor.py

案例:网络流量监控与分析

在这个案例中,我们将学习如何使用eBPF来监控和分析网络流量,包括抓取数据包、统计流量和分析流量特征等。

clang -O2 -target bpf -c packet_monitor.c -o packet_monitor.o
sudo python packet_monitor.py

案例:网络数据包过滤

在这个案例中,我们将编写一个简单的工具来过滤指定源IP地址的网络数据包,并统计过滤到的数据包数量。

python packet_filter.py

案例:监控系统中发生的异常

在这个案例中,我们将编写一个简单的工具来监控系统中的异常事件,并打印出异常发生的频率。

sudo bpftrace exception_monitor.bt

案例:监控网络数据包的流量

在这个案例中,我们将使用BCC库提供的BPFTable和BPFProgram来实现流量监控功能。

sudo python packet_counter.py

案例:使用eBPF和BCC库来进行网络流量分析

这次我们将学习如何使用eBPF和BCC库来进行网络流量分析。我们将捕获网络接口上的数据包,并统计每个源IP地址发送的数据包数量。

sudo python packet_counter-1.py

案例:使用eBPF和BCC库来实时监控网络数据包的传输情况。

在这个案例中,我们将使用BCC库提供的BPFTable和BPFProgram来捕获网络数据包的发送和接收事件,并输出相关信息。

sudo python packet_monitor-1.py

案例:实时监控系统中文件的读写操作

在这个案例中,我们将使用BCC库提供的BPFTable和BPFProgram来捕获文件读写事件,并输出相关信息。

sudo python file_monitor-1.py

案例:使用eBPF和BCC库来监控文件系统的访问情况

在这个案例中,我们将使用BCC库提供的BPFTable和BPFProgram来捕获文件系统的读写事件,并输出相关信息。

sudo python file_monitor-2.py

案例:使用BCC实现拦截mmap()和munmap()系统调用

当使用eBPF动态拦截内存管理相关的系统调用时,您可以编写一个eBPF程序,以hook的方式拦截mmap()和munmap()系统调用,并在调用发生时执行自定义的逻辑。

# 编译命令如下:
clang -O2 -target bpf -c mmap_hook.c -o mmap_hook.o
# 加载命令如下:
bpftool prog load mmap_hook.o /sys/fs/bpf/mmap_hook
# 加载成功后,您可以使用bpftool工具将拦截程序与目标进程关联起来:
bpftool prog attach /sys/fs/bpf/mmap_hook /path/to/target_program

sudo python mmap_hook.py

案例:编写一个eBPF程序,用于监控系统中的TCP连接,并计算每个连接的数据传输速率

sudo apt-get install bpfcc-tools python3-bpfcc
sudo python3 tcp_rate.py

案例:下面是一个使用 BCC 拦截进程页表更新的例子:

sudo python3 page_table_updates.py

案例:下面是一个使用 eBPF 和 BCC 的示例程序,用于递归遍历进程页表:

sudo python3 page_table_traversal.py

Releases

No releases published

Packages

No packages published