服务热线
Service Hotline
4005-616-228
新闻中心
公司新闻
行业动态
IT知识
技术实力
服务质量
法律保障

7 个行使 bcc/BPF 的机能说明神器

发布时间:2019-06-19????阅读:84 |
分享到:

原文出处: Brendan Gregg   译文出处:Linux中国/张守永   

行使伯克利包过滤器 Berkeley Packet Filter(BPF)编译器荟萃Compiler Collection(BCC)器材深度探查你的 Linux 代码。

在 Linux 中呈现的一种新技能可以或许为体系打点员和开拓者提供大量用于机能说明和妨碍解除的新器材和仪表盘。它被称为加强的伯克利数据包过滤器 enhanced Berkeley Packet Filter(eBPF,或 BPF),固然这些改造并不是由伯克利开拓的,并且它们不只仅是处理赏罚数据包,更多的是过滤。我将接头在 Fedora 和 Red Hat Linux 刊行版中行使 BPF 的一种要领,并在 Fedora 26 上演示。

BPF 可以在内核中运行由用户定义的沙盒措施,可以当即添加新的自定义成果。这就像按需给 Linux 体系添加超手段一样平常。 你可以行使它的例子包罗如下:

高级机能跟踪器材:对文件体系操纵、TCP 变乱、用户级变乱等的可编程的低开销检测。

收集机能: 尽早扬弃数据包以进步对 DDoS 的规复手段,可能在内核中重定向数据包以进步机能。

安详监控: 7×24 小时的自定义检测和记录内核空间与用户空间内的可疑变乱。

在也许的环境下,BPF 措施必需通过一个内核验证机制来担保它们的安详运行,这比写自定义的内核模块更安详。我在此假设大大都人并不编写本身的 BPF 措施,而是行使别人写好的。在 GitHub 上的 BPF Compiler Collection (bcc) 项目中,我已宣布很多开源代码。bcc 为 BPF 开拓提供了差异的前端支持,包罗 Python 和 Lua,而且是今朝最活泼的 BPF 器材项目。

7 个有效的 bcc/BPF 新器材

为了相识 bcc/BPF 器材和它们的检测内容,我建设了下面的图表并添加到 bcc 项目中。

Linux bcc/BPF 跟踪器材图

这些是呼吁行界面器材,你可以通过 SSH 行使它们。今朝大大都说明,包罗我的老板,都是用 GUI 和仪表盘举办的。SSH 是最后的本领。但这些呼吁行器材如故是预览 BPF 手段的好要领,纵然你最终规划通过一个可用的 GUI 行使它。我已着手向一个开源 GUI 添加 BPF 成果,但那是另一篇文章的主题。此刻我想向你分享本日就可以行使的 CLI 器材。

1、 execsnoop

从哪儿开始呢?怎样查察新的历程。那些会耗损体系资源,但很短暂的历程,它们乃至不会呈此刻 top(1) 呼吁或其余器材中的表现之中。这些新历程可以行使 execsnoop 举办检测(或行使行业术语说,可以被追踪traced)。 在追踪时,我将在另一个窗口中通过 SSH 登录:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

# /usr/share/bcc/tools/execsnoop

PCOMM            PID    PPID   RET ARGS

sshd             12234  727      0/usr/sbin/sshd-D-R

unix_chkpwd      12236  12234    0/usr/sbin/unix_chkpwd root nonull

unix_chkpwd      12237  12234    0/usr/sbin/unix_chkpwd root chkexpiry

bash             12239  12238    0/bin/bash

id               12241  12240    0/usr/bin/id-un

hostname         12243  12242    0/usr/bin/hostname

pkg-config       12245  12244    0/usr/bin/pkg-config--variable=completionsdir bash-completion

grepconf.sh      12246  12239    0/usr/libexec/grepconf.sh-c

收缩
  • 400-616-2280
  • 0531-88532317