常用的日志收集系統(tǒng)有Syslog-ng,Scribe,F(xiàn)lume,當然還有ELK的LogStash.而目前互聯(lián)網(wǎng)公司最長用的時Scribe和Flume,Scibe是Facebook開源的,但是現(xiàn)在已經(jīng)不維護,所以不推薦使用。
Scribe
Scribe是Facebook開源的日志收集系統(tǒng),在facebook內(nèi)部已經(jīng)得到大量的應用。Scribe是基于一個非阻斷C++服務的實現(xiàn)。它能夠從各種日志源上收集日志,存儲到一個中陽存儲系統(tǒng)。
三個角色:
-
日志服務器
- 為了收集日志,每一臺日志服務器上都會部署一個scribe客戶端,它包含兩個模塊agent 和 local_server
- Agent是以tail的方式讀取本地目錄下的日志文件,并將數(shù)據(jù)寫到本地的Local_server
- local_server通過zookeeper定位到Center_server
-
中心服務器
- 中心服務器作用就是把散落在各個機器的日志統(tǒng)一收集起來
- Center_server和Local_server一樣,只是配置不同,通過thrift進行通信
- center_server收到數(shù)據(jù)后,根據(jù)配置將各個category的數(shù)據(jù)發(fā)向不同的方向,比如寫到HDFS或者發(fā)到Kafka等
-
存儲服務器
- 最終存儲日志的地方
- 供計算框架以及搜索引擎框架計算使用
LogStash
Logstash是ELK中的一個工具,在ELK中起到的作用是對日志進行收集、分析、過濾。