海量日志实时处理需求分析
在 11.5 节中讲解了 Flink 如何实时处理异常的日志,在那节中对比分析了几种常用的日志采集工具。我们也知道通常在排查线上异常故障的时候,查询日志总是必不可缺的一部分,但是现在微服务架构下日志都被分散到不同的机器上,日志查询就会比较困难,所以统一的日志收集几乎也是每家公司必不可少的。据笔者调研,不少公司现在是有日志统一的收集,也会去做日志的实时 ETL,利用一些主流的技术比如 ELK 去做日志的展示、搜索和分析,但是却缺少了日志的实时告警。在本节中,笔者将为大家做一个全方位的日志链路讲解,包含了日志的实时采集、日志的 ETL、日志的实时监控告警、日志的存储、日志的可视化图表展示与搜索分析等。
海量日志实时处理架构设计
分析完我们这个案例的需求后,接下来对整个项目的架构做一个合理的设计。
整个架构分为五层:日志接入层、日志削峰层、日志处理层、日志存储层、日志展示层。
- 日志接入层:日志采集的话使用的是 Filebeat 组件,需要在每台机器上部署一个 Filebeat。
- 日志削峰层:防止日志流量高峰,使用 Kafka 消息队列做削峰。
- 日志处理层:Flink