一、日志收集系統背景
1 項目背景
- a. 每個系統都有日志,當系統出現問題時,需要通過日志解決問題
- b. 當系統機器比較少時,登陸到服務器上查看即可滿足
- c. 當系統機器規模巨大,登陸到機器上查看幾乎不現實
2 解決方案
- a. 把機器上的日志實時收集,統一的存儲到中心系統
- b. 然后再對這些日志建立索引,通過搜索即可以找到對應日志
- c. 通過提供界面友好的web界面,通過web即可以完成日志搜索
3 遇到的問題
a. 實時日志量非常大,每天幾十億條
b. 日志准實時收集,延遲控制在分鍾級別
c. 能夠水平可擴展
4 業界方案ELK
5 ELK方案問題
a. 運維成本高,每增加一個日志收集,都需要手動修改配置
b. 監控缺失,無法准確獲取logstash的狀態
c. 無法做定制化開發以及維護
二、日志收集系統架構
6 日志收集系統設計
各組件介紹
a. Log Agent,日志收集客戶端,用來收集服務器上的日志
b. Kafka,高吞吐量的分布式隊列,linkin開發,apache頂級開源項目
c. ES,elasticsearch,開源的搜索引擎,提供基於http restful的web接口
d. Hadoop,分布式計算框架,能夠對大量數據進行分布式處理的平台