packetbeat配置分析

简介: packetbeat配置分析

packetbeat配置分析

packetbeat

interface

device

要从中捕获流量的网络设备。指定的设备会自动设置为混杂模式,这意味着 Packetbeat 可以捕获来自同一 LAN 上其他主机的流量。

当接口为any时,不会为混杂模式。

支持设备编号,可以通过packetbeat devices列出所有设备来选择相应的编号。

也可以通过配置default_route、default_route_ipv4、default_route_ipv6这会将捕获设备设置为与 Packetbeat 启动时识别的第一个默认路由相关联的设备。default_route将从 IPv4 或 IPv6 中选择第一个默认路由,并优先选择 IPv4 路由,而default_route_ipv4只会default_route_ipv6从指定的设备中进行选择。选择的接口在选择后不会改变。

snaplen

要捕获的数据包的最大大小。默认值为 65535,对于几乎所有网络和接口类型都足够大。如果您嗅探物理网络接口,最佳设置是 MTU 大小。但是,在虚拟接口上,接受默认值会更安全。

type

  • pcap:它使用 libpcap 库并适用于大多数平台,但它不是最快的选择,也是默认的选项。
  • af_packet:它使用内存映射嗅探。此选项比 libpcap 更快,并且不需要内核模块,但它是特定于 Linux 的。

af_packet选项也称为“内存映射嗅探”,它利用了 Linux 特定的 特性。对于专用服务器和在现有应用程序服务器上部署 Packetbeat 时,这可能是最佳嗅探模式。

它的工作方式是内核和用户空间程序都映射同一个内存区域,并且在这个内存区域中组织了一个简单的循环缓冲区。内核将数据包写入循环缓冲区,用户空间程序从中读取。poll 系统调用用于获取第一个可用数据包的通知,但剩余的可用数据包可以通过内存访问简单地读取。

可以进一步调整嗅探器af_packet以使用更多内存以换取更好的性能。循环缓冲区的大小越大,需要的系统调用就越少,这意味着消耗的 CPU 周期就越少。缓冲区的默认大小为 30 MB,但您可以像这样增加它:

packetbeat.interfaces.device: eth0
packetbeat.interfaces.type: af_packet
packetbeat.interfaces.buffer_size_mb: 100

在 Linux 上,如果您尝试优化 Packetbeat 的 CPU 使用率,我们建议您尝试该af_packet选项。

如果您使用af_packet嗅探器,您可以通过指定以下选项来调整其行为:

buffer_size_mb

在内核和用户空间之间使用的共享内存缓冲区的最大大小。更大的缓冲区通常会降低 CPU 使用率,但会消耗更多内存。此设置仅适用于 af_packet嗅探器类型。默认值为 30 MB。

packetbeat.interfaces。设备:eth0 
packetbeat.interfaces。类型:af_packet 
packetbeat.interfaces。buffer_size_mb:100

auto_promisc_mode

Packetbeatauto_promisc_mode在启动时会自动将接口置于混杂模式。此选项不适用于any接口设备。默认选项为 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 会自动生成一个 BPF,用于仅捕获它希望找到已知协议的端口上的流量。例如,如果您为 HTTP 配置了端口 80,为 MySQL 配置了端口 3306,Packetbeat 会生成以下 BPF 过滤器:"port 80 or port 3306".

但是,如果流量包含VLAN 标记,则 Packetbeat 生成的过滤器无效,因为偏移量移动了四个字节。要解决此问题,您可以启用该with_vlans选项,该选项会生成如下所示的 BPF 过滤器"port 80 or port 3306 or (vlan and (port 80 or port 3306))"

bpf_filter

Packetbeat 会自动生成一个 BPF,用于仅捕获它希望找到已知协议的端口上的流量。例如,如果您为 HTTP 配置了端口 80,为 MySQL 配置了端口 3306,Packetbeat 会生成以下 BPF 过滤器:"port 80 or port 3306".

packetbeat.interfaces.device: eth0
packetbeat.interfaces.bpf_filter: "net 192.168.238.0/0 and port 80 or port 3306"

