常用的日志收集系統(tǒng)有Syslog-ng,Scribe,F(xiàn)lume,當(dāng)然還有ELK的LogStash.而目前互聯(lián)網(wǎng)公司最長(zhǎng)用的時(shí)Scribe和Flume,Scibe是Facebook開源的,但是現(xiàn)在已經(jīng)不維護(hù),所以不推薦使用。

Scribe

Scribe是Facebook開源的日志收集系統(tǒng),在facebook內(nèi)部已經(jīng)得到大量的應(yīng)用。Scribe是基于一個(gè)非阻斷C++服務(wù)的實(shí)現(xiàn)。它能夠從各種日志源上收集日志,存儲(chǔ)到一個(gè)中陽存儲(chǔ)系統(tǒng)。

三個(gè)角色:

  • 日志服務(wù)器
    • 為了收集日志,每一臺(tái)日志服務(wù)器上都會(huì)部署一個(gè)scribe客戶端,它包含兩個(gè)模塊agent 和 local_server
    • Agent是以tail的方式讀取本地目錄下的日志文件,并將數(shù)據(jù)寫到本地的Local_server
    • local_server通過zookeeper定位到Center_server
  • 中心服務(wù)器
    • 中心服務(wù)器作用就是把散落在各個(gè)機(jī)器的日志統(tǒng)一收集起來
    • Center_server和Local_server一樣,只是配置不同,通過thrift進(jìn)行通信
    • center_server收到數(shù)據(jù)后,根據(jù)配置將各個(gè)category的數(shù)據(jù)發(fā)向不同的方向,比如寫到HDFS或者發(fā)到Kafka等
  • 存儲(chǔ)服務(wù)器
    • 最終存儲(chǔ)日志的地方
    • 供計(jì)算框架以及搜索引擎框架計(jì)算使用

LogStash

Logstash是ELK中的一個(gè)工具,在ELK中起到的作用是對(duì)日志進(jìn)行收集、分析、過濾。