【Kubernetes 企业项目实战】04、基于 K8s 构建 EFK+logs( 二 )


ERROR 级别称之为“错误”,这个含义就更明显了,就是系统出现了错误,需要处理 。较为常见的就是捕获异常时所打印的日志 。
二、常见的日志收集方案
常见的进行日志分析的方法:直接在日志文件中 grep、awk 就可以获得自己想要的信息 。但在规模较大的场景中,此方法效率低下,面临问题包括日志量太大如何归档、文本搜索太慢怎么办、如何多维度查询 。需要集中化的日志管理,把所有服务器上的日志收集汇总 。常见解决思路是建立集中式日志收集系统,将所有节点上的日志统一收集,管理,访问 。
大型系统是一个分布式部署的架构,不同的服务模块部署在不同的服务器上,问题出现时,大部分情况需要根据问题暴露的关键信息,定位到具体的服务器和服务模块,构建一套集中式日志系统,可以提高定位问题的效率 。
对大量的日志业务数据进行分析,如平台 PV、UV、IP、 等维度进行分析查询等 。另外安全审计、数据挖掘、行为分析等都少不了日志对其作为支撑 。
2.1 EFK
在集群上运行多个服务和应用程序时,日志收集系统可以帮助你快速分类和分析由 Pod 生成的大量日志数据 。中比较流行的日志收集解决方案是 、 和 (EFK)技术栈,也是官方推荐的一种方案 。
是一个实时的,分布式的,可扩展的搜索引擎,它允许进行全文本和结构化搜索以及对日志进行分析 。它通常用于索引和搜索大量日志数据,也可以用于搜索许多不同种类的文档 。
通常与一起部署, 可以把采集到的数据通过(仪表板)可视化展示出来 。允许你通过 Web 界面浏览日志数据,也可自定义查询条件快速检索出中的日志数据 。
是一个流行的开源数据收集器,我们在集群节点上安装 ,通过获取容器日志文件、过滤和转换日志数据,然后将数据传递到集群,在该集群中对其进行索引和存储 。
2.2 ELK Stack
:日志存储和搜索引擎 。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制, 风格接口,多数据源,自动搜索负载等 。
:是一个完全开源的工具,他可以对你的日志进行收集、过滤,并将其存储供以后使用(支持动态的从各种数据源搜集数据,并对数据进行过滤、分析、丰富、统一格式等操作) 。
:是一个开源和免费的工具, 可以为和提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志 。
工作流程:
应用程序()–>–>–>–> 浏览器():
收集产生的 Log,并存放到集群中,而则从 集群中查询数据生成图表,再返回给。
考虑到聚合端(日志处理、清洗等)负载问题和采集端传输效率,一般在日志量比较大的时候在采集端和聚合端增加队列,以用来实现日志消峰 。
2.3ELK+
(采集)—> (聚合、处理)—>(存储)—> (展示)
2.4 其他方案
ELK 日志流程可以有多种方案(不同组件可自由组合,根据自身业务配置),常见有以下:
三、EFK 组件详细介绍 3.1组件介绍
是一个分布式的免费开源搜索和分析引擎,适用于包括文本、数字、地理空间、结构化和非结构化数据等在内的所有类型的数据 。在的基础上开发而成,由N.V.(即现在的 )于 2010 年首次发布 。以其简单的 REST 风格 API、分布式特性、速度和可扩展性而闻名,是Stack 的核心组件; Stack 是一套适用于数据采集、扩充、存储、分析和可视化的免费开源工具 。人们通常将Stack 称为 ELK Stack(代指 、 和 ),目前Stack 包括一系列丰富的轻量型数据采集代理,这些代理统称为 Beats,可用来向发送数据 。