zoukankan      html  css  js  c++  java
  • 使用elk beats的packetbeat 来进行mysql的网络抓包审计

    由于之前使用插件类型的方式来进行了mysql的审计,一是有两例mysql的实例崩溃,二是对性能影响比较大,故在寻求其他的解决方案。
    后来发现elk beats项目,便拿来试了下,后上线了200个实例,运行了2个月,没有出现问题,故和大家简单分享一下,如需详细了解的话,可以查看官方文档。

    packetbeat 支持多种协议的网络抓包,可以将抓包结果发送到es存储起来,非常方便。

    性能测试:

    24核 64G单机mysql sysbench测试:

    查询写入性能影响约5%,无磁盘io影响,网络流量相比原来上升20%,beat进程cpu占用单核40%-70%

    缺点:

    1.内容因为是网络抓包故没有账号的信息 

    2.数据库库表定位字段path会有信息丢失的情况,估计和使用的orm框架有关

    官方地址:
    beats项目:https://www.elastic.co/products/beats
    packetbeat子项文档:https://www.elastic.co/guide/en/beats/packetbeat/current/index.html

    1.rpm安装:
    centos:

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

    2.编辑配置文件:

    vim /etc/packetbeat/packetbeat.yml
    packetbeat.protocols.mysql:
    ports: [3306,3307,3308,3309]
    output.elasticsearch:
    hosts: ["es地址:端口"]
    index: "mysqlaudit-%{+yyyy.MM.dd}"
    name: 1.1.1.1

    注:
    - index如果不设置,在es中的默认名称是packetbeat-2017.08.16 这样,若要设定自己需要名称,需要改成 customer_name-%{+yyyy.MM.dd},这样也能和默认一样保持每天一个索引文件
    - name话 不设置的话是机器的hostname,推荐设置成ip 这样不同机器 127.0.0.1的抓包 也可以进行分析,在es里的对应字段是 beat.name


    3.启动packetbeat:
    !!重要!!
    启动第一个beat前需要在es里load 对应的template。后面的beat启动就不需要了:

    curl -H 'Content-Type: application/json' -XPUT 'http://es地址:端口/_template/packetbeat' -d@/etc/packetbeat/packetbeat.template.json

    !!如果忘记这一步,先到es里把当天的index删除,再重启启动beat!!

    !!如果自定义了index名称,需要修改/etc/packetbeat/packetbeat.template.json 中最后一行的对应的名称再post
    启动:

    /etc/init.d/packetbeat start 或 systemctl start packetbeat

    4.可选:导入dashboard
    如果需要官方制作的dashboard图,可以导入图的模板:

    /usr/share/packetbeat/scripts/import_dashboards -es es地址:端口 -i mysqlaudit-*

    注:如果是自定义的index name 则要加上-i参数,否则图用的默认index为packetbeat-*


    5.打开kibana -> Management -> Index Pattern -> +Add New -> packetbeat/自定义名称-* -> 勾选Index contains time-based events -> 选择@timestamp -> Create

    示意图:

    6.单条数据内容:

    7.index 和 dashboard

  • 相关阅读:
    JDBC07-----代码重构之封装DBCUtils工具类
    JDBC06-----数据库连接池与配置文件
    JDBC05----事务与批处理
    JDBC04----预编译语句介绍
    JDBC03----DAO思想
    数据的序列化,持久化,归档
    苹果官方的图标大小的调整
    UIColletionView 的属性与常用方法介绍
    IOS学习笔记25—HTTP操作之ASIHTTPRequest
    IOS UI segmentedControl UISegmentedControl 常见属性和用法
  • 原文地址:https://www.cnblogs.com/mike-tao/p/7373997.html
Copyright © 2011-2022 走看看