packetbeat配置分析,花了19998买的学习教程

63 阅读5分钟

该选项也称为“内存映射嗅探”,它利用了 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

您可以指定用于向输出添加附加信息的可选字段。例如,您可以添加可用于过滤日志数据的字段。字段可以是标量值、数组、字典或这些的任何嵌套组合。默认情况下,您在此处指定的字段将分组在输出文档中的子字典下。要将自定义字段存储为顶级字段,请将选项设置为 true。如果在通用配置中声明了重复字段,则其值将被此处声明的值覆盖。

fields_under_root

如果此选项设置为 true,则自定义 将作为顶级字段存储在输出文档中,而不是分组在子字典下。如果自定义字段名称与 Packetbeat 添加的其他字段名称冲突,则自定义字段会覆盖其他字段。

tags

将与协议事件一起发送的标签列表。此设置是可选的。

processors

应用于协议生成的数据的处理器列表。

有关在配置中指定处理器的信息,请参阅​

keep_null

img img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!