ELK Packetbeat配置使用及MySQL抓包审计

一、Packetbeat 概述

Packetbeat 轻量型网络数据采集器

用于深挖网线上传输的数据,了解应用程序动态。Packetbeat 是一款轻量型网络数据包分析器,能够将数据发送至 Logstash 或 Elasticsearch等。

目前,Packetbeat支持以下协议:

  • ICMP (v4 and v6)
  • DNS
  • HTTP
  • AMQP 0.9.1
  • Cassandra
  • Mysql
  • PostgreSQL
  • Redis
  • Thrift-RPC
  • MongoDB
  • Memcache
  • TLS

二、Packetbeat 安装配置

1、rpm安装:

sudo yum install libpcap
curl -L -O https://artifacts.elastic.co/downloads/beats/packetbeat/packetbeat-6.4.2-x86_64.rpm
sudo rpm -vi packetbeat-6.4.2-x86_64.rpm

2、配置

配置文件/etc/packetbeat/packetbeat.yml。还有一个完整的示例配置文件,/etc/packetbeat/packetbeat.reference.yml其中显示了所有未弃用的选项。

vim /etc/packetbeat/packetbeat.yml 配置数据接收端,其他配置先默认即可

#============================== Kibana 
setup.kibana:
  host: "127.0.0.1:5602"  # kibana地址
  username: "elastic"     # kibanna账户密码,根据场景填写
  password: "elastic"
#-------------------------- Elasticsearch output 
output.elasticsearch:
  hosts: ["127.0.0.1:9200"]  # es地址
  username: "elastic"        # es账户密码,根据场景填写
  password: "elastic"

3、配置模板加载

第一次 启动beat前需要在es里load 对应的template

git clone https://github.com/elastic/packetbeat-dashboards
cd packetbeat-dashboards
sh load.sh -url http://你的IP地址:9200/ -user elastic:elastic

如果先启动了packetbeat,需要删掉packetbeat的es索引及Index Patterns,再加载模块操作。

