歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> 如何解決日志管理?

如何解決日志管理?

日期:2017/3/1 17:20:34   编辑:關於Linux

一個稍大一點的系統,通常就需要考慮內嵌一個日志系統,無論這個系統是多麼精簡,至少能給開發人員定位問題。而常用的方法無過於使用控制台的printf和文件記錄fwrite函數。


在一個大型系統中,日志該如何管理,當系統運行n天後,發現了一個BUG,難道要去控制台截取printf打印?生成一個巨大的日志文件嗎?是這麼做的嗎?可行嗎?這個問題的答案是非常明顯的,我們不能用printf來做大型系統的日志管理,它只能在開發階段用於簡單的問題定位而已。

日志管理需要從系統架構上解決,而這個架構最終還是要取決於日志的用途和目的。先來看看日志管理究竟是干什麼的?

日志管理主要為了提供一個方法來管理計算機產生的大量日志信息,其主要過程涉及信息的收集,存儲和分析,主要目的是安全檢查,審計檢查,問題定位。



通常開發人員會自己構建日志系統和分析工具,來支撐模塊開發,但實際情況是常常沒有固定的格式和規范可循。因此系統級的日志管理將是一個復雜的過程,若在開發中不做適當的管控,經常容易產生混淆,降低系統級開發定位的效率。因此有效的系統級日志分析涉及很多挑戰:大量日志,日志類型,日志格式等。

為了解決系統級日志分析【1】,當前有諸多方案:



模式識別(Pattern recognition)
歸一化(Normalization)
分類和標示(Classification and tagging)
相關性分析(Correlation analysis)
人工過濾(Artificial Ignorance)


但是我們回過頭來看下日志管理的目的和流程:來源於應用程序,操作系統,硬件設備的日志信息以消息流的方式組織成日志,經由日志管理系統的收集和存儲環節,進入日志分析階段。可以說,日志收集和存儲的主要目的是為了分析,而分析是為了解決日志管理的目的:安全檢查,審計檢查,問題定位。



日志管理在大型系統中是一個系統架構問題。既然如此,日志管理就應該從系統架構上考慮。下面介紹下日志管理架構開發涉及的主要幾個環節和步驟。

日志管理架構開發主要環節和步驟:



定義需求和目標:如安全日志分析,應用問題分析,控制管理報告等;
定義日志框架,類型,格式,規范;
確定日志管理目的:收集,分析,報告,遠程監控?如果收集日志,多長時間需要歸檔一次?是否需要壓縮?
日志中需要包含哪些信息:模塊類型?日志級別?錯誤信息?
評估當前技術,參考開源項目,選擇或者構建最合適的日志管理方案。


從源頭上規范了日志管理,做好了日志管理的架構設計,對於後續模塊,系統開發,定位將會帶來深遠的影響。



如果有朋友涉及了這些問題,可以討論下,當前正在做一個系統級的日志管理方案。





參考文檔:

【1】Log Analysis

摘自 lida2003的專欄

Copyright © Linux教程網 All Rights Reserved