1. 程式人生 > >flume監控檔案內容遇到的問題

flume監控檔案內容遇到的問題

在Lamda架構分析日誌流水線時用到flume監控日誌檔案的變化。
開始測試時,用shell指令碼模擬的簡單日誌,單條日誌格式為:uid-url-ip
如下為我的shell指令碼:

#! /bin/bash
randnum(){
 shuf -i 1-100 -n 1
}

randseq(){
 head  /dev/urandom  |  tr -dc a-z  | head -c 3
}

while :
do
  ip=`randnum`.`randnum`.`randnum`.`randnum`
  url=www.`randseq`.com
  uid=`randnum`
  result=$uid-$url-$ip
  echo $result > /var/log/yum.log
done

通過這個指令碼向/var/log/yum.log檔案輸入日誌,通過flume採集到kafka,但是執行後發現kafka收集到的日誌都是亂的,如下圖:
在這裡插入圖片描述
並不是我所期待的形如:
在這裡插入圖片描述
最後發現問題所在之處是shell指令碼。
echo $result > /var/log/yum.log
應該改為:echo $result >> /var/log/yum.log
echo >是修改檔案,替換的意思,echo >>是追加的意思。
所以,就是說,flume監控檔案,比如說3秒採集一次,它所採集的應該是比3秒前多的東西,也就是說它適合監控“倉庫”,否則就會出問題。