文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
配置过滤器
Flume 提供了一种工具,用于以配置过滤器的形式将敏感或生成的数据注入配置。配置密钥可以设置为配置属性的值,它将由配置过滤器替换为它所代表的值。
配置过滤器的常见用法
格式类似于 Java 表达式语言,但它目前不是一个完全有效的 EL 表达式解析器,只是一种看起来像它的格式。
<agent_name>.configfilters = <filter_name>
<agent_name>.configfilters.<filter_name>.type = <filter_type>
<agent_name>.sources.<source_name>.parameter = ${<filter_name>['<key_for_sensitive_or_generated_data>']}
<agent_name>.sinks.<sink_name>.parameter = ${<filter_name>['<key_for_sensitive_or_generated_data>']}
<agent_name>.<component_type>.<component_name>.parameter = ${<filter_name>['<key_for_sensitive_or_generated_data>']}
#or
<agent_name>.<component_type>.<component_name>.parameter = ${<filter_name>["<key_for_sensitive_or_generated_data>"]}
#or
<agent_name>.<component_type>.<component_name>.parameter = ${<filter_name>[<key_for_sensitive_or_generated_data>]}
#or
<agent_name>.<component_type>.<component_name>.parameter = some_constant_data${<filter_name>[<key_for_sensitive_or_generated_data>]}
环境变量配置过滤器
属性名称 | 默认 | 说明 |
---|---|---|
type | - | 组件类型名称必须为 env |
示例
要在配置中隐藏密码,请设置其值,如以下示例所示。
a1.sources = r1
a1.channels = c1
a1.configfilters = f1
a1.configfilters.f1.type = env
a1.sources.r1.channels = c1
a1.sources.r1.type = http
a1.sources.r1.keystorePassword = ${f1['my_keystore_password']} #will get the value Secret123
在这里 a1.sources.r1.keystorePassword
配置属性将获得 my_keystore_password
的值
环境变量。设置环境变量的一种方法是运行如下所示的 flume 代理:
$ my_keystore_password=Secret123 bin/flume-ng agent --conf conf --conf-file example.conf ...
外部进程配置筛选器
属性名称 | 默认 | 说明 |
---|---|---|
type | - | 组件类型名称必须为 external |
command | - | 将执行以获取给定键值的命令。该命令将被调用为: <command> <key> 并且预期返回单行值,退出代码为 0 。 |
charset | UTF-8 | 返回字符串的字符集。 |
示例
要在配置中隐藏密码,请设置其值,如以下示例所示。
a1.sources = r1
a1.channels = c1
a1.configfilters = f1
a1.configfilters.f1.type = external
a1.configfilters.f1.command = /usr/bin/passwordResolver.sh
a1.configfilters.f1.charset = UTF-8
a1.sources.r1.channels = c1
a1.sources.r1.type = http
a1.sources.r1.keystorePassword = ${f1['my_keystore_password']} #will get the value Secret123
在此示例中,flume 将运行以下命令以获取值
$ /usr/bin/passwordResolver.sh my_keystore_password
passwordResolver.sh
将返回 Secret123
退出代码 0
。
示例 2
要生成滚动文件接收器的目录的一部分,请设置其值,如以下示例所示。
a1.sources = r1
a1.channels = c1
a1.configfilters = f1
a1.configfilters.f1.type = external
a1.configfilters.f1.command = /usr/bin/generateUniqId.sh
a1.configfilters.f1.charset = UTF-8
a1.sinks = k1
a1.sinks.k1.type = file_roll
a1.sinks.k1.channel = c1
a1.sinks.k1.sink.directory = /var/log/flume/agent_${f1['agent_name']} # will be /var/log/flume/agent_1234
在此示例中,flume 将运行以下命令以获取值
$ /usr/bin/generateUniqId.sh agent_name
generateUniqId.sh
将返回 1234
退出代码 0
。
Hadoop 凭据存储配置筛选器
此功能的类路径上需要一个 hadoop-common 库(2.6 版本)。如果安装了 hadoop,则代理会自动将其添加到类路径中
属性名称 | 默认 | 说明 |
---|---|---|
type | - | 组件类型名称必须为 hadoop |
credential.provider.path | - | 提供者路径。请参阅 hadoop 文档_here: https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/CredentialProviderAPI.html#Configuring_the_Provider_Path |
credstore.java-keystore-provider.password-file | - | 如果使用文件存储密码,则为密码文件的名称。该文件必须在类路径上。可以使用 HADOOP_CREDSTORE_PASSWORD 环境变量设置提供程序密码,也可以将其设置为空。 |
示例
要在配置中隐藏密码,请设置其值,如以下示例所示。
a1.sources = r1
a1.channels = c1
a1.configfilters = f1
a1.configfilters.f1.type = hadoop
a1.configfilters.f1.credential.provider.path = jceks://file/<path_to_jceks file>
a1.sources.r1.channels = c1
a1.sources.r1.type = http
a1.sources.r1.keystorePassword = ${f1['my_keystore_password']} #will get the value from the credential store
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论