開源日誌收集軟件fluentd 轉發(forward)架構配置

需求:

通過開源軟件fluentd收集各個設備的apache訪問日誌到fluentd的轉發服務器中,然後通過webHDFS接口,寫入到hdfs文件系統中。


軟件版本說明:

hadoop版本:1.1.2

fluentd版本:1.1.21


測試環境說明:

node29服務器上安裝了apache,以及fluentd,作爲fluentd的客戶端;

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的轉發角色,具體配置文件如下:

<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進行離線分析。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章