在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
Logstash开发采集上亿级别数据,需求属于日志采集的范畴,Logstash本身不支持反序列化功能,需要自定义开发ruby插件来支持,使用MLSQL结合UDF的方式进行流式处理。MLSQL写入hdfs会产生大量的小文件,需要单独开发合并文件的功能,写入es的数据是需要数仓结合其他业务数据进行建模,用离线处理的方式。
开发背景:公司业务系统做优化改造,同时为了能够实现全链路监控需收集所有业务系统之间的调用日志;数据情况:每天20亿以上;机器成本:3台kafka集群;2台logstash采集机器;技术:Java,MQ,MLSQL,Logstash。
采集流程:
MLSQL 消费MQ:原始日志产生侧通过protobuf进行序列化推送至mq,然后通过MLSQL进行反序列化并进行简单的etl处理后,再推送至MQ;
通过Logstash进行消费MQ:通过logstash消费经过MLSQL处理后的数据,并在这里通过ruby进行再次的加工处理,最后写入es和hdfs(一部分流程推送到es是业务侧使用,而另一部分写入hdfs是提供给数仓使用)
数仓建模:通过数仓建模,将最后的指标结果推送至es提供给业务侧使用,主要是借鉴这个需求讲解Logstash在实际场景中的使用以及优化。
Logstash开发流程:
1、确定日志格式
一个日志文件里肯定是不止一种日志格式,也有可能是标准化的格式,这里需要跟日志产生侧进行确认格式。
2、调试grok
确定好日志格式后,编写grok语法,然后进行调试,本人是通过kibana6自带的grok debug进行调试。结合该需求背景,最后经过logstash采集的时候,其实已经通过MLSQL进行了处理,最后Logstash消费的是格式就是一个json字符串,所以不需要grok语法。
3、调试ruby
结合该需求,使用ruby进行一些清洗逻辑
4、优化
优化工作在整个需求开发周期的比例较大,数据量较大资源较少,具体优化思路如下:
(1)MLSQL优化
这部分的优化工作主要是在反序化这块,剔除一部分无用字段,以及提前过滤一部分数据量,一部分注册UDF的代码:
(2)Kafka端优化
因kafka集群是集团共用,所以kafka端的优化其实只涉及到消费端的优化。这里只调节数据压缩、消费者线程数这两个参数。
(3)hdfs优化
logstash写入hdfs的部分不用使用自带的webhdfs插件,而是自定义的插件。
因自定义插件中涉及到文件锁的问题,会通过比对前后两次文件是否一致来进行文件最后的刷写,所以这里只能通过减少文件的更新频率来减少上下文的切换以及刷写操作
(4)ES优化
es部分的优化也只是涉及到写优化,比如批量写入、调大线程数、增加refresh间隔、禁止swapping交换内存、禁止refresh和replica操作,调大index buffer等操作。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
想成为Java架构师需要具备哪些能力?
从事Java开发的朋友都了解,Java开发工程师晋升路径的终点要么是CTO(偏管理的技术高层)、架构师(偏技术的技术高层)。而如果你想成为Java架构师需要具备哪些能力呢?
8149
2019-08-08 14:18:16
Java开发仓库管理系统设计应用有哪些意义?
Java开发仓库管理系统设计应用有哪些意义?仓库管理系统设计合理应用可以使仓库管理更加标准化、提高效率,节约成本、员工登录模块的实现;仓库管理系统实现、原材料管理模块、产品入库管理模块、产品出库管理模块的只能管理。
8622
2019-08-02 17:42:22
新手如何快速学习Java开发?Java学习经验分享
新手如何快速学习Java开发的经验分享。小编总结了学习Java开发的经验,首先要选择选择合适的工具;重实践,理论与实践结合;学习过程中善于总结;多交流学习虚心请教,并提高自己遇到困难解决问题的能力。
4562
2020-02-11 16:36:46
Java程序员为什么要学Tomcat架构?
相信对于许多Java程序员来说,Tomcat架构并不陌生,它几乎是每个Java初学者在入门之后必学的基础知识之一。那么,相信很多Java零基础小白都会有这样的疑问:Java程序员为什么要学Tomcat架构?理由其实很简单,Tomcat架构是目前JavaEE开发中最主流的服务器之一 。下面我们来看看学习Tomcat架构的具体原因。
4709
2020-06-18 17:38:57
Java编程在线学习靠谱吗?能学会吗?
在线学习Java的方式靠不靠谱主要看机构的课程,和个人的努力情况。费用、时间上有压力建议选择在线学习,但在线学习对自控能力要求更高,坚持看完整期课程需要自律。如果找到一家靠谱的在线学习平台课程内容有保障,那么学习的方向不会出错。
4044
2020-10-23 11:13:05