flume1.8 Interceptors拦截器(五)

2023-12-21 17:32

本文主要是介绍flume1.8 Interceptors拦截器(五),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. Flume Interceptors

Flume有能力修改/删除流程中的events。这是在拦截器(interceptor)的帮助下完成的。拦截器(Interceptors)是实现org.apache.flume.interceptor.Interceptor接口的类。一个interceptor可以根据interceptor的开发者选择的任何标准来修改,甚至放弃events。这个可以通过在配置中指定一系列interceptor生成类名来实现。Interceptors在source配置中被指定作为空白分隔符列表。如果interceptor需要放弃events,它不会在它需要返回的列表中返回该events。如果interceptor放弃全部events,然后它返回一个空列表。简单示例:

注意:该interceptor构建是被传递给type配置属性。interceptors本身是可配置的,并且可以像传递给其他可配置组件一样传递配置值。在上述示例中,events先传递到HostInterceptor,并且events被HostInterceptor返回,然后独自传递到TimestampInterceptor。你可以指定完全限定的类名称或者别名 timestamp。如果你有多个收集器写到同一个HDFS路径,然后你也可以使用HostInterceptor。

1.1 Timestamp Interceptor

该interceptor向event headers插入秒级时间,当event被处理时。该interceptor插入一个带有关键timestamp(或者由header属性指定)的header,其值是相关的timestamp。该interceptors可以保留一个已存在timestamp,如果它已经在配置中预先配置。

agent a1示例:

1.2 Host Interceptor

 该interceptor插入运行agent的host的hostname或者IP地址。它根据配置插入带有密钥host或配置密钥(其值为host的hostname或IP地址)的header。

agent a1的示例:

1.3 Static Interceptor

静态interceptor运行用户给所有events添加一个带有静态值的静态header。

agent a1的示例:

1.4 Remove Header Interceptor

该interceptor通过移除一个或多个headers来操作Flume event headers。它可以移除一个静态定义的header,基于规则表达式的headers或者在一个列表中的headers。如果这些没有定义,或者如果没有header匹配到标准,Flume events将不会修改。

注意:如果只有一个header需要移除,通过名字指定它可以提供比其他两种方法更好的性能。

1.5 UUID Interceptor

 该interceptor在被拦截的所有事件上设置一个通用唯一的标识符。

1.6 Morphline Interceptor

该interceptor通过morphline配置文件过滤events,该配置文件定义了一条从一个命令到另一个命令管道记录的转换命令链。例如,morphline可以忽略某些events,或者通过基于正则表达式的模式匹配来改变或者插入某些event headers,或者它可以通过Apache Tika自动检测和设置一个MIME类型在被拦截的events上。

简单示例flume .conf文件:

1.7 Search and Replace Interceptor

该interceptor提供了基于Java正则表达式的简单的基于字符串的search-and-replace功能。回溯/组捕获也是可用的。这个interceptor使用与Java Matcher.replaceAll()方法相同的规则。

配置示例:

另一个示例:

1.8 Regex Flitering Interceptor

该拦截器通过将event正文解释为文本并将文本与配置的正则表达式进行匹配来选择性地过滤events。

1.9 Regex Extractor Interceptor

 此interceptor使用指定的正则表达式提取正则表达式匹配组,并将匹配组附加为event的headers。

该serializers用于将匹配映射到header名称和格式化的header值;默认的,你只需要指定header名称和默认org.apache.flume.interceptor.RegexExtractorInterceptorPassThroughSerializer将会被使用。这个serializer只是将匹配映射到指定的header名称,并传递通过由正则表达式提取的值。

Example 1:

如果Flume event正文包含1:2:3:4foobar5,可以使用下面配置:

提取的event将会包含相同正文,但是以下headers将会附加one=>1,two=>2,three=>3.

Example 2:

如果Flume event正文包含2012-10-18 18:47:57,614 some log line ,可以使用下面的配置:

提取的event将会包含相同的正文,但是以下的headers将会附加timestamp=>1350611220000.

 参考资料:

https://flume.apache.org/FlumeUserGuide.html

这篇关于flume1.8 Interceptors拦截器(五)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/520885

相关文章

Kafka拦截器的神奇操作方法

《Kafka拦截器的神奇操作方法》Kafka拦截器是一种强大的机制,用于在消息发送和接收过程中插入自定义逻辑,它们可以用于消息定制、日志记录、监控、业务逻辑集成、性能统计和异常处理等,本文介绍Kafk... 目录前言拦截器的基本概念Kafka 拦截器的定义和基本原理:拦截器是 Kafka 消息传递的不可或缺

