数据库审计一(ELK结合packetbeat分析)

一、介绍

packetbeat是一个实时的网络数据包分析器,可以使用Elasticsearch提供应用程序监控和性能分析系统。packetbeat可通过提供你的网络服务器之间的可见性。

packetbeat通过捕捉你的应用服务器之间的网络流量,解码的应用层协议(HTTP,mysql,redis等等),将请求与响应相关联,并记录每个事务的字段。

packetbeat可以帮助您轻松地通知你的后端应用程序的问题,如错误或性能问题进行故障排查,而且他们因此更快的进行问题定位。

packetbeat探嗅服务器之间的流量,动态分析的应用层协议,并将消息关联到事务中。目前packetbeat支持以下协议:

ICMP (v4 and v6)

DNS

HTTP

AMQP 0.9.1

Cassandra

Mysql

PostgreSQL

Redis

Thrift-RPC

MongoDB

Memcache

TLS

packetbeat可以插入相关的事务直接进入到一个中央队列elasticsearch、redis或logstash进行创建。

packetbeat可以运行在与应用程序进程相同的服务器上,也可以在自己的服务器上单独运行。当在专用服务器上运行时,Packetbeat可以从交换机的镜像端口或窃听设备获得流量。在这样的部署中监视应用程序上的开销为零。详情请参阅设置流量捕获选项。在解码了第7层消息之后,请求与我们所称的事务中的响应相关联。对于每个事务,packetbeat将插入一个JSON文档到Elasticsearch。有关哪些字段被索引的详细信息,请参见导出字段部分。相同的ElasticSearch和Kibana实例用于分析Packetbeat收集的网络流量,可以用于分析Logstash收集的日志文件。通过这种方式,您可以在同一系统中进行网络通信和日志分析。

二、部署packetbeat及在elasticsearch中加载packetbeat索引模板

curl -L -O https://artifacts.elastic.co/downloads/beats/packetbeat/packetbeat-6.1.2-x86_64.rpm

rpm -ivh packetbeat-6.1.2-x86_64.rpm

egrep -v "#|^$" /etc/packetbeat/packetbeat.yml

packetbeat.interfaces.device: any

packetbeat.flows:

  timeout: 30s

  period: 10s

packetbeat.protocols:

- type: amqp

  ports: [5672]

- type: cassandra

  ports: [9042]

  include_authorities: true

  include_additionals: true

- type: http

  ports: [80, 8080, 8000, 5000, 8002]

- type: memcache

  ports: [11211]

- type: mysql

  ports: [3306]

- type: pgsql

  ports: [5432]

- type: redis

  ports: [6379]

- type: thrift

  ports: [9090]

- type: mongodb

  ports: [27017]

- type: nfs

  ports: [2049]

- type: tls

  ports: [443]

setup.template.settings:

  index.number_of_shards: 3

setup.kibana:

output.elasticsearch:

  hosts: ["172.29.36.187:9200"]

开启packetbeat服务:

service packetbeat start

创建/etc/yum.repos.d/elasticsearch.repo,并添加如下内容:

[elasticsearch-6.x]

name=Elasticsearch repository for 6.x packages

baseurl=https://artifacts.elastic.co/packages/6.x/yum

gpgcheck=1

gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch

enabled=1

autorefresh=1

type=rpm-md

通过yum源安装elasticsearch

yum install elasticsearch

配置/etc/elasticsearch/elasticsearch.yml中相关参数

path.data: /home/elasticsearch

network.host: 172.29.36.187

开启elasticsearch服务

/etc/init.d/elasticsearch start

在Elasticsearch中索引模板用于定义设置和映射,这些设置和映射决定如何分析字段。

Packetbeat的推荐索引模板文件是由Packetbeat包安装的。如果您接受packetbeat.yml配置文件中的默认配置,则Packetbeat在成功连接到elasticsearch之后将自动加载模板。如果模板已经存在,除非您配置Packetbeat否则它不会被覆盖。 可以通过在Packetbeat配置文件中配置模板加载选项来禁用自动加载模板或加载自定义的模板。 还可以设置选项以更改索引和索引模板的名称。 

注:加载索引模板需要连接到Elasticsearch。如果输出是Logstash,则必须手动加载模板。 

