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


能够动态地转换和解析数据,不受格式或复杂度的影响:
1、利用 Grok 从非结构化数据中派生出结构;
2、从 IP 地址破译出地理坐标;
3、将 PII 数据匿名化,完全排除敏感字段;
4、整体处理不受数据源、格式或架构的影响 。
尽管是我们的首选输出方向,能够为我们的搜索和分析带来无限可能,但它并非唯一选择 。提供众多输出选择,你可以将数据发送到你要指定的地方 。

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

文章插图
有两个必要元素:input 和,一个可选元素: 。这三个元素,分别代表事件处理的三个阶段:输入 > 过滤器 > 输出
在实际应用场景中,通常输入、输出、过滤器不止一个 。的这三个元素都使用插件式管理方式,可以根据应用需要,灵活的选用各阶段需要的插件,并组合使用 。
支持各种输入选择 ,可以在同一时间从众多常用来源捕捉事件 。能够以连续的流式传输方式,可从日志、指标、Web 应用、数据存储以及各种 AWS 服务采集数据 。
过滤器是管道中的中间处理设备 。可以将条件过滤器组合在一起,对事件执行操作 。
input {kafka {bootstrap_servers => "192.168.78.143:9092"auto_offset_reset => "latest"consumer_threads => 5decorate_events => truetopics => ["elktest"]}}output { elasticsearch { hosts => ["192.168.78.143:9200"]index => "elkk8stest-%{+YYYY.MM.dd}"}}
3.4组件介绍
是一个针对日志的收集、处理、转发系统 。通过丰富的插件系统,可以收集来自于各种系统或应用的日志,转化为用户指定的格式后,转发到用户所指定的日志存储系统之中 。
常常被拿来和比较,我们常说 ELK,L 就是这个 agent 。是随着 和 es 一起流行起来的 agent 。
3.5 、、 对比分析
常见的日志采集工具有 、、、、 等等,那么他们之间有什么区别呢?什么情况下我们应该用哪一种工具?
是一个开源数据收集引擎,具有实时管道功能 。可以动态地将来自不同数据源的数据统一起来,并将数据标准化到你所选择的目的地 。
优势
主要的优点就是它的灵活性,主要因为它有很多插件,详细的文档以及直白的配置格式让它可以在多种场景下应用 。我们基本上可以在网上找到很多资源,几乎可以处理任何问题 。
劣势
致命的问题是它的性能以及资源消耗(默认的堆大小是 1GB) 。尽管它的性能在近几年已经有很大提升,与它的替代者们相比还是要慢很多的 。这里有与性能对比以及 与的性能对比 。它在大数据量的情况下会是个问题 。
另一个问题是它目前不支持缓存,目前的典型替代方案是将 Redis 或 Kafka 作为中心缓冲池 。
典型应用场景
因为自身的灵活性以及网络上丰富的资料, 适用于原型验证阶段使用,或者解析非常的复杂的时候 。在不考虑服务器资源的情况下,如果服务器的性能足够好,我们也可以为每台服务器安装。我们也不需要使用缓冲,因为文件自身就有缓冲的行为,而也会记住上次处理的位置 。
如果服务器性能较差,并不推荐为每个服务器安装,这样就需要一个轻量的日志传输工具,将数据从服务器端经由一个或多个中心服务器传输到。
随着日志项目的推进,可能会因为性能或代价的问题,需要调整日志传输的方式(log ) 。当判断的性能是否足够好时,重要的是对吞吐量的需求有着准确的估计,这也决定了需要为投入多少硬件资源 。
作为 Beats 家族的一员, 是一个轻量级的日志传输工具,它的存在正弥补了的缺点 。作为一个轻量级的日志传输工具可以将日志推送到中心。