我正在构建一个springboot独立应用程序,它需要使用来自远程服务器的消息并将它们写入 Syslog Server
. 我使用flume嵌入式代理来可靠地记录消息。但我有以下错误。
原因:org.apache.flume.flumeexception:com.security.flume.sink.syslogsink的组件类型不在org.apache.flume.agent.embedded.embeddedagentconfiguration.checkallowed(embeddedagentconfiguration)中允许的[avro]类型中。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?
我对Flume还比较陌生。我真的很感谢你在这个问题上的帮助。
谢谢!
1条答案
按热度按时间wb1gzix01#
这意味着对于嵌入式代理,您可以使用
AvroSink
作为定制Flume。但是,您可以使用一些技术使用自定义组件从外部源收集数据:创建一个自定义客户端,该客户端能够与prior中存在的flume源建立通信,如
AvroSources
或者SyslogTcpSource
.创建自定义flume源,通过ipc或rpc协议与预先存在的客户端进行直接通信。
我希望这个答案不会太迟,可以帮你做点什么。感谢阅读!!