默认情况如果启用了Elasticsearch输出,Packetbeat会自动加载推荐的模板文件fields.yml。可以将packetbeat.yml配置文件中的默认值更改为:

setup.template.name: “packetbeat"

setup.template.fields: "/etc/packetbeat/fields.yml"

如果模板已经存在,它不会覆盖配置packetbeat

覆盖现有模板

setup.template.overwrite:true

禁用自动模板加载

setup.template.enabled:false

手动加载模板(代替方法) 如果运行PacketBate的主机没有与Elasticsearch的直接连接,则可以将索引模板导出到文件中,将其移动到已经连接性的机器上,然后手动安装该模板。

packetbeat export template > packetbeat.template.json

curl -XDELETE 'http://172.29.36.187:9200/packetbeat-*'

curl -XPUT -H 'Content-Type: application/json' 'http://172.29.36.187:9200/_template/packetbeat' -d@paacketbeat.template-es.json

{"acknowledged":true}

curl -XGET 'http://172.29.36.187:9200/packetbeat-*/_search?pretty'

三、部署kibana及相关配置

创建/etc/yum.repos.d/kibana.repo,并添加如下内容:

[kibana-5.x]

name=Kibana repository for 5.x packages

baseurl=https://artifacts.elastic.co/packages/5.x/yum

gpgcheck=1

gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch

enabled=1

autorefresh=1

type=rpm-md

通过yum源安装kibana

yum install kibana

配置/etc/kibana/kibana.yml文件中的如下参数

server.host: “172.29.36.187"

elasticsearch.url: "http://172.29.36.187:9200”

开启kibana服务

/etc/init.d/kibana start

Packetbeat附带了例如Kibana仪表板、可视化和搜索Kibana中的Packetbeat数据。在使用仪表板之前,您需要创建索引模式packetbeat-*,并将仪表板加载到Kibana。为此您可以运行安装命令(如这里所述),也可以在packetbeat.yml配置文件中配置仪表板加载。

# packetbeat setup --dashboards

Loaded dashboards

kibana效果展示如下

使用nginx访问,添加kibana-nginx.conf配置如下内容:

worker_processes  1;

events {

    worker_connections  1024;

}

http {

    include       mime.types;

    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    server {

        listen       80;

        server_name  localhost;

        auth_basic "Restricted Access";

        auth_basic_user_file /usr/local/openresty/nginx/conf/htpasswd.users;

         location / {

              proxy_pass http://172.29.36.187:5601;

              proxy_set_header Upgrade $http_upgrade;

              proxy_set_header Connection 'upgrade';

              proxy_set_header Host $host;

              proxy_cache_bypass $http_upgrade;

         }

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   html;

        }

    }

}

参考链接:

Packetbeat quick start: installation and configuration | Packetbeat Reference [8.15] | Elastic

Configure traffic capturing options | Packetbeat Reference [master] | Elastic

Q&A

启elasticsearch报错 elasticsearch 5.6.6版本

[2] bootstrap checks failed

[1]: max number of threads [1024] for user [elasticsearch] is too low, increase to at least [2048]

[2]: system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk

解决:

在elasticsearch.yml中配置bootstrap.system_call_filter为false,注意要在Memory下面:

bootstrap.memory_lock: false

bootstrap.system_call_filter: false

编辑limits.conf 添加类似如下内容

vi /etc/security/limits.conf

添加如下内容:

* soft nofile 65536

* hard nofile 131072

* soft nproc 2048

* hard nproc 4096

对于第二条错误同意需要切换到root用户,进入limits.d目录下修改配置文件。

vi /etc/security/limits.d/90-nproc.conf

修改如下内容:

* soft nproc 1024

#修改为

* soft nproc 2048

第三条错误需要切换到root用户修改配置sysctl.conf

vi /etc/sysctl.conf

添加下面配置:

vm.max_map_count=655360

并执行命令:

sysctl -p重新启动elasticsearch,即可启动成功。

  • 18
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答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进行网络流量分析可以帮助用户更好地了解服务器和客户端之间的网络通信情况,发现潜在的问题和瓶颈,并及时采取措施进行优化。同时,这种方式也能够提高运维人员的效率,减少故障排查的时间和成本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值