开源日志收集软件fluentd 转发(forward)架构配置

需求:node

经过开源软件fluentd收集各个设备的apache访问日志到fluentd的转发服务器中,而后经过webHDFS接口,写入到hdfs文件系统中。web


软件版本说明:apache

hadoop版本:1.1.2bash

fluentd版本:1.1.21服务器


测试环境说明:ide

node29服务器上安装了apache,以及fluentd,做为fluentd的客户端;oop

node1服务器,为hadoop服务器的namenode;测试


node29服务器上fluentd配置文件:日志

<source>
  type tail
  format apache2
  path /var/log/httpd/access_log
  pos_file /var/log/td-agent/access_log.pos
  time_format %Y-%m-%d %H:%M:%S
  localtime
  tag apache.access
 
</source>

#Log Forwarding to node1 server
<match apache.access>
  type forward
#  time_slice_format %Y%m%d
#  time_slice_wait 10m
#  localtime
 
#定义日志入库日志的时间;
  time_format %Y-%m-%d %H:%M:%S
#localtime很是重要,不设置日志时间和系统时间相差8小时;  
  localtime
 
#定义入库日志的时间;
 
  <server>
  host node1
  port 24224
  </server>
 
  flush_interval 1s
</match>


node1服务器配置,这个服务器上配置了hadoop的namenode,以及做为fluentd的转发角色,具体配置文件以下:
orm

<source>
  type forward
  port 24224
</source>


<match apache.access>

  type webhdfs

  host node1.test.com

  port 50070

  path /apache/%Y%m%d_%H/access.log.${hostname}

  time_slice_format %Y%m%d

  time_slice_wait 10m


#定义日志入库日志的时间;

  time_format %Y-%m-%d %H:%M:%S

  localtime


  flush_interval 1s

</match>


配置好之后,重启fluentd服务;


开始测试,在node29用ab命令开始访问apache,生成访问日志;

wKioL1Srm8vR_ovaAAPZIkcRXtw457.jpg



而后,到node1服务器上去查看HDFS文件系统中,是否生成了相关文件及目录:

查看生成的目录:

wKioL1SrnD2T4tjMAANsBMDhnlw258.jpg


查看文件里面具体日志:

hadoop fs -cat /apache/20150106_16/access.log.node1.test.com

wKiom1Srm-KBfz8qAAYjJTfE3zY387.jpg


如上图所示,fluentd已经经过转发模式,把node29服务器上apache日志收集到hdfs文件系统中了,方便下一步用hadoop进行离线分析。

相关文章
相关标签/搜索