首页云计算 正文

ELK Packetbeat 部署指南

2024-11-19 5 0条评论
  1. 首页
  2. 证书相关
  3. ELK Packetbeat 部署指南

ELK Packetbeat 部署指南

发布日期:2017-05-15

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

Packetbeat通过嗅探应用服务器之间的网络通讯,来解码应用层协议类型如HTTP、MySQL、redis等等,关联请求与响应,并记录每个事务有意义的字段。

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

Packetbeat目前支持的协议有:

  • HTTP
  • MySQL
  • PostgreSQL
  • Redis
  • Thrift-RPC
  • MongoDB
  • DNS
  • Memcache

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找到每个端口对应的协议。如果使用非标准端口,需要添加上。多个端口以逗号分隔。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 protocols :    # Configure which protocols to monitor and on which ports are they    # running. You can disable a given protocol by commenting out its    # configuration.    http :      ports : [ 80 , 8080 , 8081 , 5000 , 8002 ]    memcache :      ports : [ 11211 ]    mysql :      ports : [ 3306 ]    redis :      ports : [ 6379 ]    pgsql :      ports : [ 5432 ]    thrift :      ports : [ 9090 ]

定义elasticsearch服务

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 output :    elasticsearch :      # Uncomment out this option if you want to output to Elasticsearch. The      # default is false.      enabled : true      # Set the host and port where to find Elasticsearch.      host : 192.168.1.42      port : 9200      # Uncomment this option and set it to true if you want to store the topology in      # Elasticsearch. Default behavior if this setting is left out of the      # config file is equivalent to setting “save_topology” to “false”      #save_topology: false

加载elasticsearch索引模板

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

1 # curl -XPUT ‘http://10.1.19.18:9200/_template/packetbeat’ -d@/etc/packetbeat/packetbeat.template.json

启动服务

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

在Linux上,可以指定任何的设备。当指定为any时,接口不会设置成混杂模式。

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

1 2 3 4 5 6 # packetbeat -devices 0 : eth0 ( No description available ) 1 : eth1 ( No description available ) 2 : usbmon1 ( USB bus number 1 ) 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, 使用 trustauth.cn 项目。此设置提供了最好的嗅探速度,但是需要一个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

with_vlans

Packetbeat 自动生成一个BPF来捕获已知协议的端口流量。 例如,配置HTTP 80 和 MySQL 3306,  Packetbeat 生成 BPF 过滤器如下: "port 80 or port 3306"。

然而,如果通讯包含VLAN标记,Packetbeat生成的过滤器将是无效的,因为offset通过四个字节移动的。为了解决这个问题,启用 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"。

可以使用 bpf_filter 覆盖生成的BPF 过滤器,如:

1 2 3 interfaces :    device : eth0    bpf_filter : “net 192.168.238.0/0 and port 80 and port 3306”

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

 

文章转载来自:trustauth.cn

上一篇:zabbix值匹配字符串str zabbix触发器函数(128)

下一篇:电脑如何关闭445端口,确保电脑安全

相关新闻

  • SSL证书对网站访问速度有影响吗
  • 个人隐私数据泄露有哪些危害?如何预防?
  • 部署SSL证书有哪些常见的错误
  • 国际证书、国产证书和国密证书
  • 游戏开发为什么离不开代码签名?
  • 僵尸网络攻击手法与防范方式
  • SSL证书助力保障网络数据安全
  • 网站加密与不加密区别
  • SSL证书有哪些类型和价格差异
  • ca机构颁发的证书包括那些内容呢?
文章版权及转载声明

本文作者:admin 网址:http://news.edns.com/post/113316.html 发布于 2024-11-19
文章转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码