服務器日誌種種(2)—-日誌類型詳解
在看了《服務器日誌種種(1)》之後,對服務器上的日誌大家已經有粗略的感受了吧,接下來這篇文章,小編給大夥具體講講,典型的服務器日誌能夠回答管理員哪幾類問題。
用戶如何訪問
通常在線係統的最前端都是apache或者nginx類的HTTP服務器,它的日誌記錄了不同用戶在特定時間的訪問行為,舉例而言,以下是一條常見的服務器訪問日誌:
213.60.233.243 - - [25/May/2004:00:17:09 +1200] "GET /internet/index.html HTTP/1.1" 200 6792 “https://www.aliyun-inc.com" "Mozilla/5.0 (X11; U; Linux i686; es-ES; rv:1.6) Gecko/20040413 Debian/1.6-5"
|
日誌中分別講述了訪問的來源IP,訪問時間,訪問對象,訪問結果是否成功,返回大小,訪問從哪個地方跳轉 訪問從哪種設備而來等等信息。
請求處理是否正常
在通過前端服務器處理完成後,請求會交由具體的後端服務進行處理,常見的包括php或者java應用程序,通過觀察是否有異常日誌可以判斷請求是否都處理正常,舉例而言,以下是java應用服務異常日誌:
[2013-10-25 00:00:29 Production Mode] – GET /search_checked_form.htm/i25587486i ERROR c.a.c.w.impl.WebxRootControllerImpl – Full stack trace of the error TemplateNotFoundException: Could not find template “/screen/search_checked_form.htm/i25587486i” com.alibaba.citrus.service.pipeline.PipelineException: Failed to invoke Valve[#3/3, level 3] |
日誌中包含了錯誤發生的頁麵,傳遞的參數,錯誤發生的接口和具體錯誤堆棧,通過該內容開發人員可以定位具體的錯誤邏輯進行修複。
各個模塊狀態如何
通常係統都會包含多個模塊,對於每個模塊運行狀態日誌一般由開發人員自定義並通過類似log4j和log4php等第三方庫寫入日誌文件,舉例而言,以下是某用戶信息模塊日誌:
[2013/11/19 18:44:39][INFO][demo.log4j.Log4jDemo-20] Method:AddUser Latency:100 Status:OK[2013/11/19 18:44:39][INFO][demo.log4j.Log4jDemo-21] Method:GetUserInfo Latency:200 Status:OK[2013/11/19 18:44:39][INFO][demo.log4j.Log4jDemo-21] Method:DelUser Latency:100 Status:FAIL |
日誌包含了對應模塊中操作的類型,操作延時和最終是否成功等相關狀態,通過該內容開發管理人員可以通過自定義鍵值獲悉模塊指定操作的相關狀態。
是否有安全隱患或漏洞
在正常提供服務的同時,係統管理人員也會十分關心是否有漏洞或者安全隱患可能對存儲的數據或者其它敏感信息造成泄漏。所以需要記錄各種審計日誌對用戶敏感訪問行為進行審查和預警。舉例而言,以下是用戶登錄訪問日誌:
2014-06-03 15:47:26&@#!abcusr_base4&@#!10.128.10.147&@#!&@#!def101500219 2014-06-03 15:47:26&@#!abcusr_base2&@#!10.128.10.47&@#!&@#!def70198810 2014-06-03 15:47:26&@#!jusrabc35u&@#!10.132.161.36&@#!&@#!wfp |
日誌中包含一個時間點用戶從何處登錄特定賬號的記錄,通過對日誌的監控可以獲悉是否有用戶有異常的登錄行為以進行預警和處理。
服務器本身是否正常
在服務器運行期間,硬件或者係統本身可能出現各種各樣的故障,通過係統日誌(類似/var/log/messages)用戶可以獲悉是否有異常發生。舉例而言,以下是一條linux服務的的係統日誌:
2013 Jun 8 23:01:01 Out of memory: Kill process 9682 (mysqld) score 9 or sacrifice child Killed process 9682, UID 27, (mysqld) total-vm:47388kB, anon-rss:3744kB, file-rss:80kB |
日誌內容中說明了mysqld進程由於內存使用超過內核限製而被kill,通過監控此類可以及時響應係統的相關異常。
其實以上隻是典型在線服務係統的一部分日誌,還有其它依賴的相關日誌包括數據庫,網絡服務,文件係統等等都能夠幫助管理人員在出現問題時及時處理,除此之外,大家在管理服務時還關心哪些日誌呢?比如:
- 數據庫請求日誌:搞明白為什麼一個用戶的讀取請求遲遲不能返回
- 模塊性能日誌:當前係統的各個模塊都占用多少時間進行處理
…期待大家的回複。
最後更新:2017-04-03 07:57:08