一、日志收集与处理流程

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

具体如下:

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

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

3、索引:为了加快后续查询速度,为日志数据建立索引,可以为数据中的所有字段都进行索引,也可以为部分字段进行索引。

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

5、检索:对存储在大规模日志数据系统中的数据进行灵活、快速的数据查询。

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

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

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

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

二、日志处理流程软件架构

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

emptydir 收集日志 日志收集方式_emptydir 收集日志

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

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

2、标号②的位置,日志采集器将收集到的日志统一送往日志分析和处理中心,日志分析和处理中心负责对日志进行预处理、建立索引等操作。常见的日志分析和处理服务有ElasticSearch和Splunk。

3、标号③的位置,日志分析和处理中心将日志写到云原生平台的共享存储中。

4、标号④的位置是数据分析组件。数据分析组件对日志运行分析算法,可能采用的算法种类有离线分析、实时分析和机器学习分析。分析的结果存入专门的数据库。

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