繁体   English   中英

使用Apache Flume管道Apache服务器日志

[英]Piping Apache server log using Apache Flume

我正在使用Apache Flume 1.3版,并参考Apache Flume用户指南

我的目标是将Apache服务器日志直接传送到Apache Flume Agent的Channel。 如果我的理解是正确的,那么Apache服务器将不会创建本地文件。 server.log,error.log,但直接将相应的输出写入代理的通道; 即使它写入日志,代理也不会从这些文件中读取。 但是至少Apache Server的文档没有提供相同的示例。

我的查询是:

  1. 我提到这个链接,属于Cloudera的水槽的建立而不是Apache水槽。 我尝试了这个,但是正如预期的那样,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 

我怀疑Apache Flume和Cloudera Flume是同步的。

  1. 根据Apache Server的文档: Apache httpd能够写入错误,并通过管道将日志文件访问另一个进程,而不是直接访问文件。 如何为正在运行的Apache Flume Agent实现此目标,即Apache conf中的条目必须是什么

CustomLog“ |?” 共同


我正在尝试类似的用例。 您的问题是flume命令不存在(不再)。 较新版本的flume使用命令flume-ng

我在/etc/httpd/conf/httpd.conf中所做的操作:

# Default behaviour, but daily-rollover logging (|| does not spawn a new shell) 
CustomLog "||/usr/sbin/rotatelogs /var/log/httpd/access_log.%Y-%m-%d 86400" combined
# Send logging to local flume-agent
CustomLog "||/usr/bin/flume-ng avro-client -H localhost -p 10000" combined

flume-agent配置在本地主机上具有avro源绑定,并在端口10000上进行侦听。也是一个文件通道,在本例中为HDFS接收器。

请注意,当Flume代理崩溃或重新启动Flume时,您将丢失一些日志记录事件。 如果需要更持久的解决方案,则需要拾取(旧的/旋转的)日志文件并在处理后移动/删除。

暂无
暂无

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

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