云原生日志处理流程

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 【6月更文挑战第14天】云原生平台中的日志处理包括9个步骤:收集、ETL、索引、存储、检索、关联、可视化、分析和报告。

云原生平台中对日志提取收集以及分析处理的流程与传统日志处理模式大致是一样的,整体的日志收集处理流程中包括收集、ETL、索引、存储、检索、关联、可视化、分析和报告这9个步骤。


1)收集:从分散的数据来源中进行日志数据汇总、解析和清理、为缺少的值插入默认值等操作,对不相关的条目进行丢弃处理。

2)ETL(Extract、Transform、Load):数据准备阶段,包括清除不良条目、重新格式化和规范化这几个过程。

3)索引:为了加快后续查询速度,为日志数据建立索引,可以为数据中的所有字段都进行索引,也可以为部分字段进行索引。索引相对来说是较为耗费CPU资源的操作,通常都会涉及CPU资源耗费与加快查询速度两个方面的权衡。

4)存储:将大量的日志数据高效地存储到日志系统中,为了确保存储的速度以及日后分析的便利性,需要利用可横向扩展的动态结构化存储系统。

6)关联:在进行数据分析以揭示隐藏在数据背后的关键信息之前,对数据的关联性进行标识,标识的过程包括定义数据集字段之间的关联关系、人工对数据进行基础分类等。

7)可视化:使用图形、仪表板和其他方式直观地进行辅助数据展示,便于理解。

8)分析:将日志数据切片和切块,并在其中应用分析算法,通过数据分析算法来获知安全趋势、安全行为模式以及进行安全风险洞察。

9)报告:阶段性地或临时性地输出报告,报告中展示分析结论。

与日志处理流程相关的软件架构有日志源、日志处理和存储、日志查询展示和日志分析这几部分,它们的配合关系如下图:

整个日志处理系统都运行在云原生平台里,包括日志采集器、日志分析和日志存储、数据分析和日志查询组件。


标注①的几个位置显示的是日志采集器的工作原理,日志采集器运行在Kubernetes集群的每个节点内,负责采集系统日志以及集群事件信息。此外日志采集器还负责采集应用层的日志以及中间件等外部资源的日志。日志采集器的实现技术有filebeat、logstash等。

日志采集器将收集到的日志统一送往日志分析和处理中心,在标注②的位置。日志分析和处理中心负责对日志进行预处理、建立索引等操作。常见的日志分析和处理服务有ElasticSearch和Splunk。在CNCF社区,Loki日志分析组件日渐流行。Loki组件采用与云原生监控系统Prometheus类似的技术实现架构,与ElasticSearch不同的是,Loki并不对日志记录进行索引操作,仅对日志记录进行打标签,通过标签的方式对日志进行查询。Loki这种做法的好处是处理速度快、节省资源、轻量级。有时候,还会把收集到的日志数据通过Kafka等消息通道转发到不同的日志分析处理中心,由不同的日志分析处理中心做不同类型的业务分析,比如对有些日志进行实时分析,对有些日志进行批处理分析等。


日志分析和处理中心将日志写到云原生平台的共享存储中。接下来在标注④的位置是数据分析组件。数据分析组件对日志运行分析算法,可能采用的算法种类有离线分析、实时分析和机器学习分析。分析的结果存入专门的数据库。


最后通过日志查询和报表平台对存储的日志以及数据分析结果进行汇总展示,常用的日志可视化查询工具有Kibana和Grafana。Kibana对ElasticSearch有较好的支持,Grafana是CNCF社区中使用广泛的监控和日志可视化组件。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
6月前
|
存储 监控 Cloud Native
|
6月前
|
SQL 存储 关系型数据库
redo log 的执行流程?
redo log 的执行流程?
|
6月前
|
Prometheus Cloud Native 数据库
Grafana 系列文章(九):开源云原生日志解决方案 Loki 简介
Grafana 系列文章(九):开源云原生日志解决方案 Loki 简介
|
6月前
|
存储 监控 Kubernetes
构建高效稳定的云原生日志监控系统
【5月更文挑战第26天】 随着微服务架构和容器化技术的普及,传统的日志监控方法面临重大挑战。本文将探讨如何构建一个既高效又稳定的云原生日志监控系统,该系统旨在提供实时的日志分析能力,同时保证系统的高可用性和可扩展性。我们将讨论利用现代技术栈如Fluentd、Elasticsearch和Kibana(EFK栈)来搭建日志收集、存储和可视化的解决方案,并深入探讨如何通过容器编排工具如Kubernetes来实现日志服务的自动伸缩和故障恢复。此外,我们还将介绍一些最佳实践,帮助运维团队在保持系统性能的同时,降低资源消耗和运营成本。
|
6月前
|
存储 运维 监控
构建高效可靠的云原生日志监控体系
【4月更文挑战第29天】随着微服务和容器化技术的普及,传统的日志监控方案已难以满足现代云原生应用的需求。本文将探讨如何构建一个既高效又可靠的云原生日志监控体系,涵盖从日志生成、收集、存储到分析的全流程,并重点讨论了利用Fluentd、Elasticsearch、Kibana (EFK) 栈实现日志聚合、搜索和可视化的最佳实践。
|
6月前
|
Cloud Native 网络协议 Go
[云原生] Go web工作流程
[云原生] Go web工作流程
|
6月前
|
前端开发 Cloud Native 持续交付
在云原生时代,如何构建高效的前端开发流程
【2月更文挑战第2天】随着云原生技术的快速发展,前端开发也面临着新的挑战和机遇。本文将介绍如何构建高效的前端开发流程,在保证代码质量和团队协作的同时,提高开发效率和用户体验。从项目规划、技术选型、团队协作到持续集成和部署,我们将探讨一系列的最佳实践和工具,帮助前端开发者更好地应对云原生时代的挑战。
|
11天前
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
116 30
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
|
1月前
|
XML JSON Java
Logback 与 log4j2 性能对比:谁才是日志框架的性能王者?
【10月更文挑战第5天】在Java开发中,日志框架是不可或缺的工具,它们帮助我们记录系统运行时的信息、警告和错误,对于开发人员来说至关重要。在众多日志框架中,Logback和log4j2以其卓越的性能和丰富的功能脱颖而出,成为开发者们的首选。本文将深入探讨Logback与log4j2在性能方面的对比,通过详细的分析和实例,帮助大家理解两者之间的性能差异,以便在实际项目中做出更明智的选择。
216 3
|
1月前
|
存储 缓存 关系型数据库
MySQL事务日志-Redo Log工作原理分析
事务的隔离性和原子性分别通过锁和事务日志实现,而持久性则依赖于事务日志中的`Redo Log`。在MySQL中,`Redo Log`确保已提交事务的数据能持久保存,即使系统崩溃也能通过重做日志恢复数据。其工作原理是记录数据在内存中的更改,待事务提交时写入磁盘。此外,`Redo Log`采用简单的物理日志格式和高效的顺序IO,确保快速提交。通过不同的落盘策略,可在性能和安全性之间做出权衡。
1625 14