sysdig工作原理
Sysdig架构
![10324229-19421b39a40e93a6.png](https://i-blog.csdnimg.cn/blog_migrate/7253157905754db24053ee1859e93ac3.png)
markdown-img-paste-20200101170710286.png
具体实现
-
内核空间
首先,sysdig-probe 的这个驱动利用了内核组件tracepoint 捕获在内核层面的事件。通过Tracepoint,可以放置一个能够被内核中特殊函数调用的处理程序"handler"。现在,sysdig 在进入、退出、进程调度这些事件的系统调用上注册了tracepoints,也即Sysdig-probe 的工作内容。Sysdig-probe对这些事件的处理程序"handler"极其简单,它仅仅复制了事件的详细信息到一个共享缓存区中,并对其编码以供后面使用。让"handler"如此简单的一个重要原因就是性能考虑,因为原始的内核执行程序会被“冻结”直到"handler"返回。
(tracepoint 提供了一个钩子去调用一个函数(称为probe,也即探针)。当一个tracepoint 被probe 连接上时便启动了,每次tracepoint 被执行的时候,probe 这个函数便会在调用方的执行上