近年來,IT系統逐漸呈現海量化和異構化的趨勢,企業每天可能會產生上百GB甚至TB級的日志數據,如何實現日志數據的集中化接入,以及保障日志管理的持續拓展性,成為企業日志管理的一大難點。
01. ELK 日志管理系統
集中化收集和管理所有設備上的日志的常見解決思路是建立日志管理系統,將所有設備上的日志統一收集、管理、查看。ELK是目前主流的一種日志管理系統,由三個開源工具組合而成,Elasticsearch+Logstash+Kibana。
① Elasticsearch:是一個開源的實時分布式搜索和分析引擎,在Apache Lucene的基礎上開發而成,可用于搜索、分析、存儲數據,具有可水平擴展、高可用、易維護等特點。
② Logstash:是一種具有實時傳輸能力的數據收集管道,用于數據收集、解析,并將數據發送給Elasticsearch。
③ Kibana:是一個開源、免費的可視化組件,可以為Logstash和Elasticsearch提供友好的日志分析Web界面,將日志數據轉化為各種圖表。
傳統的ELK的架構如下所示,在需要收集日志的所有服務上部署Logstash,收集、過濾日志數據,將過濾后的內容統一發送給Elasticsearch,用戶可以用Elasticsearch進行自定義搜索日志數據,也可以通過Kibana展示、分析日志數據。
ELK日志管理系統不僅能夠采集多種來源的日志數據,還可以集中存儲數據,以界面化的方式實時檢索和分析日志數據。但由于Logstash占用資源大,且需要在每一個終端上都部署Logstash,故ELK日志管理系統新增了一個工具——Filebeat,它是一個輕量級的日志收集處理工具,占用資源少,適合于在各個終端收集日志數據,然后將日志傳輸給Logstash。
ELK日志管理系統的優點如下:
即使ELK日志管理系統已經如此強大,但實際上仍存在以下不足:
如果想解決以上不足,企業可以在ELK的基礎上自行建設一套日志管理系統,或直接購買市面上成熟的日志管理系統。
下圖為可參考的一種日志管理系統的架構,先在各類終端上批量部署Agent(一種輕量級的數據收集處理工具),Agent實時采集日志數據,并將采集到的數據上報到Kafka。
Kafka作為日志管理系統的緩沖層,具備海量數據堆積、高吞吐讀寫的特性,可以為后面的分布式日志消費服務提供異步解耦、削峰填谷的能力。
接著,Transfer作為Kafka的消費者客戶端,通過訂閱Topic實現日志數據的接收,并將非結構化、復雜難懂的日志數據解析成結構化數據。
最后,Transfer將解析后的日志數據寫入Elasticsearch的索引中,完成日志的最終落地。
上圖這種日志管理系統的架構優勢是:
同時,企業可以通過搭建Web界面,開發自定義功能,實現更多訴求,例如:
這套改進后的日志系統雖說能夠解決很多企業管理上的痛點問題,但對于中小型企業以及主營業務并非信息技術的企業而言,建設這樣一套日志管理系統的成本及資源投入往往是難以估量和接受的,畢竟一個靠譜工程師的人力成本至少是50w/年起步。
02. 嘉為藍鯨-日志管理中心
其實在國內已經有不少優秀的日志產品,它們會專精這一領域不斷優化。
如果希望快速搭建起一套企業級日志平臺,注意是企業級的平臺,那完全可以嘗試國內成熟廠商的日志產品,這樣反而能帶來巨大成本上的節省,不失為一種好的選擇。
例如我們的嘉為藍鯨-日志管理中心:
1)日志統一管理
一站式提供日志全生命周期管理服務,大幅降低用戶日志管理的成本,讓用戶能夠專注于日志數據價值的挖掘。
2)日志全文檢索
提供靈活、高效、方便的日志全文檢索功能,幫助運維人員快速定位問題。
3)日志運維監控
通過日志關鍵字監控和日志指標監控,協助運維人員實時保障業務穩定。
4)日志統計分析
可靈活的構建可視化儀表盤,幫助用戶實現業務日志數據統計分析。
基于業界主流的全文檢索引擎,以日志數據為中心,實現了基于多源日志采集、日志清洗、日志存儲和日志檢索的日志統一管理,幫助用戶解決分布式架構下日志收集和查詢困難的問題;并使用索引集概念作為產品中的數據單元,通過對日志的監控告警和可視化分析,幫助用戶深入挖掘日志數據的價值。
如果想快速搭建起一套企業級日志平臺,可以考慮,若想試用,來我們官網申請即可。
申請演示