使用logstash收集日志的可靠性驗證


    實時計算里,需要對日志實時收集,logstash可以做到。目前的版本是1.4.2,官方文檔在http://www.logstash.net/docs/1.4.2/,里面有詳細的配置說明,使用也很簡單。這里主要對logstash的可靠性做了簡單的驗證

intput為file,kill掉logstash進程

    每100ms打印一條日志,用logstash讀取;每隔20s殺掉logstash進程,又重啟。發現logstash會有高概率重發日志,也有少量發送空消息,要注意代碼中要過濾重復消息和空消息

關閉output

  1. output為redis,kill掉redis后,logstash向redis的寫操作會阻塞。等到redis恢復后,會接着寫,不會丟數據
  2. output為kafka,使用logstash-kafka這個插件(https://github.com/joekiller/logstash-kafka)。kafka通常是集群,kill掉其中一個進程,會有短暫的kafka服務不可用,logstash側會做失敗重試,只要重試次數足夠多,不會丟數據;如果kafka所有進程都kill掉,logstash側還是會一直重試,超過上限閾值后,就會丟棄數據,這里就會存在丟數據的可能

logstash單點

    一台服務器一般只允許一個logstash進程,如果進程掛掉了,沒有自動恢復機制,要想辦法手工拉起它

小結

    這里只試驗了input為file的情況,總的來說logstash不會少傳數據,但有可能多傳

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM