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

  • 相关阅读:
    我的2015年ccf的解答
    VS中出现“链接器工具错误,XXX工具模块对于SAFESEH映像是不安全的”的解决方法
    记录每次运行的时刻的小程序
    c语言中strcpy与strlen函数对字符串最后的''的处理
    windows8.1的启动目录的路径
    使用feof()判断文件结束时会多输出内容的原因
    [转]android sqlite db-journal文件产生原因及说明
    安卓备份 To Do(待办事项)的数据库
    下载YouTube视频的方法
    Firefox及我使用的firefox扩展
  • 原文地址:https://www.cnblogs.com/mike-tao/p/7373997.html
Copyright © 2011-2022 走看看