flume監控檔案內容遇到的問題
阿新 • • 發佈:2018-12-18
在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秒前多的東西,也就是說它適合監控“倉庫”,否則就會出問題。