ELK Packetbeat 部署指南(15th)

网友投稿 1106 2023-02-12

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

ELK Packetbeat 部署指南(15th)

Packetbeat 是一个实时网络数据包分析工具,与elasticsearch一体来提供应用程序的监控和分析系统。

Packetbeat可以帮助我们快速发现后端应用程序的问题,如bug或性能问题等等,修复排除故障也很快捷。

Packetbeat目前支持的协议有:

Packetbeat可以将相关事务直接插入到elasticsearch或redis(不推荐)或logstash。

Packetbeat可以运行在应用服务器上或者独自的服务器。当运行在独自服务器上时,需要从交换机的镜像端口或者窃听设备上获取网络流量。

对第七层信息解码后,Packetbeat关联与请求相关的响应,称之为事务。每个事务,Packetbeat插入一个json格式文档到elasticsearch。然后可通过kibana进行分析展示。

安装

先配置beats yum 源,参见前文。

1
# yum install packetbeat

配置

选择要从哪个网卡嗅探网络通讯,默认是所有的网络接口。

1
2
3
4
interfaces:
# Select on which network interfaces to sniff. You can use the "any"
# keyword to sniff on all connected interfaces.
device:any

在协议部分,配置端口以便Packetbeat找到每个端口对应的协议。如果使用非标准端口,需要添加上。多个端口以逗号分隔。

定义elasticsearch服务

加载elasticsearch索引模板

加载索引模板,以便elasticsearch知道哪些字段该以何种方式进行分析。

启动服务

1
# /etc/init.d/packetbeat start

查看数据

加载kibana Packetbeat的仪表盘

这个在前面的文章中,有加载过。这里不再重复加载。

配置选项

beats公用的配置选前文有说的。下面说说Packetbeat自有的配置项:Interfaces、Protocols、Processes(可选)。

interfaces

interfaces 部分配置嗅探器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Select the network interfaces to sniff the data. You can use the "any"
# keyword to sniff on all connected interfaces.
interfaces:
# On which device to sniff
device:any
# The maximum capture size of a single packet.
snaplen:1514
# The type of the sniffer to use
type:af_packet
# The size of the sniffing buffer
buffer_size_mb:100

device

从哪个网络接口捕获通讯。指定的设备自动设置为混杂模式,这意味着Packetbeat可以从同一个LAN捕获其它主机的流量。

1
2
interfaces:
device:eth0

查看可用设备,可以使用下面的命令:

1
2
3
4
5
6
# packetbeat -devices
0:eth0(No description available)
1:eth1(No description available)
2:usbmon1(USB bus number1)
3:any(Pseudo-device that captures on all interfaces)
4:lo(No description available)

device可以指定为上述返回列表的索引,如

1
2
interfaces:
device:0

表示是eth0。这对于设备名称很长的情况下非常有用咯。

snaplen

捕获包的最大大小。默认65535。足够应付所有网络和接口类型。如果嗅探物理网络接口,该值设置为MTU大小。对于虚拟接口,还是最好使用默认值。

1
2
3
interfaces:
device:eth0
snaplen:1514

type

Packetbeat 支持下面的嗅探器类型:

pcap, 使用libpcap 库,可工作在大多数平台上,但是不是最快的选项。af_packet, 使用 memory-mapped 嗅探。比 libpcap 快且不需要kernel模块,Linux特定的。pf_ring, 使用 ntop.org 项目。此设置提供了最好的嗅探速度,但是需要一个kernel模块,Linux特定的。

默认的嗅探器类型是pcap。

1
2
3
interfaces:
device:eth0
type:af_packet

在Linux上,如果想优化Packetbeat耗CPU占用率,建议使用 af_packet 和 pf_ring 选项。

如果使用 af_packet, 可以通过下面选项调整行为:

buffer_size_mb

内核和用户空间之间使用的最大共享内存缓冲区大小。默认30MB。缓冲区越大,CPU使用率越低,但是会消耗更多内存。只对af_packet 有效。

1
2
3
4
interfaces:
device:eth0
type:af_packet
buffer_size_mb:100

此设置是禁用自动生成的BPF过滤器。如果使用此设置,你需要保持BPF过滤器与协议部分定义的端口同步。

Protocols和Processes配置项,下文再说了。

上一篇:ELK Packetbeat 协议和进程配置项(16th)
下一篇:Linux命令缩小js、css文件大小(YUI)
相关文章

 发表评论

评论列表