繁体   English   中英

如何为嵌入式 Flume 代理实现自定义接收器?

[英]How to implement Custom Sink for a Embedded Flume Agent?

我正在构建一个 spring boot 独立应用程序,它需要使用来自远程服务器的消息并将它们写入Syslog Server 我正在使用 Flume 嵌入式代理来可靠地记录消息。 但我收到以下错误。

引起:org.apache.flume.FlumeException:com.security.flume.sink.SyslogSink 的组件类型在 org.apache.flume.agent.embedded.EmbeddedAgentConfiguration.checkAllowed(EmbeddedAgentConfiguration.java) 的 [AVRO] 类型中不允许:308) ~[flume-ng-embedded-agent-1.9.0.jar:1.9.0] 在 org.apache.flume.agent.embedded.EmbeddedAgentConfiguration.validate(EmbeddedAgentConfiguration.java:182) ~[flume-ng- Embedded-agent-1.9.0.jar:1.9.0] 在 org.apache.flume.agent.embedded.EmbeddedAgentConfiguration.configure(EmbeddedAgentConfiguration.java:199) ~[flume-ng-embedded-agent-1.9.0.jar :1.9.0] 在 org.apache.flume.agent.embedded.EmbeddedAgent.doConfigure(EmbeddedAgent.java:151) ~[flume-ng-embedded-agent-1.9.0.jar:1.9.0] 在 org.apache .flume.agent.embedded.EmbeddedAgent.configure(EmbeddedAgent.java:98) ~[flume-ng-embedded-agent-1.9.0.jar:1.9.0]

根据文档Embedded Agent仅支持Avro Sink 这是否意味着我们甚至不能编写自定义接收器?

我对 Flume 相当陌生。 我真的很感谢你在这个问题上的帮助。

谢谢!

这意味着对于嵌入式代理,您可以将AvroSink用作自定义接收器。 但是,您可以使用一些技术来使用自定义组件从外部源收集数据:

  • 创建一个自定义客户端,该客户端能够与之前存在的 Flume 源建立通信,例如AvroSourcesSyslogTcpSource

  • 创建一个自定义的水槽源,通过 IPC 或 RPC 协议与预先存在的客户端直接通信。

我希望这个答案还为时不晚,可以帮助您。 谢谢阅读!!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM