网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
type
- pcap:它使用 libpcap 库并适用于大多数平台,但它不是最快的选择,也是默认的选项。
- af_packet:它使用内存映射嗅探。此选项比 libpcap 更快,并且不需要内核模块,但它是特定于 Linux 的。
该选项也称为“内存映射嗅探”,它利用了 Linux 特定的 。对于专用服务器和在现有应用程序服务器上部署 Packetbeat 时,这可能是最佳嗅探模式。
它的工作方式是内核和用户空间程序都映射同一个内存区域,并且在这个内存区域中组织了一个简单的循环缓冲区。内核将数据包写入循环缓冲区,用户空间程序从中读取。poll 系统调用用于获取第一个可用数据包的通知,但剩余的可用数据包可以通过内存访问简单地读取。
可以进一步调整嗅探器以使用更多内存以换取更好的性能。循环缓冲区的大小越大,需要的系统调用就越少,这意味着消耗的 CPU 周期就越少。缓冲区的默认大小为 30 MB,但您可以像这样增加它:
packetbeat.interfaces.device: eth0
packetbeat.interfaces.type: af_packet
packetbeat.interfaces.buffer_size_mb: 100
在 Linux 上,如果您尝试优化 Packetbeat 的 CPU 使用率,我们建议您尝试该选项。
如果您使用嗅探器,您可以通过指定以下选项来调整其行为:
buffer_size_mb
在内核和用户空间之间使用的共享内存缓冲区的最大大小。更大的缓冲区通常会降低 CPU 使用率,但会消耗更多内存。此设置仅适用于 嗅探器类型。默认值为 30 MB。
packetbeat.interfaces。设备:eth0
packetbeat.interfaces。类型:af_packet
packetbeat.interfaces。buffer_size_mb:100
auto_promisc_mode
Packetbeat在启动时会自动将接口置于混杂模式。此选项不适用于接口设备。默认选项为 false,需要手动设置混杂模式。警告:在某些情况下(例如节拍崩溃),即使在节拍关闭后,混杂模式仍可保持启用状态。
packetbeat.interfaces.device: eth0
packetbeat.interfaces.type: af_packet
packetbeat.interfaces.buffer_size_mb: 100
packetbeat.interfaces.auto_promisc_mode: true
with_vlans
Packetbeat 会自动生成一个 ,用于仅捕获它希望找到已知协议的端口上的流量。例如,如果您为 HTTP 配置了端口 80,为 MySQL 配置了端口 3306,Packetbeat 会生成以下 BPF 过滤器:.
但是,如果流量包含 标记,则 Packetbeat 生成的过滤器无效,因为偏移量移动了四个字节。要解决此问题,您可以启用该选项,该选项会生成如下所示的 BPF 过滤器
bpf_filter
Packetbeat 会自动生成一个 ,用于仅捕获它希望找到已知协议的端口上的流量。例如,如果您为 HTTP 配置了端口 80,为 MySQL 配置了端口 3306,Packetbeat 会生成以下 BPF 过滤器:.
packetbeat.interfaces.device: eth0
packetbeat.interfaces.bpf_filter: "net 192.168.238.0/0 and port 80 or port 3306"
注意:设置此项将会禁用 BPF 过滤器的自动生成。如果您使用此设置,您有责任使 BPF 过滤器与本节中定义的端口保持同步。
internal_networks
如果指定了该选项,则在监控网络分路器或镜像端口时,Packetbeat 将尝试对与网络边界相关的不打算用于此主机的流量的网络方向性进行分类。中指定的任何 CIDR 块都被视为外围的内部,而落在这些 CIDR 块之外的任何 IP 地址都被视为外部。
当 Packetbeat 在位于网络边界(例如防火墙或 VPN)的设备上运行时,这很有用。请注意,这只影响网络流量的方向性如何分类。
ignore_outgoing
多台机器删除重复项
Flow
enabled
如果设置为 true,则启用流支持。设置为 false 以禁用网络流支持,而无需删除或注释掉流部分。默认值是true。
timeout
超时配置流的生命周期。如果在超时时间窗口内没有收到流的数据包,则流被终止并报告。默认值为 30 秒。
period
配置报告间隔。所有流量都在同一时间点报告。可以通过将值设置为 -1 来禁用定期报告。如果禁用,流在超时后仍会报告。默认值为 10 秒。
fields
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
系化!**
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新