如何快速搭建智能化的統一日誌管理系統

日誌是設備、服務器或者程序對於自身狀態和運作行為的記錄,通過它可以瞭解設備、服務器和程序的運行情況。為了讓大家進一步瞭解智能化的統一日誌管理系統,飛馬網於7月24日晚,邀請到就職於七牛雲數據科學與產品部的高級大數據架構師王珂老師為大家分享該領域的內容。

以下是這次線上直播的分享實錄:

如何快速搭建智能化的統一日誌管理系統

大家好,我是七牛雲的王珂,今天我給大家分享的主題是“如何快速搭建智能化的統一日誌管理”。

如何快速搭建智能化的統一日誌管理系統

在上圖中,我列舉了一些例子,方便大家理解什麼是日誌。第一條是某網站的行為日誌,在這條日誌中大家可以清楚的看到這個用戶訪問的地點、做了哪些操作、訪問了哪些頁面,最後還能標註用戶的瀏覽器是哪個版本。第二條是典型的某網站nginx服務日誌,第三條是比較標準的應用日誌,第四條是Google analysis的上報日誌,第五條是MongoDB日誌,可以看到端口信息。第六條和第七條是mac操作系統日誌和某機器的CPU監控日誌。

一、什麼是日誌

如何快速搭建智能化的統一日誌管理系統

經過上面的日誌樣例,我們要對日誌進行三個問答。第一個是什麼是日誌?基於維基百科的回答,日誌是設備、服務器或者程序對於自身狀態和運作行為的記錄。第二條為什麼需要日誌?因為要通過日誌瞭解設備、服務器和程序的運行情況,大概就是當前狀態是否健康,是否出現過異常、出現了什麼異常、完成了什麼操作、處理了多少數據。最後一個是什麼時間需要日誌?一般情況下,系統出現問題時需要日誌,為了瞭解系統運行情況、統計運行指標也需要日誌。

二、日誌採集方案選型和分析

如何快速搭建智能化的統一日誌管理系統

業內最常見的日誌管理方案是使用ELK進行日誌管理。ELK具有三個特點:快速、易上手、可擴展,這裡面的三個組件其中ES主要是指Elastisearch.Elastisearch是開源的實時分佈式搜索分析引擎,被用作對日誌數據進行全文檢索以及指標的統計,第二個是Logstash,主要是用來把數據傳輸到Elastisearch之中,最後是Kibana,它是開源的展示工具,可以直接鏈接Elastisearch,並把其中的數據做圖形可視化的展示。

如何快速搭建智能化的統一日誌管理系統

ELK是使用最多的方案,但還是具有一些問題,主要是四個方面。第一個傳輸過程缺少監控,不能實時瞭解傳輸情況,第二是數據寫入Elastisearch不平滑,Logstash沒有緩存,數據量大的情況下Elastisearch的寫入壓力很大,第三個點是當數據達到一定程度時要求定期的管理,否則最新最熱的數據寫入靠近的機器上從而產生性能的熱點,最後一個是本身不支持用戶管理,權限設置。針對ELK的問題,主要有兩種方法去升級它,第一個就是更換組件,第二個就是基於ES做一些開發。(圖)

如何快速搭建智能化的統一日誌管理系統

先看一下替換組件。對於日誌採集方案,現在主流的比較多,比較好用的有Rsyslog、Fluentd、Flume等,主流工具採集完之後我們會考慮接入一些通用的緩存工具,如kafka和Redis,針對這兩個問題,主要是考慮時效性、數量級和複雜度三個點。(圖)

三、七牛雲日誌的分享以及案例分析

如何快速搭建智能化的統一日誌管理系統

現在看一下七牛雲平臺的整體架構,主要存儲的三個方面的日誌,雲存儲日誌、容器平臺日誌以及七牛客戶日誌。這個平臺的技術架構是這樣的,首先有一個統一入口——pipeline,在數據進入pipeline以後,可以自定義一個窗口,然後基於kafka實現離線計算的功能,傳輸到客戶想要傳輸的地方。這種傳輸工具主要有三個:七牛雲存儲,基於ES形成的組件以及TSB組件。

如何快速搭建智能化的統一日誌管理系統

七牛日誌平臺的客戶比較多,所以面臨的挑戰也比較大。平臺日均數據的流入大概有250個TB,最大客戶日均數據流入大概超45TB,條數大概日均3650億,在這麼大的業務數量集面前最大的挑戰就是如何把如此高的數量級數據接入到ES集群當中,同時不要佔用太多的計算和存儲資源。

如何快速搭建智能化的統一日誌管理系統

七牛雲大量的數據帶來的一個核心問題就是存儲問題,我們需要最有效的方式把數據從pipeline寫入ES集群當中,吞吐量問題的本質就是數據傳輸效率。

如何快速搭建智能化的統一日誌管理系統

這裡有兩種數據傳輸模式,首先是一個pull模式,然後是一個push模式。

如何快速搭建智能化的統一日誌管理系統

數據傳輸的常見錯誤觀點認為導出的上游數據產量是穩定不變的,導出的下游服務永遠是穩定的,導出的速度僅受限於上下游中的一方影響,這沒有考慮鏈路損耗嚴重的問題,這個最明顯的就是kafka。

接下來看一個完整的transaction。

如何快速搭建智能化的統一日誌管理系統

如何快速搭建智能化的統一日誌管理系統

通過以上兩張圖片的展示,七牛實現了一種大量數據的穩定寫入。

如何快速搭建智能化的統一日誌管理系統

現在談一下規劃容器日誌方案的要點,主要是兩點。第一個是採集方式上面,分為容器內外兩個方面;第二個是業務需求點方面。(2圖)。

如何快速搭建智能化的統一日誌管理系統

接下來簡單介紹一下日誌管理平臺,由四個組件組成,能支持的功能很多,像logkit、pipeline、insight等。

如何快速搭建智能化的統一日誌管理系統

如何快速搭建智能化的統一日誌管理系統

如何快速搭建智能化的統一日誌管理系統

如何快速搭建智能化的統一日誌管理系統

基本上我們的平臺能支持的組件也很多,logkit可以實現可視化的數據採集;在日誌分析和日誌搜索方面,使用兼容Lucene標準的搜索語法快速檢索,在日誌報表方面,我們提供黑白兩種形式的展現,同時這種展現都支持大屏展示,而且不需要插件就能實現需求。

如何快速搭建智能化的統一日誌管理系統

如何快速搭建智能化的統一日誌管理系統

如何快速搭建智能化的統一日誌管理系統

如何快速搭建智能化的統一日誌管理系統

基於自己的insight平臺,做了一個機器學習的組件,使用起來比較簡單,如果定義到監控中,能自動找到異常值,最後也能基於歷史數據做一些未來的預測。

如何快速搭建智能化的統一日誌管理系統

如何快速搭建智能化的統一日誌管理系統

如何快速搭建智能化的統一日誌管理系統

如何快速搭建智能化的統一日誌管理系統

以上就是本次線上直播的主要內容,相信你對日誌管理系統有了一定的認識。想了解更多更詳細內容的小夥伴們,可以關注服務號:FMI飛馬網,點擊菜單欄飛馬直播,即可進行學習。


分享到:


相關文章: