企业中项目日志数较多 储存处理方式elk和mysql哪种方式更合适?

博主工作的一个项目里用了elk来存储用户操作日志,日志量大概是每天一千万左右的数据,最近服务器的磁盘被塞满了   本想将时间较长的数据删除掉   但当时删除总是出现版本冲突的错误

并且es在单个索引数据达到 亿级以上的时候查询时间也是不乐观的

于是乎博主花了点时间将es的日志数据全部查询出来    准备将这些数据包括以后的日志数据都存储到mysql中      博主的日志都是先全部存入kafka然后再通过logstash消费到es中,现改成用java程序消费日志数据存储mysql中

 由于mysql单表的数据查询极限在一千万左右,所以博主做的分表方式如下:

第一.每个月用三十张表存储数据  三十张表的数据存储位置规划是根据用户帐号的信息的hash得来,并且根据用户帐号和查询条件字段做了索引  这样的话 查询时可以大大提高效率  并且查询一个用户的操作记录也只需要查询一张表即可,不过由于是根据年月分表,那么如果跨月查询的话还是需要结合多张表查询    不过根据业务情况  大多出查询情况都是查询月份数据   所以这样做问题不大

当然有些朋友会说 为什么不用hive和hadoop呢?

由于业务上的需求   不适合用非实时性的存储方式  并且查询效率方面并不是很出色

总结来说  es和mysql 存储日志各有各的好处   es的缺点就是比较吃系统配置  语法相对sql而言较复杂(7.x以后或可以用sql插件使用sql查询)   分页查询相对而言比较麻烦, 优点就是查询速度较快,支持分词,性能较好 有比较多的周边组件

mysql的优缺点也很明显:免费  轻巧   当然啦  性能方面肯定不如大型数据库 

 

 所以呢    解决问题的办法很多  根据不同的情况去选择合适的,如果公司不缺钱 服务器有的是,可以考虑用elk弄一套日志收集系统  如果怕坑 怕麻烦  还是选择mysql分表 分库存储比较好 ,毕竟博主是掉了elk的坑里  

 

都看到这了  喜欢的话麻烦看官点个赞或者关注一下吧

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值