Loading dashboards to http://你的IP地址:9200/ in .kibana
{"error":"Incorrect HTTP method for uri [//.kibana] and method [PUT], allowed: [POST]","status":405}No handler found for uri [//.kibana/_mapping/search] and method [PUT]Loading search Cache-transactions:
No handler found for uri [//.kibana/search/Cache-transactions] and method [PUT]
Loading search DB-transactions:
No handler found for uri [//.kibana/search/DB-transactions] and method [PUT]
......

这时,kibana上还看不到Dashboard,启动packetbeat后,就可以看的了

/etc/init.d/packetbeat start 

overview

三、基于packetbeat采集MySQL语句,操作审计

packetbeat通过MySQL监听端口、即可进行抓包统计,dashboard可以展示以下等信息:

  • SQL语句执行次数排名
  • SQL执行响应时间排名

mysql

vim /etc/packetbeat/packetbeat.yml

- type: mysql
  ports: [3307, 3346]

配置MySQL监听端口,重启即可

四、packetbeat 配置优化

以上基本使用没有问题,但是默认配置,数据量太大了。几台机器一天好几百G的数据,而且这里主要做MySQL审计,所以很多地方可以优化、定制一下

1、设置流量捕获选项

  1. 嗅探选项配置

目前,Packetbeat有多种流量捕获选项:

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

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

它的工作方式是内核和用户空间程序映射相同的内存区域,并在此内存区域中组织一个简单的循环缓冲区。

af_packet嗅探器可以进一步调整使用,以换取更多的内存以提高性能。循环缓冲区的大小越大,所需的系统调用越少,这意味着消耗的CPU周期越少。缓冲区的默认大小为30 MB

  1. ignore_outgoing

如果ignore_outgoing启用该选项,Packetbeat将忽略从运行Packetbeat的服务器发起的所有事务。

当两个Packetbeat实例发布相同的事务时,这很有用。要删除重复项,可以packetbeat.ignore_outgoing在其中一台服务器上启用该选项。

packetbeat.interfaces.device: any
packetbeat.interfaces.snaplen: 1514
packetbeat.interfaces.type: af_packet
packetbeat.interfaces.buffer_size_mb: 100

packetbeat.ignore_outgoing: true

2、设置流以监控网络流量

要配置流,请使用 配置文件packetbeat.yml中的packetbeat.flows选项。默认情况下启用流量。如果配置文件中缺少此部分,则禁用网络流。

packetbeat.flows:

这里不需要,关闭后,数据量减少70倍左右

3、指定要监视的事务协议

先介绍下常用协议选项,以下选项适用于所有协议:

  • enabled

启用的设置是布尔设置,用于启用或禁用协议,而无需注释掉配置节。如果设置为false,则禁用协议。 默认值是true。

  • send_request

如果启用此选项,请求(request字段)的原始消息将发送到Elasticsearch。默认值为false。当您要索引整个请求时,此选项很有用。请注意,对于HTTP,默认情况下不包括正文,只包含HTTP标头。

  • send_response

如果启用此选项,则响应(response字段)的原始消息将发送到Elasticsearch。默认值为false。如果要索引整个响应,此选项很有用。请注意,对于HTTP,默认情况下不包括正文,只包含HTTP标头。

  • processors

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

有关在配置中指定处理器的信息,请参阅 [筛选并增强导出的数据]。

4、过滤并增强导出的数据

您可以在配置中定义处理器,以便在将事件发送到配置的输出之前处理事件。

如果要删除所有成功的事务,可以使用以下配置:

processors:
 - drop_event:
     when:
        equals:
           http.response.code: 200
or

or运算符接收条件列表。

例如,要配置条件 http.response.code = 304 OR http.response.code = 404

or:
  - equals:
      http.response.code: 304
  - equals:
      http.response.code: 404

如题,这里做MySQL审计,一般增删改是比较需要的,二查询操作可以先过滤掉,可以如下实现:

- type: mysql
  ports: [3307, 3346]
  processors:
  - drop_event:
      when:
        or:
          - equals:
             method: SELECT
          - equals:
             method: SHOW
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: 使用Packetbeat可以分析网络包流量,它是一个轻量级的网络数据包分析工具,可以实时监控网络流量并提供详细的统计信息。Packetbeat可以捕获各种协议的数据包,包括HTTP、MySQL、DNS等,同时也支持自定义协议的解析。通过分析Packetbeat捕获的数据包,可以了解网络应用程序的性能瓶颈、网络安全问题等,从而优化网络性能和提高安全性。在ELK(Elasticsearch、Logstash、Kibana)堆栈中,Packetbeat可以将捕获的数据包发送到Logstash进行处理,并将结果存储在Elasticsearch中,最后通过Kibana进行可视化展示和分析。 ### 回答2: Packetbeat是一款实时网络包分析工具,可以对网络流量进行监控、分析和记录。而使用Packetbeat来分析ELK网络包流量,可以获得以下好处: 1. 实时监控网络流量 Packetbeat可以实时监控网络流量,从而及时发现网络故障和安全问题。这可以帮助ELK及时发现应用程序或系统的问题,从而避免了服务中断和安全漏洞。 2. 精确的流量分析 Packetbeat可以识别各种网络流量协议和应用程序,从而分析网络流量中的详细内容。这些信息可以帮助ELK更好地了解应用程序的运行状态,从而更好地监控和优化服务。 3. 可视化网络分析 Packetbeat可以将网络流量数据转换为可视化的图表和图形。这可以帮助ELK更直观地理解网络流量的情况,并且更好地解释结果。同时,可视化也可以使分析结果更具说服力,更易于分享给其他人。 使用Packetbeat来分析ELK网络包流量,需要首先配置Packetbeat的捕获规则,以便捕获需要分析的网络流量。然后,需要使用Packetbeat来监控和分析捕获的流量数据,并将结果发送到ELK中进行存储和可视化分析。最后,可以使用ELK提供的分析工具来对Packetbeat收集的网络流量数据进行详细的分析和可视化展示。 总之,Packetbeat是一款强大的网络包分析工具,可以帮助ELK实时监控网络流量,并获得深入的网络分析信息。这可以使ELK更好地了解应用程序的运行状态,从而更好地优化服务和提高效率。 ### 回答3: elk是由Elasticsearch、Logstash和Kibana三部分组成的一套开源数据处理、搜索引擎和可视化工具,它能够帮助用户快速高效地存储、搜索和分析大规模数据。而packetbeat是一款轻量级的网络数据包分析器,它能够实时抓取服务器和客户端之间的网络数据、分析流量,然后将其发送到elk中进行统计和可视化。 使用packetbeat进行网络流量分析的主要过程如下: 第一步:安装和配置packetbeat 用户需要先在自己的服务器上安装packetbeat,并对其进行基本的配置,比如指定监听的网络接口、设置协议过滤规则等。packetbeat的安装和配置可参考官方文档。 第二步:将数据发送到elk packetbeat能够将抓取到的网络数据直接发送到elasticsearch中,并按照预设的格式进行索引。用户需要在packetbeat的配置文件中指定elasticsearch的地址、用户名和密码等信息,以便packetbeat能够将数据正确地发送到elk中。 第三步:在kibana中进行数据可视化和分析 在将数据发送到elk后,用户可以通过kibana来对这些数据进行可视化和分析,比如查看网络流量的变化趋势、统计不同协议的使用情况、分析数据包大小和传输速率等。用户需要在kibana中创建相应的dashboard和visualization,以便能够方便地查看和统计数据。 总的来说,使用packetbeat和elk进行网络流量分析可以帮助用户更好地了解服务器和客户端之间的网络通信情况,发现潜在的问题和瓶颈,并及时采取措施进行优化。同时,这种方式也能够提高运维人员的效率,减少故障排查的时间和成本。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值