常用的日志收集系統(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)行收集、分析、過濾。