经典的ELK套件的架构图如下:
首先梳理下上面架构图当中每个组件的应用和原理:
①、最开始的可以说是日志接入层,会以多种方式的日志的采集和汇聚,日志采集有多种框架进行采集和汇聚比较主流的是filebeats。
对日志的采集和汇聚的框架分类:
入侵的:在微服务里面日志框架进行配置apend然后发送到日志后台就可以了,http,tcp的append发送到日志后台就可以了。
非入侵:skywalking的进行链路采集,目前日志没有提供功能:但是可以改下源码也会支持
核心的就是日志持久层,和日志清洗层
②、日志持久层:日志持久层主流用的是es集群:用来作为日志的检索,存储,索引。
③、日志清洗层:非结构化的数据库因为日志的格式千差万别,需要在存储之前进行简单的日志清洗,日志的过滤,字段的转换,内容的抽取,主要使用logstash。
④、kibana主要用来日志 的查询,搜索。
⑤、削峰填谷层:日志量,吞吐量,比较大的话,直接打到日志清洗层,可能抗不住,导致集群的雪崩,整体卡顿,所以用rocketmq集群,这个是可选的
后面会写一些elk的实操,以及把微服务实例的日志打到elk平台的实操。