當我在服務器上查看日誌時,我希望快速瞭解在深入挖掘之前所面臨的問題類型。我通常使用下面的單行內容,通過使每行更通用並僅保留唯一的行,從而減少需要查看的日誌行數。查看日誌文件的腳本
一襯墊
cat /var/log/apache2/error.log | sed 's/.*] \(.*\)/\1/' | sed 's/[0-9]*//g' | sort | uniq
說明
| sed 's/.*] \(.*\)/\1/'
:去除包含內並且典型地對應於客戶機/系統特定信息的最後一個托架組之前一切如[Mon Dec 05 12:01:03 2011] [error] [client a.b.c.d]
| sed 's/[0-9]*//g'
:刪除號碼
| sort | uniq
:只保留不同的線條。
給你一個想法,在/var/log/apache2/error.log
包含大約500行,這將過濾到25行。當然,越是通用/相似的日誌條目,單線越有效。
我正在尋找,現在是一個腳本(可能是bash
,perl
,python
或其他任何東西實際上),可以做同樣的事情,但有點更先進的,以便更有效(例如混淆文件路徑,按字母順序排列的ID ...)並且非常有用(統計每條消息的出現次數,相對於日誌的總體數量%)。
你知道這樣做的腳本嗎?
看看ScanErrLog如果你還沒有 –
-1有很多日誌分析器可以找到你最喜歡的搜索引擎。沒有必要重新發明輪子。 –
同意以上。但是,如果你必須推出自己的產品,你將不得不張貼一些樣本數據來解決你正在處理的問題。祝你好運。 – shellter