我使用的是ApacheFlumeVersion1.3,并参考了ApacheFlume用户指南。
我的目标是将apache服务器日志直接导入apacheflume代理的通道。如果我的理解是正确的,apache服务器将不会创建本地文件。server.log、error.log,但直接将相应的输出写入代理的通道;即使它在日志中写入,代理也不会读取这些文件。但至少apache服务器的文档没有提供相同的示例。
我的问题是:
我引用了这个链接,它属于clouderaflume而不是apacheflume。我尝试了这个,但正如预期的那样,apache服务器给出了一个错误:
/bin/sh: flume: not found
piped log program 'flume node_nowatch -1 -s -n apache -c \\'apache:console|agentBESink("collector");\\'' failed unexpectedly
piped log program 'flume node_nowatch -1 -s -n apache -c \\'apache:console|agentDFOSink("collector");\\'' failed unexpectedly
我怀疑apacheflume和clouderaflume是否同步。
根据apache服务器的文档:apachehttpd能够通过管道将错误和日志文件写入另一个进程,而不是直接访问文件。对于正在运行的apacheflume代理,即apacheconf中的条目,如何实现这一点
自定义日志“|?”公用
1条答案
按热度按时间piztneat1#
我在尝试一个类似的用例。您的问题是flume命令不再存在。较新版本的flume使用命令flume ng。
我在/etc/httpd/conf/httpd.conf中所做的:
flume代理配置在localhost上有一个avro源绑定,并监听端口10000。还有一个文件通道和一个hdfs接收器。
请注意,当flume代理崩溃或重新启动flume时,您将丢失一些日志事件。如果您想要一个更持久的解决方案,您需要拾取(旧的/旋转的)日志文件并在处理时移动/删除。