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

问题描述 投票:2回答:1

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

原因:org.apache.flume.FlumeException:组件类型com.security.flume.sink.SyslogSink不在允许的类型在[AVRO]org.apache.flume.agent.embedded.EmbeddedAgentConfiguration.checkAllowed(EmbeddedAgentConfiguration.java: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很陌生。非常感谢您在此问题上的帮助。

谢谢!

java flume
1个回答
0
投票

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

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

  • 创建通过IPC或RPC协议与现有客户端直接通信的定制水槽源。] >>

  • 我希望这个答案还不算太晚,可以为您提供一些帮助。感谢您的阅读!

© www.soinside.com 2019 - 2024. All rights reserved.