使用elk beats的packetbeat 来进行mysql的网络抓…
2018-06-18 00:04:35来源:未知 阅读 ()
由于之前使用插件类型的方式来进行了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
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:生产环境MySQL优化
- PHP访问MySQL查询超时怎么办 2020-03-09
- MySQL中使用WHERE子句的方法 2019-10-25
- 关于laravel后台模板laravel-admin select框的使用详解 2019-10-08
- PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql 2019-09-23
- 使用 Shell 在多服务器上批量操作 2019-09-23
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash