日誌管理與分析的十個最佳實踐

這是準確管理與衡量日誌記錄的最高效方式;本文將帶你快速瞭解一般如何利用Docker及容器來建立易於管理、測試及部署的軟件鏡像包。docker

過去十年來,隨着分佈式系統的發展,日誌數據管理起來更加複雜。現在,系統中能夠容納數以千計的服務器實例或者微服務容器,而全部這些實例或容器又會生成本身的日誌數據。隨着以云爲基礎的系統快速出現並佔據主導地位,由機器所生成的日誌數據呈爆炸性增加。而日誌管理隨之成爲現代化IT運營中的重要任務,爲包括調試、生產監控、性能監控、支持援助與故障查找之類的許多用例提供輔助支撐。數據庫

儘管分佈式系統在可擴展性方面十分高效,但在日誌數據管理方面,甚至在定位所需的日誌文件時,都很難肯定要從哪開始或者須要花費多少努力。與日誌工做鏈接最緊密的團隊,好比IT管理員或DevOps專家面臨巨大的挑戰:在確保安QUAN與遵照協議的同時,對分散的日誌文件進行管理。開發者與工程師在調試應用層的問題時,會因訪問生產層日誌文件的障礙而受限。另外,運營、開發、數據科學家與支持團隊須要從用戶行爲中分析趨勢、查找故障,而這些領域缺乏技術專家,有時候須要利用日誌數據。基於這些挑戰,要爲公司選擇一個日誌實現解決方案,關鍵在於考慮最佳實踐。安全

1. 設立策略

日誌記錄不可盲目,要對所記錄的內容以及這樣作的緣由進行仔細考量。就像其餘重要的IT組件同樣,記錄日誌是須要策略的。在構建DevOps設置時,甚至只是發佈一個單獨的新功能時,都要確保作好日誌記錄的計劃。沒有明確的戰略時,因爲最終須要手動管理一個日漸龐大的日誌數據集,識別重要信息的過程就會變得極爲複雜。服務器

在策劃日誌戰略時,須要從自身角度考慮什麼是最重要的,想要從日誌中得到什麼價值。你的計劃應當包含:日誌的記錄方式與工具,數據託管的位置,以及最重要的——具體要尋找什麼信息。網絡

2. 日誌數據的結構

除了要制定策略,還要考慮日誌格式,這點也很重要。若是日誌格式難以理解,想要識別日誌,並從中總結出看法就很困難。不管對象是機器仍是人類,日誌的結構都應當清晰易懂。架構

管理者可以經過易讀的日誌更容易地找到故障,有時候還能使用日誌管理服務對日誌數據作進一步處理,讓得出的看法更有深度,數據可視化更爲優秀。兩種常見的日誌結構格式分別是JSON和KVP(主鍵配對)。兩種日誌數據均清晰易懂,適合人類理解,而且方便記錄日誌的軟件解決方案從半結構化的格式中提取信息。併發

3. 日誌數據的分離與集中

日誌應當由系統自動收集併發送到集中的地點,與生產環境相分離。合併日誌數據促進管理的有序與分析能力的加強,管理者可以有效地運行交叉分析,並識別不一樣數據源之間的關聯。將日誌數據集中化同時也下降了在自動擴展環境中損失日誌數據的風險。分佈式

將日誌數據轉發到統一的位置後,系統管理員能夠受權開發者、QA和支持團隊訪問日誌數據,而無需賦予他們訪問生產環境的權限。於是,這些團隊可使用日誌數據調試,但不會有影響生產環境的風險。複製與獨立化的日誌數據也解決了相應的安全漏洞,避免攻擊者刪除日誌數據,就算系統被破壞了,日誌還是安全的。微服務

4. 端對端記錄日誌

爲了簡化定位故障的複雜度,在應用和系統層面得到更全局化的觀點,應當在全部系統組件中監控並記錄日誌。大多數人都知道要記錄服務器日誌,好比Windows的安全日誌。可是,在底層基礎架構、應用層面和終端用戶客戶端記錄全部相關的指標與事件也一樣重要。工具

端對端日誌記錄讓管理者得以從終端用戶的角度瞭解系統性能,好比網絡延遲、數據庫事務處理延遲與頁面加載時間。在這些地方清楚明瞭有利於提供無縫的用戶體驗。

5. 相關數據來源

將端對端日誌統一記錄到集中的地方,就能夠動態聚合不一樣來源的各種數據流,好比來自應用的、服務器的、用戶的和CDN的,從而分析獲得相應的關鍵趨勢與指標。這些關聯的數據可讓管理者快速準確識別並理解致使系統故障的事件。例如,實時發現基礎設施資源使用與應用出錯率之間的關聯,可以協助管理者在終端用戶受到影響前先一步識別出異常與影響。

6. 使用惟一標識符

在調試、支持救援與分析中使用惟一的標識符很是有用。經過標識符能夠追蹤特定的用戶會話,並精確地找出某個用戶的活動。若是知道用戶的惟一ID,就能搜索到某一時段用戶的全部活動。一旦用戶活動出現中斷,能夠經過追蹤整個事務來查找。

7. 增長背景信息

將日誌用作數據時,考慮每一個數據點的背景狀況很是重要。瞭解用戶點擊了一個按鈕,也許比不上知道用戶具體點擊了「購買」按鈕。增長額外的背景可以揭示購買模式。若是用戶的購買請求出現錯誤,相應背景也能讓問題更快解決。

8. 執行實時監控

服務中斷會引起一系列不幸的結果,包括引起用戶不滿、購買意向流失與數據丟失。一旦出現生產層面的問題,在這個爭分奪秒的時刻,實時監控很是重要。

除了發佈簡單的通知以外,可以實時分析問題與識別重要信息也一樣重要。在日誌數據中可以查看「實時軌跡」,使開發者和管理者可以在用戶與應用或系統互動時分析日誌事件。搜索並報告「實時軌跡」還能讓支持團隊對用戶的問題進行分析與解決。

9. 使用日誌來識別關鍵趨勢

查找故障和調試只涉及了日誌數據提供的表層信息。以前,查找日誌曾因過於費勁,而被認爲是查找信息的最終手段,而現在的日誌服務可讓全部人——包括開發者、數據科學家都能從應用和系統中識別出有用的趨勢與關鍵的看法。

將日誌事件看成數據,使得對用戶事件和系統活動執行統計分析成爲可能。計算平均值可讓管理者更好地識別異常。將事件類型分組並求和,能夠按時間線來比較事件。這種程度的分析會讓管理者能夠更好地基於數據做出商業決策。

10. 加強整個團隊

只開放給高級技術團隊的日誌管理與分析服務嚴重限制了公司從日誌數據中得到好處的機會。日誌管理與分析工具應當能讓開發者實時追蹤調試,讓管理者實時收到警報,讓數據科學家集合數據並可視化,讓支持團隊執行實時搜索與篩選,而無需賦予他們訪問生產環境的權限。

如今呢?日誌管理與分析的將來

隨着應用與系統在規模和複雜度上繼續擴大,日誌解決方案在各種規模的公司中逐漸成爲必需。隨着日誌管理實踐的成熟,日誌工具的功能——好比集中化日誌、搜索、篩選和實時警報都逐漸成爲現代化OpsDev團隊的需求。愈來愈多的公司開始執行這些解決方案,ZHEN正的企業價值會經過對聚合性的、實時日誌數據分析所提供的看法來實現。在傳統調試和查找故障以外,分析各系統、各應用與用戶的關鍵趨勢可以爲提升運營、下降成本和創造新收入項增長機會。數據就在那裏,它們將對公司業務產生最大的影響,如今須要公司來選擇是否使用它們。

相關文章
相關標籤/搜索