日志文件是很好的信息源,可以了解應用是如何執行的。不要對它置之不理。好好利用日志文件,可以減少系統的生產問題。
本著要用正確的工具完成工作的精神,讓我們來看看可能每個人都有但卻常常被忽略的工具一日志文件。除非你故意關閉了Web或應用服務器的記錄日志功能,否則幾乎各種應用都有錯誤和訪問日志。 Apache有錯誤和訪問日志,Tomcat有java.util.logging或Log4j,Webshpere有Systremerr和Systemout日志。這些日志是非常有用的工具,可以讓我們了解應用的性能和可能會妨礙擴展的問題。要最合理利用這種工具,需要遵守下面幾個簡單但重要的步驟。
使用日志文件的第一步是把它們集合起來。因為你可能有幾十甚至幾百臺服務器,那么需要把數據集合起來才能使用。如果數據量太大,無法集合起來,那么可以采樣,如每N個服務器采集一次。另一種策略是把幾臺服務器的日志集合到一臺日志服務器上,然后由這臺服務器把這些半集合的日志傳遞到最終集合地點。專用的日志服務器可以把日志數據集合起來,然后發送到數據存儲設備上。這種集合操作通常是經過帶外網絡執行的,與生產環境使用的不是同一個網絡。要避免日志數據、監控數據或集合數據影響生產環境的流量。
下一步是監控這些日志。令人吃驚的是,許多客戶花費了時間和計算資源記錄和集合日志,但是卻忽略了其中的數據。雖然你會使用發生事故時的日志文件幫助恢復服務,但這沒有最大化利用日志。首先可以采用的方式是利用自動化工具監控這些日志文件。可以使用定制的腳本進行監控,如一個shel腳本,可以按給定模式搜索文件內容,累計錯誤數量,當超過閾值時進行修改。更復雜的工具,像Cricket或 Cacti,具有繪制圖形的能力。同時具有集合和監控日志文件功能的工具是Splunk在集合了日志并監控錯誤后,最后一步是修正問題。這需要分配程序員和QA人員,識別與個別問題相關的一般錯誤。通常,應用程序流中的一個bug會造成形式各異的錯誤。發現這個bug的程序員很可能會被指派為修正它的人,也可能會把這個任務分配給其他程序員。
雖然我們希望日志文件中完全沒有錯誤,但是不可能一直這樣。日志文件中的錯誤很常見,需要建立一個流程,確保它們不會失控或被忽略了。有些小組會定期(每發布三個版本或四個版本)清理那些不需要立即處理的錯誤。這些錯誤很簡單,可能是應用中沒有重定向配置,或者沒有處理已知錯誤的條件等。
必須記住,記錄日志也是有成本的。不僅有保存額外數據的成本,還有事務響應時間的成本。通過不時地總結日志、歸檔、在日志價值下降時清除它,有助于減少保存數據的成本。可以通過異步模式記錄日志,從而最小化存儲日志的成本。最終,我們要注意記錄日志的成本,關于記錄多少數據以及保留多少數據,需要作出高性價比的決策。
希望我們說服了你,讓你相信在網站建設調試和監控應用時日志文件是個重要的工具。利用這么一個你很可能已經有的工具,能夠幫助你極大地增強客戶體驗和應用的可擴展性。
本文地址:http://knowyourextract.com//article/3465.html