背景介绍
公司业务系统做优化改造,同时为了能够实现全链路监控,需收集所有业务系统之间的调用日志。
数据情况:每天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是提供给数仓使用