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
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页