Mybatis拦截器如何实现数据权限过滤

《Mybatis拦截器如何实现数据权限过滤》本文介绍了MyBatis拦截器的使用,通过实现Interceptor接口对SQL进行处理,实现数据权限过滤功能,通过在本地线程变量中存储数据权限相关信息,并... 目录背景基础知识MyBATis 拦截器介绍代码实战总结背景现在的项目负责人去年年底离职,导致前期规

【SpringMVC学习09】SpringMVC中的拦截器

Springmvc的处理器拦截器类似于Servlet 开发中的过滤器Filter,用于对处理器进行预处理和后处理。本文主要总结一下springmvc中拦截器是如何定义的,以及测试拦截器的执行情况和使用方法。 1. springmvc拦截器的定义和配置 1.1 springmvc拦截器的定义 在springmvc中,定义拦截器要实现HandlerInterceptor接口,并实现该接口中提供的

Interceptor拦截器无法拦截根目录的解决方法

今天发现了一个bug,首页home.jsp的某一个值是通过拦截器拦截所有页面,然后赋值的,然而我们的首页是通过index.jsp直接引用首页home.jsp代码(如下),拦截器无法拦截。 <%@ include file="./WEB-INF/jsp/home.jsp" %> 首先,第一个解决方法就是,将首页的引用文件改为跳转即可 <html><head><meta http-equiv

OpenFeign请求拦截器,注入配置属性类(@ConfigurationProperties),添加配置文件(yml)中的token到请求头

一、需求 OpenFeign请求拦截器,注入配置属性类(@ConfigurationProperties),添加配置文件(yml)中的token到请求头 在使用Spring Boot结合OpenFeign进行微服务间调用时,需要在发起HTTP请求时添加一些默认的请求头,比如认证令牌(token)。为了实现这一功能,可以创建一个请求拦截器,并且通过@ConfigurationPropert

过滤器(Filter)和拦截器(Interceptor)

在Web开发中,过滤器(Filter)和拦截器(Interceptor)都是重要的组件,它们都可以对HTTP请求进行预处理、后处理以及一些额外的操作。然而,它们之间在多个方面存在明显的区别 1. 运行位置 过滤器(Filter):运行在Web服务器和Servlet容器之间的组件,可以拦截所有进出该容器的请求和响应。过滤器是Servlet规范的一部分,不依赖于特定的框架。拦截器(Intercep

SpringBoot 拦截器获取http请求参数—— 所有骚操作基础

目录 SpringBoot 拦截器获取http请求参数—— 所有骚操作基础 获取http请求参数是一种刚需定义拦截器获取请求为什么拦截器会重复调两遍呢?ServletInputStream(CoyoteInputStream) 输入流无法重复调用自定义 HttpServletRequestWrapper总结一下 展望一下 获取http请求参数是一种刚需 我想有的小伙伴肯定有过获取ht

使用Spring Boot拦截器实现时间戳校验以防止接口被恶意刷

使用Spring Boot拦截器实现时间戳校验以防止接口被恶意刷 在开发Web应用程序时,接口被恶意刷请求(例如DDoS攻击或暴力破解)是一个常见的安全问题。为了提高接口的安全性,我们可以在服务端实现时间戳校验,以确保请求的合法性。本文将介绍如何在Spring Boot中使用拦截器来实现一个通用的时间戳验证机制。 一、为什么需要时间戳校验? 时间戳校验是一种简单而有效的安全措施。通过在请求中

20210630拦截器和过滤器的区别,关系型数据库与非关系型数据库区别

一、二者理解 过滤器(Filter) 过滤器,是在java web中将你传入的request、response提前过滤掉一些信息,或者提前设置一些参数。然后再传入Servlet或Struts2的 action进行业务逻辑处理。比如过滤掉非法url(不是login.do的地址请求,如果用户没有登陆都过滤掉),或者在传入Servlet或Struts2的action前统一设置字符集,或者去除掉一些非法字

XXS 安全防护:拦截器+注解实现校验

一、简介 XSS(跨站脚本)攻击是一种网络安全威胁,允许攻击者注入恶意脚本到看似安全的网站。 当用户浏览这些被注入恶意代码的网页时,恶意脚本会在用户的浏览器环境中执行,这可能导致多种安全问题,如窃取敏感数据、劫持用户会话等。 XSS主要有三种类型: 反射型 XSS:通过恶意链接传播,脚本不在服务器上存储。存储型 XSS:恶意脚本存储在服务器上,通过用户提交的内容传播。DOM 基于的 XSS