我正在构建一个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很陌生。非常感谢您在此问题上的帮助。
谢谢!
答案 0 :(得分:0)
这意味着对于嵌入式代理,您仅可以使用AvroSink
作为自定义接收器。但是,您可以使用一些技术使用自定义组件从外部来源收集数据:
创建一个自定义客户端,该客户端能够与先前存在的Flume源建立通信,例如AvroSources
或SyslogTcpSource
。
创建自定义水槽源,并通过IPC或RPC协议与现有客户端直接通信。
我希望这个答案不会太晚,可以为您提供一些帮助。感谢您的阅读!!