微服务治理-日志归集-技术选型
2020-01-16 本文已影响0人
do_young
背景
微服务在部署上的特点特点灵活(因为不同功能模块可能都是独立的工程)。
该灵活性可以更高效的使用硬件资源,但在其它方面会带来一些新的问题。
比如因为不同工程都会输出独立的日志文件,会对监控带来一些的困难。这些日志文件会在不同结点或同结点的不同日志文件中,要通过日志排查一些问题,会比以前麻烦。
对该问题的解决,业界已经有了成熟的方案。比如:ELK,或其它方案。
不管什么方案,大案思路都一样。就是:
- 通过组件的结点把日志收集起来。
- 通过组件将收集的日志进行过滤,加工等处理。
- 将处理过的日志统一存起来,方便查询或其它业务组件使用。
技术选型
根据项目情况,选择使用ELK,如下图所示:
![](https://img.haomeiwen.com/i11553600/040b775f6eceede1.png)
组件说明
- filebeat:部署在每台应用服务器、数据库、中间件中,负责日志抓取与聚合日志
日志聚合:把多行日志合并成一条,例如exception的堆栈信息等 - logstash:通过各种filter结构化日志信息,并把字段transform成对应的类型
- elasticsearch:负责存储和查询日志信息
- kibana:通过ui展示日志信息、还能生成饼图、柱状图等