注意:设置此项将会禁用 BPF 过滤器的自动生成。如果您使用此设置,您有责任使 BPF 过滤器与本protocols节中定义的端口保持同步。

internal_networks

如果internal_networks指定了该选项,则在监控网络分路器或镜像端口时,Packetbeat 将尝试对与网络边界相关的不打算用于此主机的流量的网络方向性进行分类。中指定的任何 CIDR 块都internal_networks被视为外围的内部,而落在这些 CIDR 块之外的任何 IP 地址都被视为外部。

当 Packetbeat 在位于网络边界(例如防火墙或 VPN)的设备上运行时,这很有用。请注意,这只影响网络流量的方向性如何分类。

ignore_outgoing

多台机器删除重复项

Flow

enabled

如果设置为 true,则启用流支持。设置为 false 以禁用网络流支持,而无需删除或注释掉流部分。默认值是true。

timeout

超时配置流的生命周期。如果在超时时间窗口内没有收到流的数据包,则流被终止并报告。默认值为 30 秒。

period

配置报告间隔。所有流量都在同一时间点报告。可以通过将值设置为 -1 来禁用定期报告。如果禁用,流在超时后仍会报告。默认值为 10 秒。

fields

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

fields_under_root

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

tags

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

processors

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

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

keep_null

如果此选项设置为 true,则具有null值的字段将在输出文档中发布。默认情况下,keep_null设置为false

index

覆盖流事件发布到的索引。

相关文章
|
数据采集 缓存 监控
Apache Flume-案例-监控采集文件夹变化 (exec source)|学习笔记
快速学习 Apache Flume-案例-监控采集文件夹变化 (exec source)
Apache Flume-案例-监控采集文件夹变化 (exec source)|学习笔记
|
存储 Java 数据库连接
Apache IoTDB开发之Load External TsFile工具
加载外部 tsfile 工具允许用户从正在运行的 Apache IoTDB 实例加载 tsfiles、删除 tsfile 或将 tsfile 移动到目标目录。默认情况下,将创建架构。当tsfile对应的存储组不存在时,用户可以通过第四个参数设置存储组的级别。默认情况下,它将使用 中设置的存储组级别。如果该文件对应的文件存在,则会加载到 Apache IoTDB 的数据目录和引擎中。
171 0
|
存储 Kubernetes Cloud Native
K8S Ingress 之 Apache APISIX 解析
在云原生时代,基于主流的云操作系统 Kubernetes ,其常见的外部流量访问方式主要基于以下 NodePort、LoadBalancer 以及 Ingress 等。
1022 0
|
大数据 开发者
Sparkstreaming 案例 -Netcat | 学习笔记
快速学习 Sparkstreaming 案例 -Netcat
Sparkstreaming 案例 -Netcat | 学习笔记
|
存储 JSON 自然语言处理
Elasticsearch Mapping parameters(主要参数一览)
Elasticsearch Mapping parameters(主要参数一览)
Elasticsearch Mapping parameters(主要参数一览)
|
分布式计算 监控 Spark
X-Pack Spark 监控指标详解
概述 本文主要介绍X-Pack Spark集群监控指标的查看方法。Spark集群对接了Ganglia和云监控。下面分别介绍两者的使用方法。 Ganglia Ganglia是一个分布式监控系统。 Ganglia 入口 打开Spark集群依次进入:数据库连接>UI访问>详细监控UI>Ganglia。
1515 0
如何使用X-Pack Spark的YarnUI、SparkUI、Spark日志、任务运行状况的分析
概述 X-Pack Spark目前是通过Yarn管理资源,在提交Spark 任务后我们经常需要知道任务的运行状况,例如在哪里看日志、怎么查看每个Executor的运行状态、每个task的运行状态,性能瓶颈点在哪里等信息。
3694 0
|
监控 Shell 开发工具
zabbix自定义KEYUserParameter
[root@yunwei-ceshi etc]# cd /usr/local/zabbix/etc/ [root@yunwei-ceshi etc]# pwd /usr/local/zabbix/etc [root@yunwei-ceshi etc]# ls process_sh zabbix_agentd.
1211 0
|
NoSQL 关系型数据库 MySQL