JAVA项目中的日志分析
目录
一、日志收集
1.1 最简单的ELK
技术:logstash+elasticsearch+kibana
ELK搭建日志收集虽然简单,但不适用用正规开发,它耗资源较大,运行占用CPU和内存高。另外没有消息队列缓存,存在数据丢失隐患。
1.2 加强版EFK
技术:filebeat+kafka+logstash+elasticsearch+kibana
由于方案一简单但缺少队列缓存、内存损耗大等缺陷,所以我们引入了filebeat轻量级的日志收集组件负责从各个服务器收集日志文件数据推送给kafka。kafka强大的数据处理能力、队列缓存能力、推拉式的消费机制保障了数据的高效、一致。最后由Logstash消费kafka数据保存至elasticsearch。整条链路相对完美。
1.3 kafka系列组件
kafka connect 做日志处理的思想最早是18年初做罗湖数据处理的时候想用的,限于当时公开资料太少,浅尝即停。2年过去了,这块在中国市场应该相对成熟了吧。先不深入介绍,晚两天补充完整。
kafka connect+kafka core+kafka Streams
二、日志分析
日志收集过程在前面已经介绍过了,方案虽各有千秋,但总的来说离不开两大组件kafka+elasticsearch.一个管过程一个管存储。下面就具体介绍下这两大组件以及日志能带给我们的改变。
2.1 kafka
2.2 elasticsearch
2.3 项目中的日志使用